2009-08-21 72 views

回答

2
  1. 运行explain plan for select ....以查看Oracle在查询中的操作。
  2. 在这里张贴您的查询,让我们可以查看它并帮助您。
  3. 查看Oracle Performance Tuning FAQ的一些技巧的交易,如果你愿意的话。
1

您可以通过V $ SQL或V $ SQLTEXT选择捕捉查询。 如果您不熟悉它,请查阅Oracle 文档中的'解释计划'。在性能调整 指南中应该有很多。

查看Quest Software的Toad for第三方工具,该工具也可帮助 。

K

0

不幸的是你的问题没有明确表达。其他答案已经解决了调整已知错误查询的问题,但另一种解释是您想要监视数据库以查找效果不佳的查询。

如果您没有Enterprise诊断软件包的企业版 - 而且我们中的许多人不这么做 - 您最好的选择是在预定的基础上运行statspack快照。这会为您提供很多有关系统的信息,包括哪些查询需要很长时间才能完成,哪些查询会消耗大量系统资源。你可以找到更多关于statspack here

0

如果你不想使用OEM,那么你可以查询和找出。

  1. 首先找到长时间运行的查询。如果它当前正在执行,您可以加入gv $ session来查找哪个会话很久以来正在运行。然后转到gv $ sql来查找SQL详细信息。您需要查看last_call_et列。如果SQL执行一段时间,可以使用dba_hist_snapshot,dba_hist_sqlstat和DBA_HIST_SQLTEXT表来查找有问题的SQL。

  2. 一旦你得到查询,你可以检查它从dba_hist_sql_plan表中选择了什么样的计划,如果这个SQL在过去执行,或者从gv $ sql_plan执行,如果它正在执行。

  3. 现在你分析执行计划,看看它是否使用正确的索引,加入等。 如果不调谐那些。

让我知道哪一步你有问题。我可以帮你回答这些问题。