非常快速的本地数据库查询上的C#Linq-to-SQL超时

时间:2014-08-31 20:07:23

标签: c# sql linq

我使用以下代码作为程序中的第一个数据库调用,查询包含每日股票价格信息的本地SQL数据库表:

public DateTime Read_DailyData_FirstDate(String Symbol)
    {
        using (EquitiesDataContext db = new EquitiesDataContext()) {
            var q =
            (from c in db.DailyDatas
             where (c.Symbol == Symbol)
             orderby c.Date ascending
             select c.Date).FirstOrDefault();
            return q;
        }
    }

它给了我一些符号的"Timeout expired"错误(大约2%的符号)。在SQL Server Mgmt Studio中手动运行等效的Top 1查询几乎是即时的

(SELECT top 1 [Date] FROM [Equities].[dbo].[DailyData] where Symbol = 'X' order by Date). 

我已经验证了DB数据本身没有明显的错误(所有列都禁止设计空值,每个符号内没有重复日期等),并且所讨论的符号远远不同于最悠久的历史。

我最初使用.First()而不是.FirstOrDefault(),但是当我看到后者被建议用于相关主题时切换。 .First()

也会出现同样的错误

0 个答案:

没有答案