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

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

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

    真善美

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

      BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理 ::
      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執(zhí)行次數(shù)頻繁,且數(shù)據(jù)量較小,可以把表數(shù)據(jù)存放到tuxedo共享內存獲取數(shù)據(jù)

    3、計算記錄條數(shù)

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

    4、用EXISTS替代IN

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

    5、用NOT EXISTS替代NOT IN

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

    6、優(yōu)化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、程序中用到計算的數(shù)值,在查詢時一定要用nvl(colnum,0),否則返回值可能為null,這樣在程序計算時用到parseInt之類的轉換時,會報空指針異常。

    posted on 2010-12-29 15:56 真善美 閱讀(202) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫學習
    主站蜘蛛池模板: 久久精品免费观看| 亚洲heyzo专区无码综合| 啦啦啦高清视频在线观看免费 | 亚洲视频一区调教| 九九精品成人免费国产片| 亚洲精品无码成人AAA片| 黄色网站软件app在线观看免费 | 亚洲免费在线视频播放| 亚洲黄色在线网站| 麻豆视频免费播放| 99久久婷婷国产综合亚洲| 成年男女男精品免费视频网站| 亚洲永久在线观看| 日本一区二区三区日本免费| 国产成人亚洲精品播放器下载 | 久久亚洲最大成人网4438| 国产在线国偷精品产拍免费| 亚洲国产成人无码AV在线| 国产精品免费视频播放器| 四虎影视久久久免费观看| 亚洲中文字幕无码久久综合网| 在线观看免费视频网站色| 久久久久亚洲AV无码永不| 精品国产sm捆绑最大网免费站| 亚洲视频在线观看2018| 丁香亚洲综合五月天婷婷| 91视频免费观看| 亚洲国产美女视频| 毛片在线播放免费观看| 亚洲嫩草影院在线观看| 日本不卡在线观看免费v| 久久免费香蕉视频| 亚洲成a人片77777群色| 永久免费视频v片www| a毛片视频免费观看影院| 亚洲精品视频在线播放| 热99re久久精品精品免费| av网站免费线看| 亚洲国产美女视频| 亚洲中文字幕无码一久久区| 噼里啪啦免费观看高清动漫4|