如何对表进行分析?(是分析索引么?)

能给语句么?
还有要什么参数么?

如果该表正在使用,b/s结构,此时可能好多客户端在操作,能直接分析表么?

分析有负面影响么?怎么分析最优?
---------------------------------------------------------------

查一下Oracle联机文档中的Analyze table的语法吧!
---------------------------------------------------------------

如果该表正在使用,b/s结构,此时可能好多客户端在操作,能直接分析表么?

分析有负面影响么?怎么分析最优?

此二问题值得关注!

---------------------------------------------------------------

analyze会增加磁盘空间

analyze table tablename estimate statistics sample 10 percent;
---------------------------------------------------------------

结果从dba_tables查
---------------------------------------------------------------

analyze 的使用
不如使用 dbms_stat包(这是因为在收集统计信息的时候有差异,具体的细说起来比较多,优化效果的选择也有差异),用户登陆sqlplus
exec dbms_stats.create_stat_table(user,user ¦ ¦'_stat_table');

搜集统计信息
exec DBMS_STATS.GATHER_schema_STATS(ownname => user,method_opt => 'for all indexed columns size 1');

简单的可以这么使用
删除统计数据

如果表很大,分析慢,estimate_percent,百分之20为例
exec DBMS_STATS.GATHER_schema_STATS(ownname => user,method_opt => 'for all indexed columns size 1',estimate_percent => 20);
exec DBMS_STATS.DELETE_schema_STATS(ownname => user);

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus