gpt4 book ai didi

sql-server-2008 - 标量函数需要很多时间

转载 作者:行者123 更新时间:2023-12-04 06:03:28 25 4
gpt4 key购买 nike

我需要一个能告诉我我错过了什么的人。

我在 SQL Server 2008 中有这个标量函数:

ALTER function [dbo].[SKU](@id1 int, @id2 int)
returns int
begin
return (
SELECT SUM(Value)
FROM Table
where id_1 = @id1
and id_2 = @id2)
end

而这张表是这样的:
 id_1      id_2    Value
1004 1 10
1004 1 30
1004 2 100
1005 1 90
1005 1 5
1005 1 5

如果我执行:
select [dbo].[SKU](1004,1)

它返回 40 - 没关系
select [dbo].[SKU](1004,2)

返回 100 - 好的
select [dbo].[SKU](1005,1)

返回 100 - 好的

在这一点上似乎一切正常,但我的表几乎有一百万行...... SKU 的结果进入同一个表(更新部分)。

但是我现在运行了两个小时,并且仍在运行......

我的问题:我从未见过如此耗时的查询。没关系?我错过了什么?

谢谢!,新年快乐!乙:

最佳答案

如果无法更改表设计或对其进行编程,一个简单的解决方案是在函数中使用的字段上创建覆盖索引。

就像是

CREATE INDEX IX_TABLE_ID_1_ID_2_VALUE ON dbo.Table (id_1, id_2) INCLUDE (Value)

关于sql-server-2008 - 标量函数需要很多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663443/

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