如何使用数据库查询提高应用程序的性能?

时间:2013-02-18 12:16:29

标签: java mysql database performance

我是一名数据库人,我有一个基于Java的Web应用程序。

它运行缓慢,开发人员报告我,由于DB只是它很慢。他们要求进行查询调优。

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

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

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

1 个答案:

答案 0 :(得分:3)

以下是我如何做到这一点:

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

基本上,尝试与开发人员合作,而不是反对他们。向他们解释您如何调整查询并让他们向您展示他们如何调整应用程序。这种方法一直对我有用。