想寫一個sql語句,很長,主要是in后跟着無數個用戶ID,(雖然實現方式很低級,但是還是湊合着用吧)
不知道sql最大長度是多少,看了 SQL Server 的最大容量規范,寫的是
包含 SQL 語句的字符串的長度(批大小)的最大大小/數量:65,536 * 網絡數據包大小
網絡數據包大小是啥東東?你就不能明說最大長度嗎是幾嗎? 微軟,你就欺負我不懂TCP吧!
好吧,你不說,我自己測試。
寫了一個字符串函數,形成 N個Guid字符串(相當於N*32長度),
然后用select * from table where id in (字符) 執行
1萬個Guid字符串,在查詢分析器通過,OK,看來支持32萬長度(320K)
再加個數量級到10萬個,也OK!支持3.2M長度
在加個數量級到100萬個,也OK!!支持32M長度,不過太慢了,sql執行了5分鍾才返回結果
在加個數量級到1000萬個,也OK!!!支持320M長度,用了1小時3分鍾才返回結果
沒有時間,也沒有必要做進一步測試了,
反正如果sql采用In('guid','guid','guid')結構,則至少支持長度guid的個數為1000萬個,總字符長度為3.2億,320M
結論是你就放心用吧,你這一輩子恐怕是遇不到超出32000萬字節長度的sql語句了!