gpt4 book ai didi

SQL 参数减慢查询速度

转载 作者:行者123 更新时间:2023-12-02 23:25:32 25 4
gpt4 key购买 nike

我有一个通过 ADO.NET 与 SQL Server 2008R2 一起使用的查询。当我内联使用 LIKE 子句时,它可以在不到一秒的时间内运行,从 200 万行中返回 5 行。如果我像在 .NET 中那样在 SSMS 中的查询开始时声明参数,则需要很长时间。

这是相同的查询,但参数化了。

第一个(效果很好)是(效果很好):

;WITH Results_CTE AS (
SELECT ld.* , ROW_NUMBER() OVER (ORDER BY PK_ID) AS RowNum
FROM list..List_Data ld
WHERE Name IS NOT NULL AND
Postcode LIKE 'SW14 1xx%'
) SELECT * FROM Results_CTE

第二个永远需要的是:

declare @postcode varchar(10) = 'SW14 1xx'
;WITH Results_CTE AS (
SELECT ld.* , ROW_NUMBER() OVER (ORDER BY PK_ID) AS RowNum
FROM list..List_Data ld
WHERE Name IS NOT NULL AND
Postcode LIKE @postcode +'%'
) SELECT * FROM Results_CTE

我相信这与 SQL Server 的内部工作原理有关,但我真的不知道。

最佳答案

我在谷歌上搜索 C# 中 SqlCommand.Parameters.Add() 的潜在问题,并找到了此页面。我知道这是一篇 SQL Server 帖子,但其他人可能会通过 google 找到它,并且它可能会对他们使用 C# 有所帮助。

对我来说,以上答案都不起作用,所以我尝试了另一种方法。

而不是:

cmd.Parameters.Add(new SqlParameter("@postcode", postcode));

我用这个代替:

// Replace SqlDbType enumeration with whatever SQL Data Type you're using.
cmd.Parameters.Add("@postcode", SqlDbType.VarChar).Value = postcode;

不要忘记命名空间:

using System.Data;

希望这对某人有帮助!

关于SQL 参数减慢查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874109/

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