如何测试调优的oracle sql以及如何清除明确的系统/硬件缓冲区?

时间:2016-05-13 05:39:00

标签: oracle buffer hp-ux

我想知道在调整之前和调整之后测试正确的sqls的方法。 但是一旦我执行了原始的sql,我得到的结果对于调优的sql来说太快了。

我在下面找到了......

How to clear all cached items in Oracle

我做了刷新数据缓冲区缓存和共享池,但它仍然没有工作。 我想这个问题的答案与我想要了解的内容有关: 请记住,操作系统和硬件也会进行缓存,这会导致结果出现偏差。

Oracle的版本是11g,Server是HP-UX 11.31。

如果服务器是Linux,我可以尝试使用' / proc / sys / vm / drop_caches'来清除缓冲区。(我不确定它是否可行)

我在很长一段时间内都在寻找这个问题。有人有这种问题吗?

感谢

1 个答案:

答案 0 :(得分:0)

如果您的查询是在文件系统中缓存结果,您的描述会建议,那么查询可能不是整体的“重击”。但是如果您是在隔离测试,而对数据库没有太多活动,那么当SQL在生产环境中运行时,性能可能会受到影响。

您可以采取以下措施来确定哪个版本的两个查询更好。事实上,整本书都是关于这个主题的。但总结一下:

在开始之前,请确保表和索引的统计信息是最新的。

  • 查看SQL在宏观方案中执行的频率。如果它每天运行一次或两次,并且需要2秒钟才能运行,请不要费心去调整。
  • 在两者上执行explain plan并查看估算的费用和步骤数。
  • 启用优化程序步骤和执行统计信息的跟踪,然后进行比较。