oracle中sql最佳化讀書筆記1-最佳化器

來源:互聯網
上載者:User

標籤:sp   資料   bs   sql   oracle   nbsp   不同的   c   最佳化   

我們寫一條sql語句給Oracle,Oracle是需要將他解析之後才去執行的,也就是要明確先幹啥後幹啥。這就是所謂的執行計畫。

最佳化器就是用來得出最後的執行計畫的工具,Oracle的最佳化器有兩種一種是基於規則的,一種是基於成本的。

1.基於規則的,就是明確了步驟,比如說必須是先把where 條件中最後一個條件用於過濾,再在此基礎上用倒數第二個條件過濾。

2.基於成本的,就是先收集一下當前的資料量有多大,各種條件的資料量有多大(這就得有Oracle的統計的東西做支援了),通過判斷找出來過濾出最少的資料作為下一次篩選的基礎資料。

 

基於規則的就是Oracle做產品的時候已經對不同的查詢分了優先順序了,到時候肯定是按照優先順序去執行的。 這時候可最佳化的空間就比較小了。

因為他的執行計畫難以調整,比如 最佳化的時候對於dba可能經常用hint去影響執行計畫去,基於規則的這裡邊就很少能用了。

 

在很難裡邊也總是能最佳化的吧。文章中列了兩條

1.把原有的規則給廢掉,例如有兩個條件,不知道誰先誰後,兩個都是索引鍵,把其中一個列中加入0值或空格導致索引失效,那麼另一個自然就優先了。

2.依據緩衝,先調入到記憶體中的會變舊,甲乙按先後進入,後用的乙,那麼到時候執行就先用乙(說的同優先順序,不同優先順序那肯定還得按規矩來)

 

oracle中sql最佳化讀書筆記1-最佳化器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.