我在一个项目中从数据库中检索数据需要时间,因为记录数大于。 正在使用JPQL来查询数据库并将其显示在JQGRID中。在sqlserver中查询海量数据?
任何人都可以建议或指导我如何从数据库查询大量的数据,这需要更少的时间。
我很乐意提供任何形式的需要额外的信息
还请指导我,如果已经有一个解决方案....
谢谢....
我在一个项目中从数据库中检索数据需要时间,因为记录数大于。 正在使用JPQL来查询数据库并将其显示在JQGRID中。在sqlserver中查询海量数据?
任何人都可以建议或指导我如何从数据库查询大量的数据,这需要更少的时间。
我很乐意提供任何形式的需要额外的信息
还请指导我,如果已经有一个解决方案....
谢谢....
你需要做的第一件事是分析你的查询,看看你的时间花在哪里。 45看起来像是读了2000条记录的疯狂时间。在简单的桌面上,我可以在不到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
中只使用我查询中的连接来获取这些记录 – Esh 2012-08-09 13:49:40
你应该使用分页。有关示例,请参见jqGrid documentation(带MySql的PHP,但不应太难以适应Sql Server和JPQL)。
需要多少时间。一切正常。但我想减少获得数据的时间量..现在它采取45 appro.sec获取2300+记录 – Esh 2012-08-09 09:48:11
但是你显示每页2300条记录?你应该只显示几条记录(比如说20),然后从数据库 – 2012-08-09 10:25:09
,才能成功地告诉你如何解决你的问题,你需要来缩小问题发生。把你的查询生成你的结果集,并使用SSMS直接对数据库运行它,查看纯查询执行多长时间。如果它执行得非常快,那么你的问题在UI中。如果它本身在实际的数据库服务器性能中,那么您需要查看查询调优和优化以及潜在的索引。
有对后者的主题提供了许多文章,如下面的一个:
2000记录并不大。 20亿条记录是巨大的。 – Cosmin 2012-08-09 09:51:09
是的,我明白了。但截至目前在测试环境下它的2000条记录。但将来它可能会上升到你的数量。如果查询2000条记录需要时间,那么请考虑使用分页检索20亿条记录 – Esh 2012-08-09 09:53:10