从表中的语句花费一个小时很简单

我有这条简单的线:


var records = db.MyDbTable.Where(x => x.SupplierId.HasValue).ToList();

而且执行需要一个小时。我表中有272行。该表有一列,NVARCHAR(MAX)里面有巨大的字符串。如何优化语句?之后在代码中,我有一个foreach,它会遍历记录并对其进行处理。


db中的select语句需要5分钟。


当我使用SQL事件探查器进行检查时,这是从C#转换而来的语句:


SELECT 

    [Extent1].[id] AS [id], 

    [Extent1].[xml] AS [xml], 

    [Extent1].[name] AS [name], 

    [Extent1].[create] AS [create], 

    [Extent1].[sale] AS [sale], 

    [Extent1].[SupplierId] AS [SupplierId], 

    [Extent1].[Success] AS [Success], 

    [Extent1].[IId] AS [IId]

    FROM [dbo].[MyDbTable] AS [Extent1]

    WHERE [Extent1].[SupplierId] IS NOT NULL



跃然一笑
浏览 146回答 2
2回答

青春有我

尝试在数据库中的where字段(SupplierId)上添加索引,看看是否有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP