SQL Server慢查询Entityframework

时间:2017-02-09 00:28:03

标签: sql sql-server entity-framework tsql indexing

我有一个大型数据库,其中包含超过20万条记录的表格,从PostQuery中选择的速度越来越慢。我正在使用Entityframework 6.0和MS SQL Server 2014

结构:

PostId UNIQUEIDENTIFIER
PostQuery NVARCHAR(100)
PostData NVARCHAR(MAX)

我的代码:

public PostViewModel GetPost(string post_query)
{
    var mb = db.Posts.Where(p => p.PostQuery == post_query).SingleOrDefault();
    if (mb == null) return null;
    return new PostViewModel
    {
        PostId = mb.PostId,
        PostData = mb.PostData
    };
}

我的网址与http://example.com/post/post_query/类似(超过150k的网址已被Google编入索引,因此我无法更改网址结构)

我还是大型数据库的新手。我该怎么办?

请帮助我加快我的网站速度。感谢

UPDATE1:

正如戴建议我使用“显示实际执行计划”

运行查询

查询:

SELECT         PostId, PostData
FROM            Post
WHERE (PostQuery = 'example-query')

结果测试1: test2 result

UPDATE2:

正如DavidG建议我将索引设置为CREATE INDEX IX_Posts_PostQuery ON Posts (PostQuery)并在管理工作室再次运行上述查询。

结果测试2: test2 result

还有什么事需要做吗?

0 个答案:

没有答案