在網上搜尋了一些oracle效能優化的文章,為了更加深層次的鞏固[邊寫邊記],也為了可以隨時檢視,所以發表這篇文章。
1.oracle採用自下而上的順序解析where子句,根據這個原理,表之間的連線必須寫在其他where條件之前,那些可以過濾掉最大數量記錄的條件必須寫在where子句的末尾。(這點本人曾經做過例項驗證過,的確如此哦!)
2.oracle的解析器按照從右到左的順序處理from子句中的表名,因此from子句中寫在最後的表(基礎表 driving table)將被最先處理。在from子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。當oracle處理多個表時, 會運用排序及合併的方式連線它們。首先,掃瞄第乙個表(from子句中最後的那個表)並對記錄進行派序,然後掃瞄第二個表(from子句中最後第二個表),最後將所有從第二個表中檢索出的記錄與第乙個表中合適記錄進行合併。如果有3個以上的表連線查詢, 那就需要選擇交叉表(intersection table)作為基礎表, 交叉表是指那個被其他表所引用的表(這個雖然沒有進行驗證過是否如此,但是相信以後會經常遇到,以後再取驗證)。
3.你可以採用基於rowid的訪問方式情況,提高訪問表的效率, rowid包含了表中記錄的物理位置資訊。oracle採用索引(index)實現了資料和存放資料的物理位置(rowid)之間的聯絡。通常索引提供了快速訪問rowid的方法,因此那些基於索引列的查詢就可以得到效能上的提高(這一點的確見識過,但是還沒有用到,希望很快就能親身驗證啦)。
今天由於時間的原因,先寫出三條,以後有機會再繼續發表。
oracle效能優化
今天有個問題沒有答上來 oracle的效能優化。查了查資料,學習學習。優化心得摘抄 資料庫優化oracle9i 很多的時侯,做oracle dba的我們,當應用管理員向我們通告現在應用很慢 資料庫很慢的時侯,我們到資料庫時做幾個示例的select也發現同樣的問題時,有些時侯我們會無從下手,因為我們認...
oracle效能優化
sql共享原理 為了不重複解析相同的sql語句,在第一次解析之後,oracle將sql語句存放在記憶體中。這塊位於系統全域性區域sga systemglobal area 的共享池 shared buffer poo1 中的記憶體可以被所有的資料庫使用者共享。因此,當你執行乙個sql語句 有時被稱為...
Oracle 效能優化
1.在select語句中避免使用 2.使用truncate清空表 2.1語法 truncate table cluster shema.table name cluster name drop reuse storage 3.使用rowid高效刪除重覆記錄 rowid是可以唯一標記記錄的物理位置 d...