我正在评估默认的SQL Server 2008 R2配置设置。 我被要求在生产服务器上运行以下脚本:
sp_configure 'remote query timeout', 0
sp_configure 'max server memory (MB)', 28000
sp_configure 'remote login timeout', 300
go
reconfigure with override
go
在继续讨论之前,我一直在努力衡量每一行SQL代码的优缺点。
编辑于2016年5月17日14:19 IST :
我提到的微软链接如下:
https://msdn.microsoft.com/en-us/library/ms178067.aspx
https://msdn.microsoft.com/en-IN/library/ms175136.aspx
2016年5月23日11:15 IST编辑 :
我根据这里的反馈设置了“MAX SERVER MEMORY”,并从我的结果进一步调查。我向客户提供了推论。 我还根据此处提供的观点和答案提供了对其他2个查询的推论。 感谢大家的帮助。我会在客户提供意见后更新此问题。
答案 0 :(得分:0)
我一般会说这些陈述非常愚蠢。是的,认真的。
逐行:
sp_configure'远程查询超时',0
使查询在中止前无限时间运行。虽然我接受了长时间运行的查询,但这些查询很少(IIRC 30秒的默认超时处理99.99%的查询),应用程序员可以在极少数情况下为此特定查询设置适当的超时。< / p>
sp_configure&#39;最大服务器内存(MB)&#39;,28000
将最大服务器内存设置为28gb。嗯,这是无稽之谈 - DBA应该在安装时将其设置为合理的值,因此除非dba无能,否则不需要它。大约28gb是否有意义我无法评论。
sp_configure&#39;远程登录超时&#39;,300
远程登录超时300秒。默认为30秒已经足够了。考虑到服务器运行良好且不会在不到几秒的时间内处理登录的情况,我遇到了严重的问题。
我看到的唯一情况是整个批处理有意义的是服务器因过载而死亡 - 这是基于某些残酷无能的最重要的事情。管理员(64gb RAM机器配置为仅使用2gb用于SQL Server)或大多数情况下是程序员(没有索引,荒谬的坏SQL使服务器死于过载)。在那里,经常看到这种方式。
否则超时真的没什么意义。
答案 1 :(得分:0)
&#34;远程查询超时&#34;设置远程查询超时前的时间。 &#34;远程登录超时&#34;设置登录尝试超时前的时间。
此处设置的值在某些条件下可能有意义(例如,慢速,高延迟网络)。
&#34;最大服务器内存&#34;是不同的。这是一个非常有用的设置,应该几乎始终设置它以避免可能的性能问题。什么值,它取决于整个服务器上的内存量以及运行在其上的其他应用程序/服务。如果它是具有32 GB内存的专用服务器,则该值听起来是正确的。
这些都不能在测试环境中进行真正的测试,我担心,除非你有1:1的prod环境复制品。
答案 2 :(得分:0)
以下查询会将查询超时设置为0,即无超时
sp_configure 'remote query timeout', 0
此值对数据库引擎收到的查询没有影响。 要禁用超时,请将值设置为0.查询将等待直到 它被取消了。
sp_configure 'max server memory (MB)', 28000
SQL Server管理的内存量(以兆字节为单位) 内存管理器,用于SQL实例使用的SQL Server进程 服务器
sp_configure 'remote login timeout', 300
如果您有远程连接到服务器的应用程序,我们可以使用上述查询设置超时。
注意:
您还可以通过SSMS(管理工作室)设置服务器属性,您可以在其中设置最大值和最小值,而不是使用帖子中显示的代码。
您可以很好地尝试这些查询,但您想要选择的设置取决于您正在使用的硬件和应用程序类型。