sql 2000 超时已过期?怎么办!? 呼唤高手!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 2000 超时已过期?怎么办!? 呼唤高手!相关的知识,希望对你有一定的参考价值。

我更新数据时.由于量很大,于是我分段更新,运行了一阵,都没问题.
可是现在更新不了了.
update ....set ....where id(范围)
我以为是数据量太大超时的.可是我令 id=1 同样是出现"超时已过期"
不知道怎么搞了!帮帮我!
估计可能是这个原因:
  数据库设置时,[文件增长]按百分比来增长,当数据库文件很大时(1G以上),新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。
怎么设置呢?

参考技术A 你的ID是主键吗?有索引吗?如果没有,就是表扫描的问题了。
sqlserver带有分析脚本的功能,你试试有没有tablescan,这个就是表扫描,很占速度。
参考技术B 修改数据库文件为自动增长。本回答被提问者采纳 参考技术C 是不是日志文件太大了

ExecuteQueryin linq:超时已过期。操作完成前超时时间已过或服务器无响应

【中文标题】ExecuteQueryin linq:超时已过期。操作完成前超时时间已过或服务器无响应【英文标题】:ExecuteQueryin linq :Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding 【发布时间】:2012-05-01 23:02:17 【问题描述】:

执行 datacontext.ExecuteCommand(objectname) 时出错

错误:

System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。该语句已终止。 示例代码:

Datacontext context = new Datacontext();
tablename tb=new tablename();

string DeleteQuery="delete from table A";
context.ExecuteCommand<tb>(DeleteQuery);
DeleteQuery=string.empty;


string InsertQuery="Insert into table B(a,b,c,d)Select table from C Union All Select Table from D";
context.ExecuteCommand<tb>(InsertQuery);
InsertQuery=string.empty;

在执行插入查询时,我收到错误 System.Data.SqlClient.SqlException: Timeout expired。在操作完成之前超时时间已过或服务器没有响应。该语句已终止。

错误页面如下

“/Portal”应用程序中的服务器错误。

超时。在操作完成之前超时时间已过或服务器没有响应。 该语句已终止。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。 声明已终止。

来源错误:

第 914 行:其中 ft.IsDeleted = 0 和 ym.IsDeleted = 0 和 ym.IsApproved = 1"); 第 915 行: 第 916 行:dc.ExecuteQuery(InsertCommand); 第 917 行:InsertCommand = string.Empty; 第 918 行:

源文件:d:\Website\IDCCircle_Staging\Portal\Default.aspx.cs 行:916

堆栈跟踪:

[SqlException (0x80131904): 超时。在操作完成之前超时时间已过或服务器没有响应。 该语句已终止。] System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔型 breakConnection)+2062078 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection) +5050204 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)+2275 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33 System.Data.SqlClient.SqlDataReader.get_MetaData() +86 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,字符串 resetOptionsString)+311 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔返回流,布尔异步)+987 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String 方法) +32 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)+141 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior 行为)+12 System.Data.Common.DbCommand.ExecuteReader() +12 System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询,QueryInfo queryInfo,IObjectReaderFactory 工厂,Object[] parentArgs,Object[] userArgs,ICompiledSubQuery[] subQueries,Object lastResult)+1266 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询,QueryInfo[] queryInfos,IObjectReaderFactory 工厂,Object[] userArguments,ICompiledSubQuery[] subQueries)+113 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式查询)+344 System.Data.Linq.DataContext.ExecuteMethodCall(Object instance, MethodInfo methodInfo, Object[] parameters) +83 System.Data.Linq.DataContext.ExecuteQuery(字符串查询,Object[] 参数)+265 _Default.NHPgridbind() 在 d:\Website\IDCCircle_Staging\Portal\Default.aspx.cs:916 _Default.Page_Load(Object sender, EventArgs e) in d:\Website\IDCCircle_Staging\Portal\Default.aspx.cs:97 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o,对象 t,EventArgs e)+14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者,EventArgs e)+35 System.Web.UI.Control.OnLoad(EventArgs e) +91 System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207


版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.272

【问题讨论】:

【参考方案1】:

如果表 C 和 D 包含很多行,则运行插入可能需要比默认命令超时(30 秒)更长的时间。在插入命令之前添加这一行:

context.CommandTimeout = 240  // set timeout to 4 minutes

顺便说一句,你应该在完成后处理上下文。最简单的方法是:

using (Datacontext context = new Datacontext())

    // your code goes here

【讨论】:

以上是关于sql 2000 超时已过期?怎么办!? 呼唤高手!的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 2008 中执行视图时出现“超时已过期”错误

我正在将 348k 行数据从 Excel 导入到 VB.net SQL。我得到这个错误:超时已过期

MS Access 给出 SQL Server 错误“登录超时已过期”,然后连接成功

SqlException:超时已过期

发生错误 1042:连接超时已过期

System.Data.SqlClient.SqlException:超时已过期