gpt4 book ai didi

c# - Linq 查询耗时过长

转载 作者:太空狗 更新时间:2023-10-29 23:34:01 24 4
gpt4 key购买 nike

我想知道是否有人可以帮助我解决这个问题。我有一个 LINQ 查询 - 没有问题,但返回数据的时间太长了

var result = Context.paf_wgs84.Where(c => c.Postcode.Contains(postcode)).Take(15);

非常简单,用户输入时的想法,使用 AJAX,返回一组 15 个可能的匹配项。

问题是,有160万条记录

在 Management Studio 中运行以下代码大约需要 3 秒

SELECT   code
FROM paf_wgs84
WHERE (code LIKE '%EC1%')

因为运行下面的代码不到一秒

SELECT   TOP 15  code
FROM paf_wgs84
WHERE (code LIKE '%EC1%')

有没有一种方法可以在不使用 .take() 的情况下在 LINQ 中做类似的事情?

最佳答案

你可以尝试这样的事情。这只会返回一列。

var result = Context.paf_wgs84.Where(c => c.Postcode.Contains(postcode)).Select(x=>new {x.Postcode}).Take(15);

生成的 Sql 语句如下所示。

/*
-- Region Parameters
DECLARE @p0 VarChar(1000) = '%s%'
-- EndRegion
SELECT TOP (15) [t0].[code]
FROM [paf_wgs84] AS [t0]
WHERE [t0].[code] LIKE @p0
*/

关于c# - Linq 查询耗时过长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com