sqlserver2008的sql语句支持的最大长度

想写一个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语句了!

 

posted @ 2015-11-23 12:01  蒸汽机  阅读(15309)  评论(3编辑  收藏  举报