sql-server - 限制服务器端返回的行数(强制限制)

标签 sql-server sql-server-2008 client-server

所以我们有一个软件,它的 SQL 语句写得很差,导致表中的每一行都被返回。表中有几百万行,因此这会导致严重的内存问题并在我们的客户端机器上崩溃。供应商正在为该问题创建补丁,但还需要几周时间。与此同时,我们试图找出一种限制服务器端返回结果数量的方法,作为临时修复。

我真的不希望有解决方案,我环顾四周,并没有真正看到这样做的任何方法,但是我希望有人可能有想法。

先感谢您。

编辑

我忘记了一条重要信息,我们无法访问源代码,因此我们无法在形成 SQL 语句的客户端更改此信息。没有真正的服务器端组件,客户端只是直接访问数据库。任何解决方案基本上都需要一个过程、触发器或某种 SQL-Server 2008 设置/命令。

最佳答案

一种可能的解决方案是

  • 重命名违规表
  • 创建一个 updatable view与原始表名
  • 做一个 SELECT TOP x * FROM OffendingTable作为您的 View 定义

  • 因此,客户端在选择数据时不知道更改。

    使用 query governor

    如果您不介意为违规查询返回任何数据,查询调控器允许您这样做。

    关于sql-server - 限制服务器端返回的行数(强制限制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874168/

    相关文章:

    sql - 在数据库中存储电子邮件 ID 列表的最佳数据类型是什么?

    Java客户端/服务器多线程文件传输问题

    c - "kill"如何成为Pthread?

    sql-server - 启用 SQL CLR 的目的和风险是什么?

    SQL Server 授予登录名(用户)db_owner 对数据库的访问权限

    Sql Server 2008 更新查询花费了太多时间

    android - 移动应用程序与服务器持续同步

    sql - 从字符串转换日期和/或时间时转换失败

    mysql - 通过 phpMyAdmin 将数据库转储导出到 MS SQL

    java - JPA 未加载延迟提取集合的问题