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

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

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

    海鷗航際

    JAVA站
    posts - 11, comments - 53, trackbacks - 1, articles - 102

    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手冊來了解具體的配置. )

    主站蜘蛛池模板: 情侣视频精品免费的国产| 波多野结衣免费视频观看| 亚洲精品卡2卡3卡4卡5卡区| 亚洲AV无码成人精品区日韩| 免费精品久久久久久中文字幕| 午夜精品在线免费观看| 国产免费卡一卡三卡乱码| 久久精品九九亚洲精品天堂| 久久久久久久国产免费看| 国产亚洲精品无码成人| 免费的全黄一级录像带| 日韩亚洲Av人人夜夜澡人人爽 | 国产一区二区三区免费| 国产av无码专区亚洲av桃花庵| 久久精品成人免费观看97| 亚洲欧洲精品无码AV| 99免费在线视频| 成年女人毛片免费播放视频m| 亚洲国产精品综合久久20| 国产青草视频在线观看免费影院| 狠狠入ady亚洲精品| 亚洲中文字幕无码一区 | 亚洲精品视频在线观看免费| 亚洲国产精品综合福利专区| 成人免费无毒在线观看网站| 美女羞羞免费视频网站| 巨波霸乳在线永久免费视频| 亚洲精品第一综合99久久| 午夜国产羞羞视频免费网站| 免费无码av片在线观看 | 亚洲狠狠婷婷综合久久| 无码一区二区三区免费| 亚洲国产成+人+综合| 久久精品一区二区免费看| 亚洲一级特黄大片无码毛片 | 亚洲国产精品不卡在线电影| 黄在线观看www免费看| 美女隐私免费视频看| 亚洲成在人天堂一区二区| 国产精品青草视频免费播放| 夜色阁亚洲一区二区三区|