Oracle CBO評估like的資料量,oraclecbo評估like

來源:互聯網
上載者:User

Oracle CBO評估like的資料量,oraclecbo評估like

   對Like,有兩種形式的寫法是按照資料總量的5%評估。

SQL> drop table test purge;

SQL> create table test as select * from dba_objects;
SQL> exec dbms_stats.gather_table_stats(user,'test');
SQL> select count(1) from test;
  COUNT(1)
----------

     79747

SQL> select count(1) from test where object_name like 'test%';
  COUNT(1)
----------
         0
SQL> select count(1) from test where object_name like '%test%';
  COUNT(1)
----------
        12
SQL> select count(1) from test where object_name like '%test';
  COUNT(1)
----------
         2

SQL> set autotrace trace exp

--79747*0.05=3987.35
SQL> select * from test where object_name like '%test%';
執行計畫
----------------------------------------------------------
Plan hash value: 1357081020
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |  3987 |   389K|   224   (1)| 00:00:04 |
|*  1 |  TABLE ACCESS FULL| TEST |  3987 |   389K|   224   (1)| 00:00:04 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter("OBJECT_NAME" LIKE '%test%' AND "OBJECT_NAME" IS NOT NULL)
--79747*0.05=3987.35
SQL> select * from test where object_name like '%test';
執行計畫
----------------------------------------------------------
Plan hash value: 1357081020
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |  3987 |   389K|   224   (1)| 00:00:04 |
|*  1 |  TABLE ACCESS FULL| TEST |  3987 |   389K|   224   (1)| 00:00:04 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("OBJECT_NAME" LIKE '%test' AND "OBJECT_NAME" IS NOT NULL)

--如果是百分比符號寫在後面,不能按照5%的

SQL> select * from test where object_name like 'test%';
執行計畫
----------------------------------------------------------
Plan hash value: 1357081020
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     2 |   200 |   224   (1)| 00:00:04 |
|*  1 |  TABLE ACCESS FULL| TEST |     2 |   200 |   224   (1)| 00:00:04 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter("OBJECT_NAME" LIKE 'test%')

SQL> select * from test where object_name like 't%';
執行計畫
----------------------------------------------------------
Plan hash value: 1357081020
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |  1079 |   105K|   224   (1)| 00:00:04 |
|*  1 |  TABLE ACCESS FULL| TEST |  1079 |   105K|   224   (1)| 00:00:04 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter("OBJECT_NAME" LIKE 't%')

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.