是否有更快或更有效的方法來選擇下一個記錄?在SQL Server中選擇下一條記錄的最快方法?
SELECT TOP 1 *
FROM MyTable
WHERE ID > @LastIDRead
ORDER BY ID
注:我需要的所有列
是否有更快或更有效的方法來選擇下一個記錄?在SQL Server中選擇下一條記錄的最快方法?
SELECT TOP 1 *
FROM MyTable
WHERE ID > @LastIDRead
ORDER BY ID
注:我需要的所有列
這是最快的方法,如果你有ID的聚集索引。
「下一個記錄」在這裏是不相關的,你想要的是根據它的ID獲得記錄。如果Id被索引,那將是最好的選擇。
根據我提供的查詢,您將如何解釋?它沒有選擇下一個記錄嗎? –
是的,但我的意思是,「下一個」單詞不重要,你在做什麼是尋找一個特定的行,所以做WHERE ID = LastIDRead和passig LastIDRead asn當前ID + 1將是相同的 – Diego
問題與+ 1是當有差距時(例如刪除記錄) –
「ID」是您的羣集索引嗎? – MatBailie
你在使用遊標嗎? – podiluska
是ID是聚簇索引,否,這裏沒有涉及光標。 –