设为首页 加入收藏

TOP

Oracle索引聚簇因子的含义及重要性(三)
2017-02-28 08:15:49 】 浏览:707
Tags:Oracle 索引 因子 含义 重要性
d? | Operation? ? ? ? ? ? ? ? ? | Name? | Rows? | Bytes | Cost (%CPU)| Time? ? |
--------------------------------------------------------------------------------------
|? 0 | SELECT STATEMENT? ? ? ? ? ? |? ? ? ? |? ? ? |? ? ? |? 105 (100)|? ? ? ? ? |
|? 1 |? TABLE ACCESS BY INDEX ROWID| T1? ? |? ? 6 |? 474 |? 105? (0)| 00:00:02 |
|*? 2 |? INDEX RANGE SCAN? ? ? ? ? | IDX_T1 |? ? 6 |? ? ? |? ? 2? (0)| 00:00:01 |
--------------------------------------------------------------------------------------
......省略部分输出


从执行计划中可以看出,成本已经由3变为105(即增加了102),这说明我们对索引IDX_T1的聚簇因子的调整生效了。


要使成本值大于287,只需要把聚簇因子的值调整到400万。


linuxidc@MYDB>exec dbms_stats.set_index_stats(ownname=>'ZX',indname=>'IDX_T1',clstfct=>4000000,no_invalidate=>false);
?
PL/SQL procedure successfully completed.
?
linuxidc@MYDB>select clustering_factor from dba_indexes where index_name='IDX_T1';
?
CLUSTERING_FACTOR
-----------------
? ? ? ? ? 4000000
?
linuxidc@MYDB>select /*+ cluster_factor_expmple_3 */ object_id,object_name from t1 where object_id between 103 and 108;
?
?OBJECT_ID OBJECT_NAME
---------- ------------------------------
? ? ? 103 MIGRATE$
? ? ? 104 DEPENDENCY$
? ? ? 105 ACCESS$
? ? ? 106 I_DEPENDENCY1
? ? ? 107 I_DEPENDENCY2
? ? ? 108 I_ACCESS1
?
6 rows selected.
?
linuxidc@MYDB>select * from table(dbms_xplan.display_cursor(null,null,'all'));
?
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL_ID? cwkc8q61bypa6, child number 0
-------------------------------------
select /*+ cluster_factor_expmple_3 */ object_id,object_name from t1
where object_id between 103 and 108
?
Plan hash value: 3617692013
?
--------------------------------------------------------------------------
| Id? | Operation? ? ? ? | Name | Rows? | Bytes | Cost (%CPU)| Time? ? |
--------------------------------------------------------------------------
|? 0 | SELECT STATEMENT? |? ? ? |? ? ? |? ? ? |? 287 (100)|? ? ? ? ? |
|*? 1 |? TABLE ACCESS FULL| T1? |? ? 6 |? 474 |? 287? (1)| 00:00:04 |
--------------------------------------------------------------------------


从上面显示的内容可以看出执行计划从索引范围扫描变成了全表扫描。


首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle在线 redo log文件丢失后的.. 下一篇ORA-600 2662错误解决实例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目