在简单查询上获得“等待操作超时”,其他查询起作用,适用于本地数据库

时间:2017-07-06 18:32:06

标签: c# sql-server entity-framework linq database-first

我有一个非常简单的LINQ查询,我调用一个视图来获取一个对象,基本上它看起来像这样:

context.view.FirstOrDefault(p => p.id == key)

Key和id是字符串,我认为这不太理想。但是,当我对我的本地数据库运行它时,它工作正常。

但是,当我部署我的应用程序时,我收到消息:

[Win32Exception (0x80004005): The wait operation timed out]
[SqlException (0x80131904): Timeout expired.  The timeout period elapsed prior to
completion of the operation or the server is not responding.]

针对视图的其他查询可以快速按预期工作。他们返回列表而不是单个对象,我不确定这是否会产生影响。

由于环境的配置方式,我无法从我的开发环境连接到托管数据库,所以我的故障排除选项有限。我已经仔细检查过本地和托管环境中的视图是否相同。

当我在SSMS中针对托管数据库运行查询时,它会在一秒钟内执行。

我不确定在故障排除方面有什么好的后续步骤,并希望得到任何建议。

我正在使用Entity Framework 6,数据库优先。

1 个答案:

答案 0 :(得分:1)

这些是戴安娜和威廉的伟大建议。不幸的是,我没有权限在托管数据库中查看查询计划。

在简化托管数据库上的视图返回的结果之后,我确定查询作为问题根源的视图实际上是缓慢的。虽然查询本身很简单,但视图非常复杂。我要看看我是否可以获得数据库的必要权限来制作索引视图。