筆記---07
1. oralce優化器
rule—RBO,基於規則的優化器
choose—根據實際情況,如果資料字典中包含被引用的表的統計資料,即引用的物件已經被分析,則就使用CBO優化器,否則為RBO優化器。
ALL_rows—為CBO優化器使用的第一種具體的優化方式,是以資料的吞吐量為主要目標,使用最少的資源完成語句。
FIRST_ROWS--為CBO優化器使用的二種具體的優化方式,是以資料的響應時間為主要目標,以便快速查詢出開始的幾行資料。
FIRST_ROWS_【1|10|100|1000】--為CBO優化器使用的三種具體的優化方式,是以資料的響應時間減到最小的執行計劃,以便快速查詢出開始n行資料。
從ORACLE V7以來,optimizer_mode引數的預設設定應是‘choose’,即如果對已分析的表查詢的話選擇CBO,否則選擇RBO。在此種設定下,如果採用了CBO,則預設為CBO的all_rows模式。
2.影響執行計劃—可以hints來實現改變
1. 使用的優化器的型別
2. 基於代價的優化器的優化目標,是all_rows還是first_rows
3. 表的訪問路徑,是全表掃描,還是索引掃描,還是直接利用rowid
4. 表之間的連線型別
5. 表之間的連線順序
6. 語句的並行程度
採用最右最上最先執行的原則看層次關係,在同一級如果某個動作沒有子ID就最先執行
3. (16) 識別'低效執行'的SQL 語句:
雖然目前各種關於SQL 優化的圖形化工具層出不窮,但是寫出自己的SQL 工具來解決問題始
終是一個最好的方法:
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
FROM V$SQLAREA
WHERE EXECUTIONS>0
AND BUFFER_GETS > 0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8
ORDER BY 4 DESC;
4. (1) Anylyze執行之後查詢資訊的字典:
DBA_TABLES and DBA_TAB_COLUMNS table storage within extents and blocks
DBA_HISTOGRAMS and INDEX_HISTOGRAM data about nonindexed and indexed column data distribution.
DBA_INDEXES and INDEX_STATS data about index within extents and blocks and indexation usefulness.
5. V$檢視和DBA_檢視
區別:
1. V$檢視通常是單數,DBA檢視通常是複數,例如V$DATAFILE與DBA_DATA_FILES;
2. 當資料庫處於Nomout或者Mount時,許多V$檢視已經是可用的,而DBA檢視必須在資料庫處於Open時才可用;
3. V$檢視查詢出來的資料多小寫,DBA檢視查詢出的資料通常大寫,所以在寫WHERE條件時需特別小心;
4. V$檢視中包含的是自例項啟動以來的動態資料,在資料庫關閉後會消失,查詢V$檢視時必須關注時效性,DBA檢視中包含的是靜態資料;
5. V$檢視的基表是X$表,X$表是存在於記憶體中的虛表,DBA檢視的基表是資料字典表,如SYS.OBJ$, SYS.FILE$等,這兩種基表都很少有文件。
最常用的V$檢視:
表名 描述
V$SGASTAT 顯示SGA元件大小的資訊
V$EVENT_NAME 顯示當前版本的所有等待事件
V$SYSTEM_EVENT 自例項啟動已來的等待事件
V$SESSION_EVENT 目前連線會話的等待事件
V$SESSION_WAIT 目前連線會話正在發生的等待事件
V$STATNAME 顯示當前版本的所有統計名稱
V$SYSSTAT 自例項啟動以來的統計
V$SESSTAT 目前連線會話的統計
V$SESSION 目前連線會話的資訊
V$WAITSTAT 塊競爭的統計
最常用的DBA檢視(有些欄位的值需要分析表或索引後才會有值):
表名 描述
DBA_TABLES 表的儲存,統計等
DBA_INDEXES 索引的儲存,統計等
INDEX_STATS 索引的深度和鍵值的離散度等
DBA_DATA_FILES 資料檔案的命名,位置,大小
DBA_SEGMENTS 段的相關資訊
DBA_HISTOGRAMS 表,索引的柱狀圖定義資訊
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25850100/viewspace-700256/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python每日筆記07Python筆記
- 2024/07/03筆記隨筆筆記
- 學習筆記 07 --- JUC集合筆記
- vue 基礎入門筆記 07Vue筆記
- Java基礎-學習筆記07Java筆記
- Redis核心技術筆記07-08Redis筆記
- 筆記2018-07-03筆記
- 個人部落格專案筆記_07筆記
- JS筆記-007-JS Window-cookieJS筆記Cookie
- 2008-06-07shell筆記筆記
- 筆記本玩家福音 GTX1070筆記本顯示卡要來了筆記
- 《Java程式設計思想》筆記07——內部類Java程式設計筆記
- vue 基礎入門筆記 07:過濾器Vue筆記過濾器
- Struts2筆記07 什麼是值棧筆記
- RAC筆記-概念-20140701筆記
- 微信小程式開發筆記(2017.07.27)微信小程式筆記
- 007 Rust死靈書筆記之引用與別名Rust筆記
- git reset 命令詳解(一)—— Git 學習筆記 07Git筆記
- 07年3月25日廣州DBA課程筆記筆記
- 彙編學習筆記07——BCD碼及調整指令筆記
- 力扣刷題筆記:207. 課程表力扣筆記
- iOS學習筆記07 運動事件和遠端控制iOS筆記事件
- 讀所羅門的密碼筆記07_共生思想(中)密碼筆記
- 讀AI未來進行式筆記07量子計算AI筆記
- 隨筆0907
- 《吳恩達機器學習》學習筆記007_支援向量機吳恩達機器學習筆記
- 【C#學習筆記】讀access2007C#筆記
- POJ3070 Fibonacci[矩陣乘法]【學習筆記】矩陣筆記
- 讀AI新生:破解人機共存密碼筆記07概念和理論AI密碼筆記
- 24.07 做題記錄
- 【Redis學習筆記】2018-07-11 Redis指令學習5Redis筆記
- 【Redis學習筆記】2018-07-10 Redis指令學習3Redis筆記
- 【讀書筆記】:《編寫可維護的JavaScript》第07章 事件處理筆記JavaScript事件
- 《俞軍產品方法論》閱讀筆記2020-08-07筆記
- 印象筆記 --- 方法分享筆記筆記
- TensorFlow筆記-07-神經網路優化-學習率,滑動平均筆記神經網路優化
- [OCP學習筆記]043-07-處理資料庫損壞--基本知識筆記資料庫
- 2007年4月6日ORACLE FROM開發培訓筆記Oracle筆記