码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-30 18:51:50      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:sqlserver   indexeskeys   timeout expired   sqlclient.sqlexcepti   

问题:

最近程序总会抛出如下异常:

An exception of type‘System.Data.SqlClient.SqlException‘ occurred and was caught.

----------------------------------------------------------------------------------

Type :System.Data.SqlClient.SqlException, System.Data, Version=4.0.0.0,Culture=neutral, PublicKeyToken=b77a5c561934e089

 Message : Timeoutexpired.  The timeout period elapsedprior to completion of the operation or the server is not responding.

Source : .Net SqlClient Data Provider......

......Database.ExecuteReader(DbCommandcommand)......

读取数据超时。

然后就去看了下DataBase里对应的tables,发现table的结构简单,但是数据量很大,有几十万上百万条。再看一下有没有建Indexes/Keys,发现没有,恍然大悟。


解决方法:

根据表的结构,建立了Indexes/Keys下的 Unique key,类似如下:

ALTER TABLE [dbo].[ZData]
 add  CONSTRAINT [IX_ZData] UNIQUE NONCLUSTERED 
(
	[Pid] ASC,
	[EntryID] ASC,
	[Date] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, 
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
测试,发现速度快很多,减小了timeout的风险。





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

标签:sqlserver   indexeskeys   timeout expired   sqlclient.sqlexcepti   

原文地址:http://blog.csdn.net/bubu05690523/article/details/44752743

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!