0

我正在尝试执行此查询:

SELECT * from vwLstDtaLines d1,vwLStDtafiles d2 where d1.DtaLinePaymentDate='1/1/2000'or d1.DtaLinePaymentDate='1/1/2012'  or d1.DtaLineUserCre='abc' or d1.DtaLineUserMatch='abc' or d2.DtaFileName='Sent'



Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

一次又一次地得到这个错误

4

2 回答 2

2

好吧,看看你的 SQL,在我看来你正在创建一个比你想要的更大的结果集。

SELECT * 
from vwLstDtaLines d1,vwLStDtafiles d2 
where d1.DtaLinePaymentDate='1/1/2000' or 
d1.DtaLinePaymentDate='1/1/2012'  or 
d1.DtaLineUserCre='abc' or 
d1.DtaLineUserMatch='abc' or 
d2.DtaFileName='Sent'  

此 SQL 语句在两个视图之间没有显式 JOIN。因此,您得到的结果集的大小可能类似于 d1r * d2r,其中 d1r 是 d1 中的行数,d2r 是 d2 中的行数。

我会开始在那里寻找。在 SQL Server 中运行以下查询以找出:

SELECT COUNT(*)
from vwLstDtaLines d1,vwLStDtafiles d2 
where d1.DtaLinePaymentDate='1/1/2000' or 
d1.DtaLinePaymentDate='1/1/2012'  or 
d1.DtaLineUserCre='abc' or 
d1.DtaLineUserMatch='abc' or 
d2.DtaFileName='Sent'  

如果行数是天文数字,则说明存在连接问题。

于 2012-10-02T18:04:26.467 回答
1

你可以增加你Connect Timeoutstring connection

注意:默认值为 15 秒

调整样本

<add name="ConnectionString" connectionString="Data Source=;Initial Catalog=;Persist Security Info=True;User ID=;Password=;Connect Timeout=200" providerName="System.Data.SqlClient"/>
</connectionStrings>

链接:http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

于 2012-10-02T17:21:31.847 回答