我在SQL视图上有RO访问权限.以下查询超时.怎么避免这个?
select
count(distinct Status)
from
[MyTable] with (NOLOCK)
where
MemberType=6
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是:
消息121,级别20,状态0,行0
从服务器接收结果时发生传输级错误(提供程序:TCP提供程序,错误:0 - 信号量超时期限已过期.)
cod*_*ike 25
你的查询可能没问题."信号量超时期限已过期"是网络错误,而不是SQL Server超时.
例如,请参阅http://support.microsoft.com/kb/325487
您和SQL Server之间显然存在某种网络问题.
编辑:但是,显然查询运行15-20分钟后才发出网络错误.这是一个很长的时间,因此网络错误可能与长执行时间有关.优化底层视图可能会有所帮助.
如果您的示例中的[MyTable]是View,您是否可以发布视图定义以便我们可以优化它?
虽然显然存在某种网络不稳定或某种干扰您的连接的事情(15分钟可能会越过NAT边界或网络中的某些东西正在丢弃会话),我认为你想要这样一个简单的?)查询在任何预期的时间内(如1s)返回.
我会与您的DBA交谈并获取在MemberType,Status上的基础表上创建的索引.如果没有单个基础表或者这些更复杂并且由视图或UDF创建,并且您正在运行SQL Server 2005或更高版本,请让他考虑索引视图(基本上以索引方式实现视图).
| 归档时间: |
|
| 查看次数: |
92614 次 |
| 最近记录: |