首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库性能

数据库性能
EN

Stack Overflow用户
提问于 2011-02-22 17:14:23
回答 3查看 139关注 0票数 1

在以下命令中,什么是最好的?

  1. exec dbms_stats.gather_table_stats
  2. dbms_stats.gather_schema_stats

哪一个提高了数据库的性能?

EN

回答 3

Stack Overflow用户

发布于 2011-02-22 17:18:56

它们都提高了数据库性能(或者更确切地说,它们都收集了将由oprtimiser使用的统计信息,并可能提高性能)。GATHER_SCHEMA_STATS收集架构中所有对象的统计信息。GATHER_TABLE_STATS只为一张桌子做这件事。您可以在文献资料中阅读有关它们的所有内容。

票数 5
EN

Stack Overflow用户

发布于 2011-02-22 17:24:46

两者都有。两样都没有。视情况而定。

你所说的“数据库性能”是什么意思?收集现有表和索引上的统计信息可能会有所帮助,如果这些统计数据已经过时。但是,它们并不能代替添加有用的索引,以供问题查询使用。

更新一个表上的状态可能是解决问题所需的全部内容。更新所有索引列的状态可能是正确的。或者,从性能的角度来看,这些可能不是您正在处理的问题。好的索引无助于编写糟糕的查询。

您需要弄清楚什么具体是慢的,然后才能弄清楚如何修复它。当然,对于整个数据库来说,没有一个油门踏板--不管我们都多么希望如此。

票数 3
EN

Stack Overflow用户

发布于 2011-02-22 17:32:50

甲骨文从10g开始就定期收集统计数据。你有没有注意到标准的聚会太少,或者在你的情况下不够详细?默认的estimate_percent < 100可以导致不良计划在10g。

  1. 看看你的应用程序,如果性能还好,你就完成了。如果不是..。
  2. 将注意力集中在应用程序所做的任务上,以减缓和分解主要贡献者所花费的时间。尽量优化主要贡献者。当性能可以接受时停止。

统计数据收集可能是您将要应用的优化之一,但我们无法事先知道。在增强Oracle的默认统计信息收集之前,您将查找不使用手动收集的统计信息选择的次优查询计划。

Cary Millsap的这篇优秀论文可能会对您有所帮助:详细资料/44-思考-明确-绩效

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

https://stackoverflow.com/questions/5081448

复制
相关文章

相似问题

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