《Oracle 高效設計》 讀書思考–標量子查詢查詢效能討論

來源:互聯網
上載者:User

      剛看了《oracle 高效設計》的講到的,說到oracle中有標量子查詢,效能要由於關聯查詢,但是我在SQL server中知道關聯查詢的效能要優於標量子查詢。

     我們來做個測試,看看效能:執行語句:

set autotrace on
select a.username,count(*)   from all_users a,all_objects b
where a.username=b.owner(+)
group by a.username;

   在SQL developer中執行,結果如下:

      5356  recursive calls
         0  db block gets
      82152  consistent gets

 

    再執下列語句:

set autotrace on
select a.username,(select count(*) from all_objects b where b.owner=a.username) cnt
from all_users a;

    執行結果,如下:

      5371  recursive calls
         0  db block gets
     98645  consistent gets

    這時發現,通過執行關聯查詢的效能要優於標量子查詢。估計《Oracle 高效設計》是版本比較低,現在都是用的10gR2的版本有很大改變。

  執行語句如下:

set autotrace on
select a.username,count(*),avg(object_id) from all_users a,all_objects b
where a.username=b.owner(+) group by a.username; 

  執行結果:

            5371  recursive calls
               0  db block gets
           82157  consistent gets

  執行語句:

set autotrace on
select username,to_number(substr(data,1,10)) cnt,to_number(substr(data,11)) avg from
(
select a.username,(select to_char(count(*),'fm0000000009') || avg(object_id) from all_objects b where b.owner=a.username) data from all_users a)

 執行結果:

        5356  recursive calls
           0  db block gets
        98556  consistent gets

  執行語句:

set autotrace on
create or replace type myType as object
(cnt number,avg number);
select username,a.data.cnt,a.data.avg from
(select username,(select myType(count(*),avg(object_id)) from all_objects b where b.owner=a.username) data from all_users a) a;

  執行結果:

            5390  recursive calls
               0  db block gets
           98662  consistent gets

 

  總結:

     通過上面的測試發現,TOM的《Oracle高效設計》裡談到的標量子查詢的效能要由於關聯查詢,在舊版本的中可能是可以的,在10gR2中是不成立的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.