簡體   English   中英

為什么此嵌套的SQL代碼這么慢

[英]Why is this nested SQL code so slow

將ADODB記錄集與SQL Server 2016一起使用-此代碼的運行速度比我執行選擇查詢然后通過遍歷記錄集手動進行聚合的速度慢得多。.有什么想法嗎?

SELECT SUM(wk1) AS wk1, SUM(wk2) AS wk2, SUM(wk3) AS wk3
    , SUM(recCount) AS recCount, MIN(Segment) AS Segment, Bucket
FROM (
    SELECT *, 1 AS recCount, NTILE(8) OVER (ORDER BY NEWID()) AS Bucket
    FROM [Data]
    WHERE (1 = 1 AND [Area] = 'EAST') AND Segment = 2
    ) AS q
GROUP BY Bucket

似乎已經

NTILE(8) OVER (ORDER BY NEWID()) 

片。 如果我改用

(ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) % 8) + 1

它的運行速度似乎要快得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM