当一条SQL请求发送到数据库的时候,数据库的优化器也要通过一系列的代价算法来决定如何生成成本最低的执行计划(连接方式、访问路径、连接顺序及索引的选择),同时计算出所需花费的成本。而这个执行计划和花费的成本就需要统计信息的帮助。
SP_CREATE_SYSTEM_PACKAGES (1,'DBMS_STATS'); --如果还未创建过系统包。请先调用系统过程创建系统包
dbms_stats.table_stats_show('SYSDBA','CF'); --查看表sysdba.cf的统计信息
dbms_stats.column_stats_show('SYSDBA','CF','FDMCHXM'); --查看表某列的统计信息
dbms_stats.index_stats_show('SYSDBA','I_CF_FDMCHXM'); --查看模式下索引的统计信息
call sp_db_stat_init(); --库级别的统计信息收集(包括所有用户、模式的表及表上索引的信息)
call sp_tab_index_stat_init('SYSDBA','CF');--收集CF表下的所有索引的统计信息,上面新建索引没有收集统计信息时不走索引,收集完该索引或者该索引的列后,就走索引了
call sp_col_stat_init('SYSDBA','CF','FDMCHXM');--收集表中某一列的统计信息
call sp_tab_col_stat_init('SYSDBA','CF');--收集某张表上所有列的统计信息
call sp_stat_on_table_cols('SYSDBA','CF',90);--收集某张表上所有列的统计信息,并指定采样率,采样率范围0-100
call sp_tab_stat_init('SYSDBA','CF'); --收集指定的表的统计信息
call sp_index_stat_init('SYSDBA','I_CF_FDMCHXM'); --收集指定的索引的统计信息
call sp_index_stat_deinit('SYSDBA','I_CF_FDMCHXM'); --删除模式下指定的索引统计信息
call sp_col_stat_deinit('SYSDBA','CF','FDMCHXM'); --删除指定列的统计信息
call sp_tab_col_stat_deinit('SYSDBA','CF'); --删除指定表上所有的统计信息
call sp_tab_stat_deinit('SYSDBA','CF'); --删除指定表的统计信息