ASP.NET LINQ SQL执行超时的问题

最近在写一个航材取价的程序。由于执行的语句复杂,数据量比较大,容易造成超时。

看提示应该是执行SQL的时候超时,我在程序中用的linq。

实际把SQL语句单独执行的时候观察也要40秒左右。

查资料得知

SqlCommand.CommandTimeout 
获取或设置在终止执行命令的尝试并生成错误之前的等待时间。 
等待命令执行的时间(以秒为单位)。默认为 30 秒。

实际观察的时候也发现,一般提示出错就是在执行语句30秒的时候。

为解决此问题可以在程序中自定义设置执行语句超时的时间。

传统的ADO.NET使用

CommandTimeout = 180

LINQ可以使用

using (MainContext db = new MainContext())
{
    db.CommandTimeout = 3 * 60; // 3 Mins
}

要考虑优化SQL语句,改成存储过程之类得了,看来。
时间: 2024-11-05 23:37:59

ASP.NET LINQ SQL执行超时的问题的相关文章

EF code frist 使用Linq或者Sql执行

1.使用Linq查询 using (var db = new BloggingContext()) { #region 使用linq查询 Console.Write("Enter a name for a new Blog: "); var name = Console.ReadLine(); var blog = new Blog { Name = name }; db.Blogs.Add(blog); db.SaveChanges(); var query = from b in 

SQL Server超时诊断和调优

SQL Server超时诊断和调优 一. 超时分析 下面是用户访问一个Web站点的常见错误: 详细错误描述如下: [SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.] System.Data.SqlClient.SqlConnection.OnError(SqlExc

C# 给某个方法设定执行超时时间 C#函数运行超时则终止执行(任意参数类型及参数个数通用版)

在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死. 在这时.我们可以通过Thread.Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死, 但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的.那么我们又是否有一种比较通用的方法.来设定某一个方法的执行超时的时间,让该其一旦超过指定时间则跳出指定方法.进而继续向下执行呢? 答案当然是肯定的. delegate.BeginInvoke可以实现代

使用C#+Linq+SQL快速开发业务

C#开发桌面程序的效率确实很高,今天就来总结下如何使用C#+Linq+SQL快速开发一个新的业务系统. Linq是微软官方的轻量级的ORM工具,使用它结合SQL可以快速的生成实体类,再通过Linq操作可以快速的开发业务.   1.生成实体类: 对于已经存在的数据库结构(SQL Server),可以使用VS自带的命令行工具生成实体类:     sqlmetal工具可以用来对SQL Server数据库快速生成C#中的实体类,具体参数: /server参数指定服务器名称 /database参数指定数据

Sqlite代写、SQL执行语句代写

Sqlite代写.SQL执行语句代写SQL Assignment 2 (20%)Questions:1. Produce a table showing the total books that are currently "CheckedOut" by every major. Show theMajor and "Total Books Checkedout" in the query result and sort the "Total Books

Linq的执行效率及优化

描述:项目中使用了linq,发现写的顺序不一样最后的结果也不一样,效率也不一样. Linq的执行效率对比 List<int> source = new List<int>(); var rand = new Random(); int i = 5000; while (i > 0) { i--; source.Add(rand.Next(1, 500)); } Stopwatch watch = new Stopwatch(); watch.Restart(); var te

sql执行效率,半同步复制

(1)尽量选择较小的列: (2)将where中用的比较频繁的字段建立索引: (3)select中避免使用*: (4)避免在索引列上使用计算.not in和<>等操作: (5)当只需要一行数据时候使用limit1: (6)保证单表数据不超过200w,实时分割表: 针对查询较慢的语句,可以使用explain来分析该语句具体的执行情况. sql语句应考虑哪些安全性? (1)少使用root账户,应该为不同的动作分配不同的账户: (2)sql执行出错后,不能把数据库中显示的出错信息,直接展示给用户.防止

转:网页脚本执行超时问题,mssql超时的治标治本手段

使用 ALTERDATABASE 设置更小的 FILEGROWTH 或设置新的大小. 解决方法:1(治本)------此方法并没有得到验证.谁弱试了可以告知.谢谢我倒竟然是数据库文件在增加的时候超时了.而不是平常常以为的具体的SQL语句超时.把 FILEGROWTH 设置为一个更低的值,ok一切都恢复了. FILEGROWTH 的设置就是在数据库的 Enterprise Manager 中,对数据库的属性的如下窗口进行设置: 一旦你的数据库文件大了后,上述超时就可能出现.这时候不要简单地以为服务

MVP 2015社区大讲堂之:在ASP.NET应用中执行后台任务

昨天下午,在微软的MVP 2015社区大讲堂上给大家分享了一个题目:在ASP.NET应用中执行后台任务.这是一点都不高大上,并且还有点土气的技术分享.不过我相信很多人都遇到过这样的问题. 虽然是一个很简单的技术,不过来课堂上听讲的同学还是很多,在此再次感谢大家的捧场. 在这个分享中我主要介绍了三种解决方案: QueueBackgroundWorkItem Hangfire Azure WebJobs 也同步演示了这三种方案的基本用法,但是由于是现场演示,所以代码的讲解都是一笔带过.不过还算这三个