繁体   English   中英

Linq to SQL TImeout问题

[英]Linq to Sql TImeout issues

我有一种使用linq将用户信息提取到sql类的方法。 该方法使用linq语句执行三个查询,这些语句调用现有存储的proc。 这是我如何布置linq语句的示例。

            using (var db = new TestDataContext(connection)))
            {
                var user = db.proc_UserInfo(userId);

                foreach (var x in user)
                {
                    string FullName = x.FirstName + " " + x.LastName;
                    string Address = x.Addr1;
                    string City = x.City;                        
                }
            }

通过Web api控制器调用此方法,该控制器会从jquery ajax请求中触发。 它工作正常,但是当我通过匆忙更改充满ajax请求的用户的下拉列表而对其施加一些负载时,我注意到我是否可以足够快地完成它,似乎去往数据库的那批查询被取消了并且调用被暂停几分钟,下一次查询将超时并返回空对象。 要注意的一件事是这些查询没有返回,而是几行数据。 我仍在尝试找出正在发生的事情,并欢迎提出建议。 提前致谢。

首先,我认为人们可能需要更多信息。 我认为数据库类型是SQL Server,但您尚未列出版本。 无论如何,这可能是几件事。 请记住,AJAX调用是作为http请求/帖子运行的,因此那里可能存在IIS超时或其他各种IIS限制。 另外,您的呼叫是否异步等。jQuery可能需要验证某些设置。 表锁定也是SQL Server的一种可能。 还要检查您的浏览器ram / w3wp的使用情况,以确保其不会耗尽资源。

首先,我建议运行SQL事件探查器以验证发生了什么,然后检查这些查询的执行计划。 如果有大量数据,则可能需要一些索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM