i』m me! -> 索引相關
全表掃瞄是怎麼掃瞄的?
oracle最小的儲存單位是block
物理上連續的block組成了extent(也就是說乙個區中的所有塊在物理上是連續的)
很多個extent組成了segment(乙個segment中的區在物理上可能是連續的,也可能是不連續的)
全表掃瞄是乙個區乙個區的掃瞄的,因為乙個區內多個塊在物理上是連續的,所以可以多塊讀。
最常用的:set autotrace trace
統計資訊的意義:
recursive calls :遞迴呼叫的次數(遞迴呼叫是指,執行目標sql時,需要執行一些別的sql來為目標sql服務。eg:解析,查資料字典,插入資料字典,或目標sql中呼叫了使用者自定義函式等)
一般乙個新的sql執行2-3次以後遞迴呼叫次數就為0了,除非sql中有使用者自定義函式。-----這個指標在優化中,一般不用過多關注。
db block get:有多少個塊被修改了,單位是塊(只有dml才能修改塊,乙個select語句一般情況下,db block get為0,當延遲塊清除的時候,select 的 db block get可能不為0【延遲塊清除沒什麼意義,不用過多關注】)
consistent get:邏輯讀,乙個塊在buffer cache中,被掃瞄一次,邏輯讀就+1,邏輯讀可能是讀不同的塊,也可能是乙個塊讀了多次。
【場景demo:如果乙個表中好多的塊都被修改過,在undo中,因為我們要讀undo,還要重新構造映象塊。所以,在乙個高併發的dml情景下,select的邏輯讀可能要比標準情況下高幾倍。】
physical reads:物理讀,將乙個塊從磁碟讀到buffer cache,物理讀+1. (邏輯讀是包含物理讀的。)
redo size:跑這個sql產生多少的redo日誌。(只要db block get為0,redo size為0)
sorts(memory)和sorts(disk):記憶體排序和磁碟排序,優化中基本沒用。不用關注。
1 rows processed(這一列是重點非常有用):sql語句處理或返回了多少行,能直觀的看出來,這個sql能不能優化。
【【【 重要的,有用的資訊:consistent get 和 rows processed 】】】
分類:
sql優化原理
· autotrace是分析sql的執行計畫,執行效率的乙個非常簡單方便的工具
· 在sqlplus中執行set autotrace on 報cannot set autotrace 錯誤解決方法
· **oracle 執行計畫(explain plan) 說明
· oracle 執行計畫(explain plan)
· oracle 執行計畫(explain plan) 說明
»
ocacle 執行計畫 Oracle執行計畫
一 什麼是oracle執行計畫?執行計畫是一條查詢語句在oracle中的執行過程或訪問路徑的描述 二 怎樣檢視oracle執行計畫?因為我一直用的plsql遠端連線的公司資料庫,所以這裡以plsql為例 配置執行計畫需要顯示的項 工具 首選項 視窗型別 計畫視窗 根據需要配置要顯示在執行計畫中的列 ...
mysql執行計畫 MySQL 執行計畫
1.執行計畫的定義 什麼是執行計畫 查詢計畫 呢?執行計畫就是一系列的操作步驟。sql是宣告性語言,它只告訴資料庫要查詢什麼,但並不告訴資料庫如何去查。資料庫所要做的就是基於演算法和統計資訊計算出一條最佳的訪問路徑。這個工作是由優化器來完成的。優化器會比較不同的執行計畫,然後選擇其中最優的一套。2....
在JS中統計函式執行次數
一 統計函式執行次數 常規的方法可以使用 console.log 輸出來肉眼計算有多少個輸出 不過在chrome中內建了乙個 console.count 方法,可以統計乙個字串輸出的次數。我們可以利用這個來間接地統計函式的執行次數 function somefunction function oth...