2013-02-18 66 views
-3

我是一个数据库人员,我有一个基于Java的Web应用程序。如何提高使用数据库查询的应用程序的性能?

它运行缓慢,开发人员告诉我,由于DB只有缓慢。他们要求进行查询优化。

我试图调整查询,但我无法获得太多的性能。

当我尝试在浏览器中运行查询时,它工作正常,但在应用程序中很慢。

请给我一些关于如何解决这个问题的建议。

+2

你应该考虑询问具体的问题,并提供一些细节来了解问题。广义工作特定问题不会在SO上提供回复。 – Minesh 2013-02-18 12:24:28

+0

我不知道他们只是责怪查询的问题。 – Cynosure 2013-02-18 12:37:25

+2

*“请给我建议”* - 描述应用程序,或让开发人员这样做。 – 2013-02-18 12:42:23

回答

3

这里是我会怎么处理这:

  • 让开发商选择最运行速度慢一个使用案例,让他们描述了你。他们还应该提及作为该用例的一部分运行的所有查询,包括参数。
  • 当您从SQL工具直接对数据库运行它们时,请向他们显示查询结果,而不是从应用程序运行它们。确保您使用相同的数据库实例和相同数量的数据。
  • 如果时间差异很大,请开发人员使用Java分析器(例如YourKit或visualVM)来确定在哪里花费时间。这应该很容易看到瓶颈。
  • 当应用程序运行缓慢时,请注意上下文。它是针对单个用户还是多个用户执行相同的用例?
  • 大多数数据库也会写日志文件,概述查询性能并突出显示有问题的查询。 Oracle的AWR文件就是一个例子,也许MySQL有类似的东西。

基本上,尝试与开发人员合作,而不是针对他们。向他们解释你如何调整查询,并让他们告诉你他们如何尝试调整应用程序。这种方法一直为我工作。

+0

谢谢你的简要解释。 – Cynosure 2013-02-18 13:27:52