sql - 为什么在 View 中添加 ROW_NUMBER 需要花费太多时间来执行?

标签 sql sql-server tsql

如果我在 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/

相关文章:

MySQL 列间搜索

sql - Microsoft SQL Server 数据工具包未正确加载

sql-server - 使用SQL Server SMO和Split-Path的PowerShell

c++ - 由2个SQL连接创建的死锁,每个使用事务,不同的表,两个表之间的外键约束

sql - 在 SQL 中使用 Pivot 检索多行

Javascript日期到sql日期对象

sql - 逆透视特定表中的多个列

sql-server - 将列与 t-sql 中的值列表进行比较

sql-server - 在同一个表中选择外键命令

mysql - JSON_EXTRACT 不适用于嵌套的 json 数据