怎么分析oracle数据库卡,怎么正确地分析Oracle数据库模式,表及索引

如何正确地分析Oracle数据库模式,表及索引

在Oracle

数据库中,我们经常需要去手工分析表和索引,还有某个模式下所有的表和索引等等。oracle

提供了两种分析方法,分别是dbms_stats

包和analyze

命令。这些是我们在日常项目管理中的真实使用的方法,供参考。

在10g

中分析某一个用户下所有的对象,如user_miki

用户

sys.dbms_stats.gather_schema_stats(ownname => 'user_miki',estimate_percent => 30,method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO',cascade => true,options => 'GATHER');

这是我在项目中分析一个用户所有对象的分析方法,取样比例为30%

,分析所有索引字段,生成柱形图,并且也分析索引。

(miki西游 @mikixiyou 文档,原文链接: http://mikixiyou.iteye.com/blog/1553986

)

在10g

中分析某一个用户下某一个表及其索引,如user_miki

用户下info

表和它的索引

execute dbms_stats.gather_table_stats(ownname => 'user_miki',tabname => 'info',estimate_percent => 30,method_opt => 'for all indexed columns size auto');

这是我在项目中单独分析一个用户中一张表的分析方法,取样比例为30%

,分析所有索引字段,生成柱形图,并且也分析索引。

我们在google

时,还能看到使用analzye

命令分析表的方法。

analyze table

table_name compute statistics;

这个会将索引和表一起分析;

analyze table table_name compute statistics for table;

这个仅分析表;

analyze table table_name compute statistics for all columns;

这个仅分析表,和上面所有的字段,生成柱形图

analyze table table_name compute statistics for all indexed columns;

这个仅分析表,和上面所有建立索引的字段,生成柱形图

在9i

中,我们常常使用analyze

方法,在10g

以后,就改为dbms_stats.gather_schema_stats

类似的包来分析数据库对象了。

10g

的分析函数包比9i

的analyze

方法更灵活一些。

在10g

中,会有个系统的计划任务,每天10

点和周末两天都自动分析新的数据库对象和它认为统计信息已经过期的数据库对象。这个分析结果有时候不靠谱。

因此,我都采用10g

中提供的dbms_stats.gather_schema_stats

方法作为补充,设置一个计划任务定期去分析业务用户下所有数据库对象。

1 楼

mikixiyou

2012-06-07

dbms_stats中采样的比例是需要根据实际情况来设定的,这点忘记说。

如果分析时间太长,就放到周末,每周一次,采用比例可以适当下降,但不能影响到CBO优化器。

2 楼

wl296784423

2012-06-07

引用

[img][/img][url][/url][u][/u][i][/i][b][/b]sdfasd

3 楼

mikixiyou

2012-06-07

wl296784423 写道

引用

[img][/img][url][/url][u][/u][i][/i][b][/b]sdfasd

这是什么?

4 楼

wl296784423

2012-06-07

mikixiyou 写道

wl296784423 写道

引用

[img][/img][url][/url][u][/u][i][/i][b][/b]sdfasd

这是什么?

瞎打的哈哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值