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優化器,而直接採用基於規則或者基於成本的優化器。
Oracle認證 Oracle優化器的優化方式
oracle是世界領先的資訊管理軟體開發商,因其複雜的關聯式資料庫產品而聞名。本文介紹oracle優化器,它是乙個非常好用的工具。oracle在執行乙個sql之前,首先要分析一下語句的執行計畫,然後再按執行計畫去執行。分析語句的執行計畫的工作是由優化器 optimizer 來完成的。不同的情況,一條...
Oracle的優化器
一 目的 1 說一說oracle的optimizer及其相關的一些知識。2 回答一下為什麼有時乙個表的某個字段明明有索引,當觀察一些sql的執行計畫時,發現確不走索引的問題。3 如果你對 first rows all rows這兩種模式有疑惑時也可以看一下這篇文章。oracle在執行乙個sql之前,...
Oracle的優化器
oracle的優化器共有兩種的優化方式,即基於規則的優化方式 rule based optimization,簡稱為rbo 和基於代價的優化方式 cost based optimization,簡稱為cbo a rbo方式 優化器在分析sql語句時,所遵循的是oracle內部預定的一些規則。比如我們...