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

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

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

    真善美

    勇于承擔責任; 如果你做不到,要提前跟別人說明,不要等到事情發生后再解釋。

      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
      55 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks
     

    1、where條件中關于日期的,求前10天的記錄

    bad:

    SELECT *

    FROM tablename

    WHERE intime>= sysdate-10

    Better:

    SELECT *

    FROM tablename

    WHERE intime between sysdate - 10 and sysdate

    2、如果sql執行次數頻繁,且數據量較小,可以把表數據存放到tuxedo共享內存獲取數據

    3、計算記錄條數

       和一般的觀點相反, count(*) 比count(1)稍快 , 當然如果可以通過索引檢索,對索引列的計數仍舊是最快的. 例如 COUNT(EMPNO)

    4、用EXISTS替代IN

    在許多基于基礎表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯接.在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢的效率。

    5、用NOT EXISTS替代NOT IN

    在子查詢中,NOT IN子句將執行一個內部的排序和合并. 無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執行了一個全表遍歷). 為了避免使用NOT IN ,我們可以把它改寫成外連接(Outer Joins)或NOT EXISTS。

    6、優化GROUP BY

    提高GROUP BY 語句的效率, 可以通過將不需要的記錄在GROUP BY 之前過濾掉.下面兩個查詢返回相同結果但第二個明顯就快了許多.

     低效:

       SELECT JOB , AVG(SAL)

       FROM EMP

       GROUP JOB

       HAVING JOB = ‘PRESIDENT’

       OR JOB = ‘MANAGER’

     高效:

       SELECT JOB , AVG(SAL)

       FROM EMP

       WHERE JOB = ‘PRESIDENT’

       OR JOB = ‘MANAGER’

     GROUP by JOB

    7、減少對表的查詢

    在含有子查詢的SQL語句中,要特別注意減少對表的查詢.

    例如:

         低效

              SELECT TAB_NAME

              FROM TABLES

              WHERE TAB_NAME = ( SELECT TAB_NAME

                                    FROM TAB_COLUMNS

                                    WHERE VERSION = 604)

              AND DB_VER= ( SELECT DB_VER

                               FROM TAB_COLUMNS

                               WHERE VERSION = 604)

         高效

              SELECT TAB_NAME

              FROM TABLES

              WHERE (TAB_NAME,DB_VER)

     = ( SELECT TAB_NAME,DB_VER)

                       FROM TAB_COLUMNS

                       WHERE VERSION = 604)

         Update 多個Column 例子:

         低效:

              UPDATE EMP

              SET EMP_CAT = (SELECT MAX(CATEGORY) FROM EMP_CATEGORIES),

                  SAL_RANGE = (SELECT MAX(SAL_RANGE) FROM EMP_CATEGORIES)

              WHERE EMP_DEPT = 0020;

         高效:

              UPDATE EMP

              SET (EMP_CAT, SAL_RANGE) = (SELECT MAX(CATEGORY) , MAX(SAL_RANGE)

    FROM EMP_CATEGORIES)

              WHERE EMP_DEPT = 0020;

    8、程序中用到計算的數值,在查詢時一定要用nvl(colnum,0),否則返回值可能為null,這樣在程序計算時用到parseInt之類的轉換時,會報空指針異常。

    posted on 2010-12-29 15:56 真善美 閱讀(196) 評論(0)  編輯  收藏 所屬分類: 數據庫學習
    主站蜘蛛池模板: 亚洲成a人片在线观看久| 久久亚洲中文字幕精品一区| 亚洲av综合av一区二区三区| 亚洲国产精品一区二区三区久久| 最新国产乱人伦偷精品免费网站 | 亚洲a一级免费视频| 国产成人免费在线| 在线亚洲v日韩v| 亚洲av综合av一区| 日韩免费视频在线观看| 黄色片免费在线观看| 国产亚洲精品影视在线| 国产亚洲无线码一区二区| 免费精品人在线二线三线区别| 国产久爱免费精品视频| 亚洲AV无码一区二区三区在线| 亚洲女人被黑人巨大进入| 免费A级毛片无码无遮挡内射| 成人一级免费视频| 久久精品亚洲AV久久久无码 | 2020国产精品亚洲综合网| 亚洲中文字幕在线乱码| 妞干网免费视频观看| 无码人妻久久一区二区三区免费| 国产亚洲综合久久| 亚洲一卡二卡三卡| 国产亚洲人成网站观看| 免费A级毛片在线播放不收费| 成视频年人黄网站免费视频| 久热免费在线视频| 一区二区在线视频免费观看| 亚洲最大无码中文字幕| 亚洲图片中文字幕| 亚洲AV永久无码精品成人| 亚洲av麻豆aⅴ无码电影| 成人毛片免费观看视频在线 | 欧美a级成人网站免费| 日韩午夜理论免费TV影院| 中文字幕免费视频精品一| 特黄特色大片免费| 亚洲JLZZJLZZ少妇|