小编caf*_*cha的帖子

通过SQLDeveloper与应用程序的Oracle性能

我试图了解我在Oracle中编写的查询的性能.这时我只能访问SQLDeveloper及其执行计时器.我可以运行SHOW PLAN但不能使用自动跟踪功能.

当我在SQLDeveloper中按"执行查询"(F9)时,我写的查询在大约1.8秒内运行.我知道这只是默认获取前五十行,但我能否至少确定1.8秒包含总执行时间加上将前50行传送到客户端的时间?

当我在存储过程中包装此查询(通过OUT REF CURSOR返回结果)并尝试从外部应用程序(SQL Server Reporting Services)使用它时,查询需要一分钟才能运行.当我在SQLDeveloper中按"运行脚本"(F5)时,我得到了类似的性能.这似乎不同之处在于,在这两种情况下,Oracle必须传回所有行而不是前50行.这使我相信客户端PC和Oracle实例之间存在一些网络连接问题.

我的查询只返回大约8000行,所以这个性能令人惊讶.为了尝试在上面证明我的关于延迟的理论,我在SQLDeveloper中运行了这样的代码:

declare
    tmp sys_refcursor;
begin
   my_proc(null, null, null, tmp);
end;
Run Code Online (Sandbox Code Playgroud)

......这大约在两秒钟内完成.同样,SQLDeveloper的执行时钟是否准确地指示了查询的执行时间?或者我错过了什么,有可能它实际上是我的查询需要调整?

任何人都可以根据我提供的有限工具向我提供任何见解吗?或者我应该尝试让DBA进行进一步的分析?

oracle performance oracle-sqldeveloper

4
推荐指数
1
解决办法
1351
查看次数

标签 统计

oracle ×1

oracle-sqldeveloper ×1

performance ×1