如何快速有效的生成分析某个用户的所有表和索引语句
概述
analyze table 一般可以指定分析: 表,所有字段,所有索引字段,所有索引。 若不指定则全部都分析。
SQL> analyze table my_table compute statistics; SQL> analyze table my_table compute statistics for table for all indexes for all columns; SQL> analyze table my_table compute statistics for table for all indexes for all indexed columns;
其中:
SQL> analyze table my_table compute statistics; 等价于: SQL> analyze table my_table compute statistics for table for all indexes for all columns;
通过在analyze table命令中指定了for table或者不指定任何参数的时候,oracle数据库会给我们统计基于表的统计信息,如果我们想让CBO利用合理利用数据的统计信息的时候就可以用这个方式了。
生成分析某个用户的所有表
set pagesize 0 spool /home/oracle/analyze_tables.sql; select 'analyze table '||owner||'.'||table_name||' compute statistics;' from dba_tables where owner='XXXXX'; spool off
生成分析某个用户的所有索引
spool /home/oracle/analyze_indexes.sql; select 'analyze index '||owner||'.'||index_name||' compute statistics;' from dba_indexes where owner='XXXX'; spool off @/home/oracle/analyze_tables.sql @/home/oracle/analyze_indexes.sql
上面的语句生成了两个sql文件,分别分析NWPP用户全部的表和索引。如果需要按照百分比来分析表,可以修改一下脚本。通过上面的步骤,我们就完成了对表和索引的分析,
修改后就可以测试一下速度的改进啦。建议定期运行上面的语句,尤其是数据经过大量更新。当然,也可以通过dbms_stats来分析表和索引。
后面会分享更多DBA方面的内容,感兴趣的朋友可以关注下!!
相关推荐
世樹 2020-11-11
SCNUHB 2020-11-10
bleach00 2020-11-10
FellowYourHeart 2020-10-05
momode 2020-09-11
思君夜未眠 2020-09-04
jessieHJ 2020-08-19
行吟阁 2020-08-09
表格的现在还是较为常用的一种标签,但不是用来布局,常见处理、显示表格式数据。在HTML网页中,要想创建表格,就需要使用表格相关的标签。<table> <tr> <td>单元格内的文字</td> ...
gufudhn 2020-08-09
末点 2020-08-03
nimeijian 2020-07-30
好记忆也需烂 2020-07-28
zlsdmx 2020-07-05
tomson 2020-07-05
tianqi 2020-07-05
onlykg 2020-07-04