如果我在視圖中使用NEWID那麼它將需要1毫秒,爲什麼在View中添加ROW_NUMBER需要花費太多時間來執行?
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'
由於有'ORDER BY',我會想。該列是否有覆蓋索引? – Raj
@Raj然後是什麼解決方案。 – user960567
查看答案。每個人都給你很完美的答案。如果你需要使用'ROW_NUMBER()',那麼在'ORDER BY'中使用的列創建一個索引將會有所幫助,但是不能匹配'NEWID()'的速度。 – Raj