gpt4 book ai didi

sql-server - 在存储过程中使用表变量还是仅从表或 View 中进行选择?

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

我现在正在查看似乎遵循下面演示的行为的存储过程

DECLARE @tablevar TABLE
(
FIELD1 int,
FIELD2 int,
FIELD3 varchar(50),
-- etc
)

INSERT INTO @tablevar
(
FIELD1,
FIELD2,
FIELD3,
-- etc
)
SELECT FIELD1, FIELD2, FIELD3, -- etc
FROM
TableA Inner Join TableB on TableA.Foo = TableB.Foo
Inner Join TableC on TableB.Bar = TableC.Bar
-- Where, Order By, etc.

Select FIELD1, FIELD2, FIELD3, -- etc
FROM @tablevar

与使用普通 select 语句并跳过表变量相比,使用这种方法有什么好处吗?

最佳答案

如果您计划完全按照发布的方式使用它(填充它然后选择结果),您将不会获得任何 yield 。您只是在加重 SQL Server 的负担,需要更多的 CPU 和内存使用。

如果您计划对表变量做更多的事情,答案就会改变,这取决于您如何使用它。如果它将保存少量数据,在后续语句中使用它可能会更有效。如果您打算多次使用它并且初始填充很昂贵,那么它可能更有效。

我一直在说也许,因为每种情况都不同,您需要进行测试以查看它是否有所作为。

关于sql-server - 在存储过程中使用表变量还是仅从表或 View 中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453330/

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