执行完表的分析和索引的分析后怎么系统反而慢了?

[复制链接]
查看11 | 回复9 | 2008-1-2 17:35:53 | 显示全部楼层 |阅读模式
各位大虾,由于数据库性能问题,我在昨晚进行了表和索引的分析,部分脚本如下:

analyze table A
compute statistics;

analyze table
AA
compute statistics;

analyze table
AAAA
compute statistics;

analyze index
AD_ASSET_CARD_INAY
compute statistics;

analyze index
AD_ASSET_CARD_INDP
compute statistics;

analyze index
AD_ASSET_CARD_INUS
compute statistics;
但是怎么我做完分析后,今天上午系统的运行速度反而更加慢了呢?几乎到了无法使用的程度??请各位大虾帮忙!
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
先删除统计信息吧
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
很有可能是一些表分析了,
另外一些表没有分析,
造成运行SQL时,ORACLE自已分析引起的.
建议对所有关联的表进行分析
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
最初由 yyhhan2003 发布
[B]各位大虾,由于数据库性能问题,我在昨晚进行了表和索引的分析,部分脚本如下:

analyze table A
compute statistics;

analyze table
AA
compute statistics;

analyze table
AAAA
compute statistics;

analyze index
AD_ASSET_CARD_INAY
compute statistics;

analyze index
AD_ASSET_CARD_INDP
compute statistics;

analyze index
AD_ASSET_CARD_INUS
compute statistics;
但是怎么我做完分析后,今天上午系统的运行速度反而更加慢了呢?几乎到了无法使用的程度??请各位大虾帮忙! [/B]

我们收集统计信息的目的是使执行计划尽可能的更优。应该具体问题具体分析了。
先把统计信息删除掉看性能是否恢复。
analyze table [table] delete statistics;
analyze index delete statistics;
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
版主,请问把统计信息删除了是否意味着我做的分析就没用呢?
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
执行完表的分析和索引的分析后,部分SQL语句的执行计划有可能就变了,把执行计划贴出来看看吧
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
Oracle有時也"不知所謂"
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
最初由 yyhhan2003 发布
[B]版主,请问把统计信息删除了是否意味着我做的分析就没用呢? [/B]

没错,收集统计前后要注意一下执行计划的,同时收集完要做一测试看相关的语句的效率是否有提高。
你可以把统计信息备一下,然后再删除。
--建一个stat表
SQL>execute dbms_stats.CREATE_STAT_TABLE('OWNERNAME','TABNAME');
--导出统计
SQL>execute dbms_statsEXPORT_TABLE_STATS('OWNERNAME','TABNAME');
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
如果还不行,用dbms_stats把整个schema分析一下再看看。
每次分析之前最好按 hrb_qiuyb 说的备份
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
最简单的办法就是查看一下,分析前后的执行计划是否变化了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行