客户端查询大量数据是导致sql卡死,Timeout 时间已到,在操作完成之前超时时间已过或服务器未响应。必须重启了MSSQLSERVER的服务才能继续对sql 数据进行操作要怎么弄
基本上是因为死锁了
需要提高技术水平,优化数据库设计和软件设计。
简单一点的方法是加CPU,加内存,升级硬盘....
你重启sqlserver的服务?这个不至于吧,大不了再开个client连上去kill掉之前的查询就完了。
死锁是不可能的,死锁不会导致timeout
从很大的表中查询很大的数据这个除了限制查询结果集大小外没太好办法(前提索引正确)
谢谢,目前我也没找到问题的原因。但是sqlServer的内存一直占用服务器很高的内存
@键盘上落下的泪: sqlserver对内存占用很高这个很正常,当然你也可以强制它使用最高多少内存。你之前所说的sql服务需要重启是不是笔误?你指的只是sql的查询客户端吧。
@Daniel Cai:
不是,就是当这个360的球球达到90以后我只有重启MSSQLSERVER客户端才能继续操作数据库了。我也是一个新手也不是很懂。但是目前我只能通过这种办法来恢复
@键盘上落下的泪: 你是否查询的数据可能的返回数量太大了?这样客户端需要很长时间来fetch的。如果只是一般看看数据的话都是查那么一两条,带个top n或者count下而已
我觉得也是死锁了,请问下这个怎么解决的,
死锁是不会导致timeout的,死锁会被数据库直接检查出来后选择一个代价小的牺牲掉。
你该检查的是你查询的语句是否能有效的使用索引,这个才是关键。