DBA 培訓相應內容筆記,dba培訓內容筆記
014-12-23
slow hang lock 三種常見性能問題
hang;整個數據庫不響應,無法創建新連接.
hanganalyze輸出. dump文件是否有問題信息, 文件是否有其他信息
工具:AWR . 10046, ORADBUG, RDA, SQL TRACE, PL/SQL
優化器: RBO CBO
CHOOSE FIRST_ROWS ALL_ROWS
ROWID
RECURSIVE CALLS
ROW SOURCE
PREDICATE (WHERE條件)
DRIVING TABLE (驅動表, 通常oracle從左到右. 表數據最少,最為驅動表, 循環嵌套代價少) 被探查表
PROBED TABLE 被探查表
CONCATENATED INDEX 復合索引
SELECTIVITY
FULL TABLE SACNS
TABLE ACCESS BY ROWID 對單條數據查找速度最快的方式.
INDEX UNIQUE SACN 索引唯一性掃描. 索引掃描->帶出rowid->對表進行存取.
INDEX RANGE SCAN 索引范圍掃描. >= <=. 組合索引只只用部分.非唯一索引掃描.
INDEX FULL SCAN 索引全掃描. 順序與組合索引相同,則會觸發掃描.
INDEX FAST FULL SACN 索引快速掃描, 不會進行排序.
表連接
SORT MERGE JOIN 合並排序索引, 耗用內存. 以內存換取時間??
1)非等值連接,效率較高.
2)關聯的列上都有索引,效果好.
3)2個較大的row source連接,比NL(嵌套循環)連接要好.
4)sort merge返回的row source過大,會導致過多的rowid在表中查詢,過多的IO,性能下降.
NESTED LOOPS 循環嵌套連接.
1)DRIVING row source比較小,
2)可以先返回已經連接的行,不必等待所有連接操作都完成才返回數據,可實現快速響應.
HASH JOIN 哈希連接.
只能再CBO 基於代價中使用
來自為知筆記(Wiz)