1

我在一个项目中工作,从数据库中检索数据需要时间,因为记录数超过2000。我正在使用JPQL查询数据库并将其显示在JQGRID中。

任何人都可以建议或指导我如何从数据库中查询大量数据而花费更少的时间。

我很乐意提供所需的任何额外信息

如果已经有解决方案,请指导我....

谢谢 ....

4

3 回答 3

2

您需要做的第一件事是分析您的查询以查看您的时间都花在了哪里。45 似乎是阅读 2,000 条记录的疯狂时间。在一个简单的桌面上,我可以在不到 1 秒的时间内读取 10,000 多个简单对象。你的对象很复杂吗?

您可能希望首先启用日志记录,这可能是您花费时间获取关系(n+1 问题)。

如果您使用的是 EclipseLink,您可以启用 PerformanceMonitor,它可以为您提供时间花费的配置文件转储。使用 JProfiler 之类的 Java 分析器也很好。

另请参阅 http://java-persistence-performance.blogspot.com/2011/06/how-to-improve-jpa-performance-by-1825.html

于 2012-08-09T13:06:15.903 回答
1

在我们成功地告诉您如何解决您的问题之前,您需要缩小问题发生的范围。获取生成结果集的查询并使用 SSMS 直接针对数据库运行它,以查看执行纯查询需要多长时间。如果它执行得非常快,那么你的问题出在 UI 上。如果它是在实际的数据库服务器性能本身,那么您需要查看查询调优和优化以及潜在的索引。

关于后一个主题有很多文章,例如以下文章:

http://www.sql-server-performance.com/2004/query-tuning/

于 2012-08-09T13:18:06.990 回答
0

你应该使用分页。有关一些示例,请参阅jqGrid 文档(PHP 与 MySql,但将其适应 Sql Server 和 JPQL 应该不会太难)。

于 2012-08-09T09:45:22.843 回答