在Windows XP上对Oracle 10G进行基准测试

时间:2009-11-23 15:09:53

标签: oracle oracle10g benchmarking

我不是DBA。但是,我使用完全位于Oracle数据库中的Web应用程序(是的,它使用PL / SQL过程将HTML写入clobs,然后在浏览器中呕吐clob。不,这不是我的想法。是的,我等你哭的时候等。)。

我们遇到了一些性能问题,我被分配了一些瓶颈并将其删除。如何衡量Oracle性能并发现这些瓶颈?我们无益的系统管理员说网格控制没有帮助,他不得不依靠“他的经验”和查询数据字典和“v $”视图。

我想针对我的本地Oracle实例运行一些测试,看看我是否可以复制他发现的问题,这样我就可以确保我的更改实际上正在改进。有人可以指点我学习如何做到这一点吗?

4 个答案:

答案 0 :(得分:3)

关于这个主题,有很多书都写得不足为奇。

你需要做的就是分而治之。

首先要问自己一些标准的常识性问题。性能是否会慢慢降低,或者最近性能大幅下降就是一个例子。

在显而易见的良好起点之后,您将缩小在哪里度过的时间 - top queries对您来说是个不错的开始。这将为您提供长时间运行的特定查询。

如果你明确知道前端的哪些屏幕很慢并且你知道存储过程是什么,我会进行一些记录。简单的DBMS_OUTPUT.put_lines,在关键点有一些挂钟信息。然后我将在SQLNavigator中以交互方式运行它们,以查看存储过程的哪个部分变慢。

一旦开始缩小范围,您可以查看评估特定查询进展缓慢的原因。 EXPLAIN_PLAN将是您最好的朋友。

答案 1 :(得分:2)

使用网格控件分析数据库性能可能会令人难以置信,我建议从简化的AWR报告开始 - 您可以在db主机上的$ ORACLE_HOME / rdbms / admin中找到生成它们的脚本。此报告将按各种类别(例如,CPU时间,磁盘I / O,已用时间)对数据库中显示的SQL进行排名,并让您了解数据库端瓶颈的位置。

AWR报告的一个优点是它是一个SQL * Plus脚本,可以从任何客户端运行 - 它会将HTML或文本文件假脱机到您的客户端。

答案 2 :(得分:1)

编辑:

我认为有一个名为DBMS_PROFILER的软件包可以让你做你想做的事。我发现我的IDE会分析PL / SQL代码,因为我猜许多其他IDE会这样做。他们可能会使用这个包。

http://www.dba-oracle.com/t_dbms_profiler.htm

http://www.databasejournal.com/features/oracle/article.php/2197231/Oracles-DBMSPROFILER-PLSQL-Performance-Tuning.htm


编辑2:

我刚刚在PL / SQL Developer中尝试过Profiler。它会在运行时创建一个关于代码片段总时间和出现次数的报告,并将代码位置作为单元名称和行号。


原:

就疯狂的PL / SQL生成页面而言,我和你在同一条船上。

我在一个小型办公室工作,没有程序员特别精通Oracle的高级功能。我们没有任何既定的衡量和改善绩效的方法。但我猜的最好的办法是尝试不同的PL / SQL IDE。

我使用Allaround Automations的PL / SQL Developer。它有一个测试功能,可以让你调试你的PL / SQL代码,并且可能有一些我尚未使用的基准测试功能。

希望你能找到更好的答案。我也想知道。 :)

答案 3 :(得分:0)

  

“我在一个Web应用程序上工作   完全生活在Oracle数据库中   (是的,它使用PL / SQL程序来实现   写HTML到clobs然后呕吐   浏览器中的clob“

Apex产品吗?这是Web应用程序环境现在作为Oracle数据库的标准部分包含在内(虽然从技术上讲它不会吐出CLOB)。

如果是这样,产品/环境中已经内置了大量的仪器(例如,它保持了两周的活动历史)。