如何使用Oracle正确地性能测试SELECT查询?
|
我想测试两个查询,以找出它们与仅查看执行计划有关的性能。我已经看到汤姆·凯特(Tom Kyte)一直在他的网站上这样做,以此来收集有关其理论的证据。
我认为性能测试存在很多陷阱,例如,当我第一次在SQL Developer中运行查询时,该查询可能会返回一些公数值。再次运行该完全相同的查询,即刻返回。服务器或客户端上必须有某种类型的缓存,我知道这很重要-但是我只对非缓存性能感兴趣。
性能测试的准则是什么?以及如何编写重复查询的性能测试?我是否只写一个匿名的块和循环?我如何获得时间信息,平均值,中位数,标准差?
没有找到相关结果
已邀请:
4 个回复
疼嘶桐
葛瞎说漓
)和the1ѭ实用程序,或者使用SQL * Plus和
-完成查询的所有工作,但是将输出丢弃,因为我通常不愿意观看一百万行滚动。 确切的机制通常包括使用以下内容的绑定SQL:
在结果中,我正在寻找期望的计划,这是各种比较值(假设存在的话),最重要的是,一致的I / O数量。这就是Oracle必须以一致的方式读取多少个块才能满足查询的要求。我找不到报价的原始来源,但我认为是方法R的Cary Milsap。 \“调整您的逻辑I / O,然后您的物理I / O将随之发生。”
烫珊
肺鬼耙扮群