2
一個簡單的問題,但我認爲它應該放在這裏作爲答案。用逗號分隔的IN語句中的項目的最大數量
我有一個T-SQL語句:
select Name
from MyTable
where ID IN (1,2,3,4,5,.....)
我多少逗號分隔的ID可以把這個選擇SQL休息前?它會破壞嗎?
一個簡單的問題,但我認爲它應該放在這裏作爲答案。用逗號分隔的IN語句中的項目的最大數量
我有一個T-SQL語句:
select Name
from MyTable
where ID IN (1,2,3,4,5,.....)
我多少逗號分隔的ID可以把這個選擇SQL休息前?它會破壞嗎?
列表的最大長度僅受最大批量大小(即65536個網絡數據包)的限制。網絡數據包默認爲4 KB。所以這使得大約268 MB的T-SQL文本。如果每個元素的平均長度爲10位數,包括分隔符,
,那麼您可以將大約2500萬個單獨的值分配給剩餘查詢空間。
你告訴他們塞巴斯蒂安。 – Scotch
當然,您的數據的2500萬次連續表/索引掃描將需要一段時間才能運行,因爲據推測該源至少有很多記錄。這產生了至少625萬億美元(在歐洲,十億美元),即使現代硬件也難以實現。 –
@PieterGeerkens - 誰說每個值都需要單獨掃描? –