如果我在 View 中使用 NewID 则需要 1 毫秒,
ALTER VIEW [dbo].[d]
AS
SELECT
NEWID() AS Id,
p.XX
,p.xx
FROM [view_XXX] as P
GO
select * .view_d where code='xxxx'
但如果我使用 ROW_NUMBER,完成时间会太长,
ALTER VIEW [dbo].[d]
AS
SELECT
Row_number()OVER(ORDER BY T.XXXXXX) AS Id,
p.XX
,p.xx
FROM [view_XXX] as P
GO
select * .view_d where code='xxxx'
最佳答案
我认为,NEWID()
总是创建任何随机数作为 ID(不需要任何计算)但是在 ROW_NUMBER()
的情况下,SQL 需要对然后列提供 ID。
由于 ROW_NUMBER()
比 NEWID()
更复杂,SQL Server 需要更多时间来处理它。
关于sql - 为什么在 View 中添加 ROW_NUMBER 需要花费太多时间来执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32432467/