【发布时间】:2019-11-17 12:06:23
【问题描述】:
目前我正在开发一个与 JavaScript 框架前端和 SQL Server 数据库连接的大型 JAVA 应用程序。前端显示巨大的分页表格,包含 200 列各种类型和几百万行。此外,每一列都有自己的过滤器,就像在 Excel 的表格中一样。
用户需要快速读取、过滤和修改数据。我们的研究表明,瓶颈在于数据库查询——该表物理上位于 SQL Server 数据库中,并且没有索引。为过滤器的下拉列表获取行或可能值列表需要花费不可接受的时间。
我们曾考虑为每一列添加简单的默认索引,但它们会危及更新和添加行;不仅是用户,还有每天四次插入新的大量数据的 cron 作业。
我在这里而不是在 dba.stackexchange.com 上问,因为我怀疑克服这些困难的模式可能涉及 JAVA 应用程序,也许是 spring 中的某种缓存?
【问题讨论】:
-
这是动态搜索的一般挑战。有关解决方案和优化的详细讨论,请参阅 sommarskog.se/dyn-search-2008.html。
标签: java sql sql-server optimization query-optimization