欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle提高sql執(zhí)行效率的心得建議

 更新時(shí)間:2013年08月08日 16:53:43   作者:  
sql執(zhí)行效率一直都是為人所關(guān)注,那到底應(yīng)該怎樣提高呢?有什么比較好的方法,下面與大家分享下比較不錯(cuò)的建議,感興趣的朋友可以參考下,希望對(duì)大家有所幫助

復(fù)制代碼 代碼如下:

-->FROM子句中包含多個(gè)表的情況下,選擇記錄條數(shù)最少的表作為基礎(chǔ)表

-->解析WHERE子句是自下而上的 過(guò)濾條件要有順序

-->ORACLE會(huì)將'*'轉(zhuǎn)換成列名

-->DELETE會(huì)在rollback segment中存放可恢復(fù)信息,可以試試TRUNCATE

-->COMMIT會(huì)釋放:1.rollback segment
2.被程序語(yǔ)句獲得的鎖
3.redo log buffer

-->把Alias前綴于每個(gè)Column上可以減少解析的時(shí)間

-->ORACLE解析sql語(yǔ)句時(shí)會(huì)把小寫的字母轉(zhuǎn)換成大寫的再執(zhí)行

-->在索引列上使用NOT會(huì)停止使用索引轉(zhuǎn)而執(zhí)行全表掃描

-->在索引列上進(jìn)行運(yùn)算會(huì)停止使用索引轉(zhuǎn)而執(zhí)行全表掃描

-->使用'>=',而不是'>'

-->where子句中'!='、'||'、'+'等符號(hào)會(huì)破壞索引

-->IN的效率很低,IN子句將執(zhí)行一個(gè)內(nèi)部的排序和合并

-->EXIST查詢更為迅速

-->對(duì)于兩個(gè)索引列,UNION比OR效率更高

-->IS NULL會(huì)破壞索引

-->DISTINCT,UNION,MINUS,INTERSECT,ORDER BY等都帶有SORT功能,會(huì)耗費(fèi)資源

-->多個(gè)索引列時(shí)盡量使用第一個(gè)索引列

-->盡量用 UNION ALL代替UNION

-->不要用TO_NUMBER()之類的函數(shù)改變索引列的類型。

-->對(duì)于字符類型的索引列盡量寫成:col = '123' 而不是 col = 123,后者會(huì)被解析為TO_NUMBER(EMP_TYPE)=123

-->適當(dāng)?shù)牡胤绞褂眠m當(dāng)?shù)年P(guān)鍵字:HAVING會(huì)在檢索出所有記錄之后對(duì)結(jié)果集進(jìn)行過(guò)濾 能使用WHERE解決時(shí)不要用HAVING

-->索引也需要維護(hù),INSERT,DELETE,UPDATE會(huì)因索引而做出更多次I/O

-->重構(gòu)索引是必要的:ALTER INDEX <INDEXNAME> REBUILD <TABLESPACENAME> [ONLINE]

相關(guān)文章

最新評(píng)論