我是 Oracle 数据库新手。我有两个返回相同结果集的查询。我想衡量他们每个人的表现并选择更好的一个。如何使用 Oracle SQL Developer 来做到这一点?我记得读过某些工具提供统计数据。有关如何阅读这些统计数据的任何指示吗?
更新:按照 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
我可以确定查询 2 比查询 1 更好。有关磁盘、查询和当前参数含义的任何帮助吗?
SQL 编辑器上方有一个名为“解释计划”的按钮。该工具将告诉您每条路由的成本,以及语句将如何使用索引和分区。请注意,您可能会收到错误,您的 DBA 将需要为您的用户帐户打开一项功能,我相信它是“跟踪”,但在这一点上可能是错误的。读取执行语句输出一开始可能会很困难,但它是帮助编写良好 SQL 的好工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)