-
基数: 某个列唯一键(distinct keys ) 的数量 叫做基数
-
选择性: 基数与总行数的比值在乘以100% 就是某个列的选择性
-
回表 table access by index rowid
-
集群因子(表的数据和索引的顺序的 一致性的反应)
-
更新 统计信息
begin
dbms_stats.gather_table_stats(
ownname => ‘YWGL’,
tabname => ‘YWGL_DBA_OBJECTS’,
estimate_percent => 100,
method_opt => ‘for all columns size auto’,
no_invalidate => FALSE,
degree =>1,
cascade => TRUE
);
end;
// 表示对出现在where条件的列自动判断是否收集直方图
begin
dbms_stats.gather_table_stats(
ownname => ‘YWGL’,
tabname => ‘YWGL_DBA_OBJECTS’,
estimate_percent => 100,
method_opt => ‘for columns object_type size skewonly’,
no_invalidate => FALSE,
degree =>1,
cascade => TRUE
);
end;
//表示单独对 object_type 列收集直方图,对于其余列,如果之前收集过直方图,现在也收集
6.查看表和索引的统计信息
查看表的统计信息
select * from user_tables;
查看列的统计信息
select * from user_tab_col_statistics;
查看索引的统计信息
select * from user_indexes;
查看表的大小
select * from user_segments;
select * from user_tab_col_statistics;
select * from user_indexes;
- 单独更新索引的统计信息
begin
DBMS_STATS.GATHER_INDEX_STATS(
ownname => ‘SCOTT’,
indname => ‘IDX_T_STAT_ID’
)
8.判断统计信息是否过期, 过期的原因
a. 先刷新数据库监控信息
begin
dbms_stats.flush_database_monitoring_info;
end;
在执行以下语句
select owner, table_name, object_type, stale_stats, last_analyzed from user_tab_statistics where owner = 'SCOTT' AND table_name = 'tb_out_Task';
b, 查询过期的原因
select * from user_tab_modifications;
user_tab_statistics user_tab_modifications
组合索引 :
8.3 9.1 第10章
- 更改连接方式 (半连接子查询 的 别名)
select /+ use_hash(c, d@a) leading(a)/ * from dept c where c.deptno in (select /+ qb_name(a)/ d.deptno from emp d);
select * from table(dbms_xplan.display_cursor(null,null,‘ALLSTATS LAST’));
http://blog.csdn.net/robinson1988/article/details/7002545
http://blog.csdn.net/robinson1988/article/details/51148332
http://blog.csdn.net/robinson1988/article/details/6613851
http://blog.csdn.net/robinson1988/article/details/40870901
http://blog.csdn.net/robinson1988/article/details/7219958
oracle 分页语句建索引的 规则