SQL插入和更新仅在一天的特定时间发生的高消耗时间

时间:2018-02-08 03:59:36

标签: sql database oracle oracle11g sql-execution-plan

每天晚上7点左右,我注意到我的应用程序运行速度比平常慢。 在检查AWR报告时,我注意到2个经常使用的SQL语句具有较长的经过时间(每次执行大约1秒)。

我比较了当天早些时候早上9点的AWR报告,发现每次执行时相同的SQL语句只花了0.01秒。

这些陈述的执行次数大致相同。可以肯定地说,我的应用程序在上午9点比下午7点有更高的负载。

  • 这两个声明(1个更新和1个插入)的目标都是相同的 表。
  • 这张桌子很大。
  • 每个语句都有固定的SQL ID,所以我希望如此 每个语句的执行计划与中的相同 早上和晚上。
  • 此表经常在一整天内插入和更新。根据正常和异常小时的AWR报告,大约有10万个插入和60 000个更新。

有人能指出我如何解决这个问题吗?

我不是DBA。

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

  1. AWR报告应该能够回答加载问题(上午9点对晚上7点)。
  2. 具有相同的SQL ID只意味着SQL语句的文本是相同的;不是执行计划。您需要查看计划哈希值(PHV)以查看执行计划是否相同。如果它们不同,那么您需要自己查看实际的执行计划并理解为什么它们是不同的。
  3. 什么是“相当巨大”?是数字。