是否可以将 SQL Server Management Studio 同时返回的行数限制为 100 台服务器?

ach*_*san 0 sql-server

我们正在管理超过 100 台服务器。当我们键入时,在每个中

select * from tbl_name
Run Code Online (Sandbox Code Playgroud)

与 sqlyog 中的 1000 行不同,所有行都会返回。

有没有一种简单的方法可以一次配置 100 台服务器以将返回的行数限制为 1000?

这样做的问题是,有时服务器会宕机,因为有人忘记top 1000了他的 sql 代码。

J.D*_*.D. 6

这样做的问题是,有时服务器会宕机,因为有人忘记top 1000了他的 sql 代码。

老实说,这是一个工艺问题,不是技术上可以解决的。重要的是要意识到编写高性能 SQL,并且只有那些应该具有开放访问权限的人才能这样做。

我这样说是因为即使总是使用也TOP 1000不能保护您免于服务器超载。TOP通常是查询计划中的后期运算符,但根据查询其余部分的编写方式以及表的架构和索引方式,仍然可以对大型表进行表扫描操作。TOP这实际上会导致大部分工作仍在服务器上进行,从而导致资源争用,一旦操作在执行结束时处理,只会丢弃大部分不需要的行。

是否可以将 SQL Server Management Studio 同时返回的行数限制为 100 台服务器?

也许SET ROWCOUNT可以帮助你:

返回指定行数后,导致 SQL Server 停止处理查询。

您可以在 SQL 查询中使用它,但您必须记住将其编写为与TOP. 否则,听起来 SSMS 可能有此设置Query execution > SQL Server > Set rowcount,但您需要记住在每个人的 SSMS 客户端上设置此设置(包括雇用新人时),并且它只会对那些 SSMS 客户端有帮助。例如,理论上,有人在测试新应用程序代码时仍然可以执行较差的 SQL。这就是为什么修复流程并让人们对他们编写的代码负责是最重要的。