<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鷹翔宇空

    學習和生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks
    引自:http://www.dbonline.cn/source/oracle/20031218/oracle%20SQL%20performance%20tuning6.html

    ORACLE SQL性能優化系列 (六)

    作者: black_snail

     

    關鍵字 ORACLE PERFORMANCE TUNING SQL

    出處 http://www.dbasupport.com



    20. 用表連接替換EXISTS


    通常來說 , 采用表連接的方式比EXISTS更有效率

    SELECT ENAME

    FROM EMP E

    WHERE EXISTS (SELECT ‘X'

    FROM DEPT

    WHERE DEPT_NO = E.DEPT_NO

    AND DEPT_CAT = ‘A');


    (更高效)

    SELECT ENAME

    FROM DEPT D,EMP E

    WHERE E.DEPT_NO = D.DEPT_NO

    AND DEPT_CAT = ‘A' ;


    (譯者按: 在RBO的情況下,前者的執行路徑包括FILTER,后者使用NESTED LOOP)



    21. 用EXISTS替換DISTINCT

    當提交一個包含一對多表信息(比如部門表和雇員表)的查詢時,避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換


    例如:

    低效:

    SELECT DISTINCT DEPT_NO,DEPT_NAME

    FROM DEPT D,EMP E

    WHERE D.DEPT_NO = E.DEPT_NO

    高效:

    SELECT DEPT_NO,DEPT_NAME

    FROM DEPT D

    WHERE EXISTS ( SELECT ‘X'

    FROM EMP E

    WHERE E.DEPT_NO = D.DEPT_NO);


    EXISTS 使查詢更為迅速,因為RDBMS核心模塊將在子查詢的條件一旦滿足后,立刻返回結果.



    22. 識別'低效執行'的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;


    (譯者按: 雖然目前各種關于SQL優化的圖形化工具層出不窮,但是寫出自己的SQL工具來解決問題始終是一個最好的方法)



    23. 使用TKPROF 工具來查詢SQL性能狀態


    SQL trace 工具收集正在執行的SQL的性能狀態數據并記錄到一個跟蹤文件中. 這個跟蹤文件提供了許多有用的信息,例如解析次數.執行次數,CPU使用時間等.這些數據將可以用來優化你的系統.


    設置SQL TRACE在會話級別: 有效


    ALTER SESSION SET SQL_TRACE TRUE


    設置SQL TRACE 在整個數據庫有效仿, 你必須將SQL_TRACE參數在init.ora中設為TRUE, USER_DUMP_DEST參數說明了生成跟蹤文件的目錄


    (譯者按: 這一節中,作者并沒有提到TKPROF的用法, 對SQL TRACE的用法也不夠準確, 設置SQL TRACE首先要在init.ora中設定TIMED_STATISTICS, 這樣才能得到那些重要的時間狀態. 生成的trace文件是不可讀的,所以要用TKPROF工具對其進行轉換,TKPROF有許多執行參數. 大家可以參考ORACLE手冊來了解具體的配置. )

                                                                       《上一頁》  |  《下一頁》


    posted on 2006-02-25 11:41 TrampEagle 閱讀(513) 評論(0)  編輯  收藏 所屬分類: 技術文摘
    主站蜘蛛池模板: 国产亚洲成av片在线观看 | 亚洲视频在线一区二区| 久久亚洲AV成人无码电影| 免费A级毛片无码A∨男男| 亚洲人成网站观看在线播放| 亚洲天堂中文字幕在线观看| 中出五十路免费视频| 国产美女精品视频免费观看| 亚洲日本一区二区三区在线| 欧洲亚洲国产精华液| 又黄又爽又成人免费视频| 亚洲av无码专区国产乱码在线观看| 美女被羞羞网站免费下载| 久久久久久国产精品免费免费男同 | 亚洲人成网www| 2020国产精品亚洲综合网| 国产成人精品无码免费看| 女人18毛片免费观看| 亚洲明星合成图综合区在线| 久久国产免费观看精品| 麻豆成人精品国产免费| 亚洲人成电影在线观看网| 一级毛片视频免费观看| 日韩人妻一区二区三区免费| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 成人免费大片免费观看网站| 亚洲国产精品一区二区第一页免| 伊人久久综在合线亚洲2019| WWW免费视频在线观看播放| 97视频热人人精品免费| 亚洲熟妇无码另类久久久| 男女交性无遮挡免费视频| 国产成人免费网站在线观看| 亚洲中文字幕无码av| 在线观看免费无码专区| 久久亚洲色一区二区三区| 亚洲一级特黄特黄的大片 | 亚洲综合免费视频| 一区二区三区在线免费看| 久久精品亚洲综合一品| 久久青青草原国产精品免费|