首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >全表扫描而不是索引范围扫描导致性能问题

全表扫描而不是索引范围扫描导致性能问题
EN

Stack Overflow用户
提问于 2011-04-01 15:23:45
回答 1查看 579关注 0票数 0

我们有一个如下所示的merge语句,而不是索引范围扫描,它正在进行全表扫描。它成功地运行到最后,直到表被修改后,添加了3-4个新列,然后开始执行全表扫描。

我们有7个具有相同更改的类似表,即增加了3-4列,但当我们重新构建索引时,它解决了问题,除了一个表。

有没有人能解释一下?

-Nagu

EN

回答 1

Stack Overflow用户

发布于 2011-05-27 22:01:26

尝试收集有关表的统计信息。最好的方法是使用DBMS_STATS包中的例程。最简单的做法是简单地调用DBMS_STATS.GATHER_DATABASE_STATS,不指定参数(即对所有参数使用默认值)。然而,这需要一段时间。要收集单个表的统计信息,可以使用DBMS_STATS.GATHER_TABLE_STATS。您需要给'ownname‘和'tabname’参数赋值;因此,如果您感兴趣的表名为"MY_SCHEMA.MY_TABLE“,则对DBMS_STATS.GATHER_TABLE_STATS的调用将如下所示

代码语言:javascript
运行
复制
DBMS_STATS.GATHER_TABLE_STATS('MY_SCHEMA', 'MY_TABLE');

这个例程还有其他参数,但缺省值可以很好地工作。

如果数据库仍然坚持对您感兴趣的表进行全表扫描,这可能意味着您的表上没有索引,数据库认为该索引可能对满足查询有用。如果您可以发布查询的代码,并告诉我们您在表上有哪些索引存在问题,我们可能会提出其他建议。

分享和享受。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5510321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档