ORACLE SQL效能優化系列

2021-06-08 04:11:28 字數 1693 閱讀 4018

1.

選用適合的

oracle

優化器

oracle

的優化器共有3種

:a.  rule (

基於規則

)  

b. cost (基於成本

)  c. choose (選擇性

)設定預設的優化器

,可以通過對

init.ora

檔案中optimizer_mode

引數的各種宣告,如

rule,cost,choose,all_rows,first_rows .

你當然也在

sql句級或是會話

(session)

級對其進行覆蓋.

為了使用基於成本的優化器

(cbo, cost-based optimizer) ,

你必須經常執行

analyze 命令,

以增加資料庫中的物件統計資訊

(object statistics)

的準確性.

如果資料庫的優化器模式設定為選擇性

(choose),

那麼實際的優化器模式將和是否執行過

analyze

命令有關

. 如果

table

已經被analyze過,

優化器模式將自動成為

cbo , 反之,

資料庫將採用

rule

形式的優化器.

在預設情況下

,oracle

採用choose

優化器,

為了避免那些不必要的全表掃瞄

(full table scan) ,

你必須盡量避免使用

choose

優化器,

而直接採用基於規則或者基於成本的優化器.

2.

訪問

table

的方式

oracle

採用兩種訪問表中記錄的方式:

a.全表掃瞄

全表掃瞄就是順序地訪問表中每條記錄

. oracle

採用一次讀入多個資料塊

(database block)

的方式優化全表掃瞄.

b.通過rowid

訪問表你可以採用基於

rowid

的訪問方式情況

,提高訪問表的效率

, , rowid

包含了表中記錄的物理位置資訊

..oracle

採用索引

(index)

實現了資料和存放資料的物理位置

(rowid)

之間的聯絡

. 通常索引提供了快速訪問

rowid

的方法,

因此那些基於索引列的查詢就可以得到效能上的提高.

oracle sql效能優化系列(二)

oracle sql效能優化系列(三)

oracle sql效能優化系列(四)

oracle sql效能優化系列(五)

oracle sql效能優化系列(六)

oracle sql效能優化系列(七)

oracle sql效能優化系列(八)

oracle sql效能優化系列(九)

ORACLE SQL效能優化系列

1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種宣告,如rule,cost,choose,all rows,first r...

Oracle SQL效能優化系列

1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種宣告,如rule,cost,choose,all rows,first r...

ORACLE SQL效能優化系列 七

24.用explain plan 分析sql語句 explain plan 是乙個很好的分析sql語句的工具,它甚至可以在不執行sql的情況下分析語句.通過分析,我們就可以知道oracle是怎麼樣連線表,使用什麼方式掃瞄表 索引掃瞄或全表掃瞄 以及使用到的索引名稱.你需要按照從裡到外,從上到下的次序...