国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

ORACLE SQL性能優(yōu)化系列 (六)

2024-08-29 13:46:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Oracle SQL性能優(yōu)化系列 (六) 
20. 用表連接替換EXISTS 通常來(lái)說(shuō) , 采用表連接的方式比EXISTS更有效率SELECT ENAMEFROM EMP EWHERE EXISTS (SELECT ‘X’ FROM DEPT WHERE DEPT_NO = E.DEPT_NOAND DEPT_CAT = ‘A’); (更高效)SELECT ENAMEFROM DEPT D,EMP EWHERE E.DEPT_NO = D.DEPT_NOAND DEPT_CAT = ‘A’ ; (譯者按: 在RBO的情況下,前者的執(zhí)行路徑包括FILTER,后者使用NESTED LOOP) 21. 用EXISTS替換DISTINCT當(dāng)提交一個(gè)包含一對(duì)多表信息(比如部門(mén)表和雇員表)的查詢(xún)時(shí),避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換 例如:低效:SELECT DISTINCT DEPT_NO,DEPT_NAMEFROM DEPT D,EMP EWHERE D.DEPT_NO = E.DEPT_NO高效:SELECT DEPT_NO,DEPT_NAMEFROM DEPT DWHERE EXISTS ( SELECT ‘X’FROM EMP EWHERE E.DEPT_NO = D.DEPT_NO); EXISTS 使查詢(xún)更為迅速,因?yàn)镽DBMS核心模塊將在子查詢(xún)的條件一旦滿(mǎn)足后,馬上返回結(jié)果. 22. 識(shí)別’低效執(zhí)行’的SQL語(yǔ)句 用下列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_TEXTFROM V$SQLAREAWHERE EXECUTIONS>0AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC; (譯者按: 雖然目前各種關(guān)于SQL優(yōu)化的圖形化工具層出不窮,但是寫(xiě)出自己的SQL工具來(lái)解決問(wèn)題始終是一個(gè)最好的方法) 23. 使用TKPROF 工具來(lái)查詢(xún)SQL性能狀態(tài) SQL trace 工具收集正在執(zhí)行的SQL的性能狀態(tài)數(shù)據(jù)并記錄到一個(gè)跟蹤文件中. 這個(gè)跟蹤文件提供了許多有用的信息,例如解析次數(shù).執(zhí)行次數(shù),CPU使用時(shí)間等.這些數(shù)據(jù)將可以用來(lái)優(yōu)化你的系統(tǒng). 設(shè)置SQL TRACE在會(huì)話級(jí)別: 有效 ALTER session SET SQL_TRACE TRUE 設(shè)置SQL TRACE 在整個(gè)數(shù)據(jù)庫(kù)有效仿, 你必須將SQL_TRACE參數(shù)在init.ora中設(shè)為T(mén)RUE, USER_DUMP_DEST參數(shù)說(shuō)明了生成跟蹤文件的目錄 (譯者按: 這一節(jié)中,作者并沒(méi)有提到TKPROF的用法, 對(duì)SQL TRACE的用法也不夠準(zhǔn)確, 設(shè)置SQL TRACE首先要在init.ora中設(shè)定TIMED_STATISTICS, 這樣才能得到那些重要的時(shí)間狀態(tài). 生成的trace文件是不可讀的,所以要用TKPROF工具對(duì)其進(jìn)行轉(zhuǎn)換,TKPROF有許多執(zhí)行參數(shù). 大家可以參考ORACLE手冊(cè)來(lái)了解具體的配置. )
 
 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沭阳县| 汝州市| 康保县| 平远县| 饶阳县| 开封市| 怀仁县| 金乡县| 鄂托克旗| 通海县| 嫩江县| 永定县| 会同县| 黎平县| 墨竹工卡县| 鹤山市| 云安县| 鄂尔多斯市| 南安市| 云龙县| 福鼎市| 周至县| 常熟市| 隆安县| 双牌县| 宁明县| 大港区| 苏尼特左旗| 白城市| 商丘市| 莒南县| 蚌埠市| 虎林市| 二连浩特市| 游戏| 金湖县| 葫芦岛市| 平塘县| 浦北县| 河源市| 奉化市|