如何在oracle中测量查询的性能

Csh*_*hah 8 sql oracle sqlperformance

我是Oracle db的新手.我有2个查询返回相同的结果集.我想衡量每个人的表现并选择更好的表现.如何使用Oracle SQL开发人员执行此操作?我记得读过某些工具提供统计数据.有关如何阅读这些统计数据的任何指示?

更新:正如Rob Van所建议的,我使用tkprof实用程序来查找查询的性能.我能理解的一些参数(计数,行,经过时间,执行时间),但大多数我不能.任何人都可以帮助我了解这些参数的重要性吗?以下是结果.

Query 1:
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.01       0.01          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       49      0.26       0.32         45        494          0       23959
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       51      0.28       0.33         45        494          0       23959

Query2:
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       33      0.25       0.24          0        904          0       15992
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       35      0.25       0.24          0        904          0       15992
Run Code Online (Sandbox Code Playgroud)

我可以决定查询2优于查询1.任何关于什么磁盘,查询和当前参数的帮助意味着什么?

Jay*_*Jay 11

SQL编辑器上方有一个名为"Explain Plan"的按钮.此工具将告诉您每个路由的成本,以及该语句将如何使用索引和分区.请注意,您可能会收到错误,您的DBA需要为您的用户帐户开启一项功能,我相信它是"跟踪",但在这一点上可能是错误的.读取execute语句输出起初可能很有挑战性,但它是帮助编写好SQL的好工具.

  • 我强烈建议深入研究这些文档.做一些关于优化和Oracle调优的谷歌搜索.(Burleson有一些好东西 - 谷歌"Oracle Burleson",可以看到一个包含提示的咨询网站.)并查看这些内容,了解您对"解释计划"的看法.http://www.akadia.com/services/ora_interpreting_explain_plan.html如另一条评论中所述,仅检查速度并不意味着什么.环境可以改变一切 - 在一个环境中快速可以在另一个环境中变慢. (2认同)