oracle 根据某个字段去重_如何快速有效的生成分析某个用户的所有表和索引语句...

概述

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 0spool /home/oracle/analyze_tables.sql;select 'analyze table '||owner||'.'||table_name||' compute statistics;' from dba_tables where owner='XXXXX';spool off
a30ebf3b0e4fa074d993fdb3366ddf1c.png

生成分析某个用户的所有索引

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
18cdb792472c5dfb17e69032c4a21889.png
03f4d92ed8bb406280084c6e0e26043e.png

00c07472a93c5d0c473a05a177fa36b9.gif

上面的语句生成了两个sql文件,分别分析NWPP用户全部的表和索引。如果需要按照百分比来分析表,可以修改一下脚本。通过上面的步骤,我们就完成了对表和索引的分析,

修改后就可以测试一下速度的改进啦。建议定期运行上面的语句,尤其是数据经过大量更新。当然,也可以通过dbms_stats来分析表和索引。

后面会分享更多DBA方面的内容,感兴趣的朋友可以关注下!!

3e08b017561e4282bed7e6e96fb15a05.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值