jav*_*thu 11 sql oracle-sqldeveloper
我是Oracle DB的初学者.我想知道查询的执行时间.此查询返回大约20,000条记录.当我看到SQL Developer时,它只显示50行,最多可以调整为500.并且使用F5高达5000.
我会通过在应用程序中进行更改来完成,但是由于它在生产中运行,因此无法进行应用程序重新部署.所以,我只能使用SQL Developer.我不知道如何获得执行查询所花费的秒数?任何想法都会对我有所帮助.谢谢.
此致,JE
小智 14
如果向下滚动超过最初返回的50行,则会获取更多内容.当我想要所有这些时,我只需点击50中的第一个,然后按下CtrlEnd一直滚动到底部.
这将更新所使用时间的显示(在结果上方会显示"All Rows Fetched:20000 in 3.606 seconds"),为您提供完整查询的准确时间.
如果您的语句是已部署的应用程序的一部分,并且您有权访问该视图V$SQLAREA,则可以检查EXECUTIONS和的数量CPU_TIME。您可以使用以下方式搜索该声明SQL_TEXT:
SELECT CPU_TIME, EXECUTIONS
FROM V$SQLAREA
WHERE UPPER (SQL_TEXT) LIKE 'SELECT ... FROM ... %';
Run Code Online (Sandbox Code Playgroud)
这是确定实际运行时间的最精确方法。V$SESSION_LONGOPS您可能也会对这里的景色感兴趣。
如果您无权访问这些视图,您还可以使用游标循环来运行所有记录,例如
CREATE OR REPLACE PROCEDURE speedtest AS
count number;
cursor c_cursor is
SELECT ...;
BEGIN
-- fetch start time stamp here
count := 0;
FOR rec in c_cursor
LOOP
count := count +1;
END LOOP;
-- fetch end time stamp here
END;
Run Code Online (Sandbox Code Playgroud)
根据体系结构,这可能或多或少准确,因为数据可能需要传输到运行 SQL 的系统。