gpt4 book ai didi

sql - 为什么我的 SQL Server 游标非常慢?

转载 作者:行者123 更新时间:2023-12-03 01:23:05 24 4
gpt4 key购买 nike

我在存储过程中使用游标。它适用于拥有大量数据的数据库。对于光标中的每个项目,我都会执行更新操作。这需要大量的时间才能完成。差不多25分钟。 :( .. 有什么办法可以减少为此花费的时间吗?

最佳答案

当您需要对每一行执行比简单更新允许的更复杂的操作时,您可以尝试:

  • 编写一个用户定义函数并在更新中使用它(可能仍然很慢)
  • 将数据放入临时表中并在 UPDATE ... FROM 中使用该数据:

您了解 UPDATE ... FROM 语法吗?当事情变得更复杂时,它非常强大:

UPDATE
MyTable
SET
Col1 = CASE WHEN b.Foo = "Bar" THEN LOWER(b.Baz) ELSE "" END,
Col2 = ISNULL(c.Bling, 0) * 100 / Col3
FROM
MyTable
INNER JOIN MySecondTable AS b ON b.Id = MyTable.SecondId
LEFT JOIN ##MyTempTable AS c ON c.Id = b.ThirdId
WHERE
MyTabe.Col3 > 0
AND b.Foo NOT IS NULL
AND MyTable.TheDate > GETDATE() - 10

该示例完全是虚构的,可能没有多大意义,但您可以了解如何在不使用光标的情况下进行更复杂的更新。当然,它的工作不一定需要临时表。 :-)

关于sql - 为什么我的 SQL Server 游标非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224485/

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