gpt4 book ai didi

SQL - 临时表 : Storing all columns in temp table versus only Primary key

转载 作者:行者123 更新时间:2023-12-04 07:11:00 25 4
gpt4 key购买 nike

我需要为分页目的创建一个临时表。我会将所有记录选择到临时表中,然后对其进行进一步处理。

我想知道以下哪个是更好的方法:

1)选择我的主表的所有列到临时表中,然后能够选择我需要的行

或者

2)只选择主表的主键到临时表中,然后再加入主表?

使用方法 1 和方法 2 时是否有任何规模考虑?

[编辑]

我问是因为我会做第一种方法,但看着 PROCEDURE [dbo].[aspnet_Membership_FindUsersByName],它包含在 ASP.NET Membership 中,他们正在做方法 2

[编辑2]

对于无法访问存储过程的人:

  -- Insert into our temp table
INSERT INTO #PageIndexForUsers (UserId)
SELECT u.UserId
FROM dbo.aspnet_Users u, dbo.aspnet_Membership m
WHERE u.ApplicationId = @ApplicationId AND m.UserId = u.UserId AND u.LoweredUserName LIKE LOWER(@UserNameToMatch)
ORDER BY u.UserName


SELECT u.UserName, m.Email, m.PasswordQuestion, m.Comment, m.IsApproved,
m.CreateDate,
m.LastLoginDate,
u.LastActivityDate,
m.LastPasswordChangedDate,
u.UserId, m.IsLockedOut,
m.LastLockoutDate
FROM dbo.aspnet_Membership m, dbo.aspnet_Users u, #PageIndexForUsers p
WHERE u.UserId = p.UserId AND u.UserId = m.UserId AND
p.IndexId >= @PageLowerBound AND p.IndexId <= @PageUpperBound
ORDER BY u.UserName

最佳答案

如果您有大量的行(超过 100),那么表变量的性能通常会比等效的临时表差。但测试它以确保。
选项 2 将使用较少的资源,因为数据重复较少。
托尼关于这是脏读的观点确实是您应该考虑的事情。

关于SQL - 临时表 : Storing all columns in temp table versus only Primary key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/353020/

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