隨筆 - 3  文章 - 0  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          搜索

          •  

          積分與排名

          • 積分 - 1581
          • 排名 - 4236

          最新評論

          閱讀排行榜

          評論排行榜

          Because SQL is a declarative language, you can write the same query in many forms, each getting the same result but with vastly different execution plans and performance.

          In this example, we select all books that do not have any sales.  Note that this is a non-correlated sub-query, but it could be re-written in several ways.

          select
             book_key
          from
             book
          where
             book_key NOT IN (select book_key from sales);
           

          There are serious problems with subqueries that may return NULL values. It is a good idea to discourage the use of the NOT IN clause (which invokes a sub-query) and to prefer NOT EXISTS (which invokes a correlated sub-query), since the query returns no rows if any rows returned by the sub-query contain null values.

          select
             book_key
          from
             book
          where
             NOT EXISTS (select book_key from sales);

          Subqueries can often be re-written to use a standard outer join, resulting in faster performance.  As we may know, an outer join uses the plus sign (+) operator to tell the database to return all non-matching rows with NULL values.  Hence we combine the outer join with a NULL test in the WHERE clause to reproduce the result set without using a sub-query.

          select
             b.book_key
          from
             book  b,
             sales s
          where
             b.book_key = s.book_key(+)
          and
             s.book_key IS NULL;

          This execution plan will also be faster by eliminating the sub-query.

          posted on 2007-08-14 15:06 y 閱讀(206) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 碌曲县| 南川市| 台江县| 阳西县| 阿荣旗| 阿鲁科尔沁旗| 团风县| 江川县| 陇川县| 普定县| 怀化市| 瑞昌市| 友谊县| 临洮县| 永州市| 微博| 韶山市| 朝阳区| 原阳县| 开远市| 吉林省| 确山县| 同心县| 闸北区| 英山县| 贺州市| 拉孜县| 定西市| 清苑县| 汉沽区| 辽源市| 双鸭山市| 鱼台县| 鹤峰县| 东源县| 瑞安市| 岳西县| 托克逊县| 个旧市| 潍坊市| 准格尔旗|