设为首页 加入收藏

TOP

Oracle Index Clustering Factor(集群因子)(二)
2018-01-17 13:05:29 】 浏览:392
Tags:Oracle Index Clustering Factor 集群 因子
cks,extents,bytes/1024/1024||'M' "size" from user_segments where segment_name='JACK';


SEGMENT_NAME    BLOCKS    EXTENTS  size
------------- ---------- ---------- --------
JACK            11264      82      88M


  ----在object_id上创建索引----
SQL> create index jack_ind on jack(object_id);


Index created.


  ----查看一下索引的大小----
SQL> select segment_name,segment_type,blocks,extents,bytes/1024/1024||'M' "size" from user_segments where segment_name='JACK_IND';


SEGMENT_NAME    SEGMENT_TYPE      BLOCKS    EXTENTS    size
------------ ------------------ ---------- ---------- ---------
JACK_IND          INDEX          1664        28        13M
  ----在没有收集相关的统计信息之前,查看一下index clustering factor----
SQL> select index_name,clustering_factor,num_rows from user_indexes where index_name='JACK_IND';


INDEX_NAME      CLUSTERING_FACTOR  NUM_ROWS
--------------- ----------------- ----------
JACK_IND              725460        725460


  ----简单的收集一下统计信息----
SQL> exec dbms_stats.gather_table_stats(user,'jack',cascade=>true);


PL/SQL procedure successfully completed.


  ----再次查看index clustering factor----
SQL> select index_name,clustering_factor,num_rows from user_indexes where index_name='JACK_IND';


INDEX_NAME    CLUSTERING_FACTOR  NUM_ROWS
-------------- ----------------- ----------
JACK_IND              725460      725460      ----显然统计信息收集前和后,clustering factor值不变,说在创建索引的时候,会收集表中的数据真正的行数。并且这里的clustering factor等num_rows,也说明表的clustering factor是无序的。


  ----查看一个确定值,然后查看执行计划----
SQL> explain plan for select * from jack where object_id=1501;


Explained.


SQL> select * from table(dbms_xplan.display);


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2860868395


--------------------------------------------------------------------------------
| Id  | Operation            | Name    | Rows  | Bytes | Cost (%CPU)| Ti
--------------------------------------------------------------------------------
|  0 | SELECT STATEMENT        |          |    10 |  970 |    13    (0)| 00
|  1 |  TABLE ACCESS BY INDEX ROWID| JACK    |    10 |  970 |    13    (0)| 00
|*  2 |  INDEX RANGE SCAN        | JACK_IND |    10 |      |    3    (0)| 00
--------------------------------------------------------------------------------


Predicate Information (identified by operation id):


PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------



  2 - access("OBJECT_ID"=1501)


14 rows selected.                ----在这里走了索引,cost为13.


SQL> alter system flush buffer_cache;

首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL 5.7设置简单密码报错ERROR .. 下一篇MySQL binlog日志存放位置的修改

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目