sql - Web 用户搜索过多数据

标签 sql sql-server database tsql stored-procedures

我们目前在我们的网站上有一个搜索功能,允许用户输入一个日期范围。该页面调用查询日期范围并返回适当数据的存储过程。但是,我们的很多表都包含 30m 到 60m 行。如果用户输入一年的日期范围(或某个更大的范围),数据库将逐渐停止。

有没有不涉及对搜索设置时间限制的解决方案?分页已经实现,只显示前 500 行,但数据库仍然受到重创。我们不能对返回的结果数量施加硬性限制,因为用户“可能”需要所有结果。

最佳答案

如果用户输入的日期范围太大,请让您的应用程序以较小的日期范围步长进行搜索。可能使用慢启动方法:第一次搜索仅限于一个月范围内,如果搜索不到 500 行,则搜索前两个月,直到有 500 行。

您将希望从最近的日期开始降序,从最早的日期开始升序。

关于sql - Web 用户搜索过多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546771/

相关文章:

sql - 在存储过程中使用聚合函数一次而不是多次

php - 按行估价计算答案排序结果

.net - 使用 Entity Framework 将 SQL Server 数据库导出到 Access

sql - 需要为 Date 逻辑编写查询

MySQL查询没有特定单词的字段

sql-server - SQL数据库表批量更新的陷阱,在vb.net中使用临时表和批量复制

sql - oracle中将不同列的数据合并到特定列中

mysql - 在 mariaDB 中完全连接 2 个表

sql-server - 是否可以使用 EXEC 在其他数据库中创建 View ?

PHP 限制表中的行数