㈠ 一条sql语句的长度有没有限制,最大长度是多少
MSSQL SQL语句的最大长度是有限度的,对于varchar类型最多可以有8000个字符(varchar如果含中文字符,则一个中文字符要占两位),nvarchar类型最多可以接受4000个字符,超出限制长度的部分会被截掉,语句可能因此变得不完整而无法执行。
㈡ SQL 语句 最大长度限制 DB2如何修改最大长度限制
home/datamart$ db2 get db cfg|grep HEAP
Sort heap thres for shared sorts (4KB) (SHEAPTHRES_SHR) = AUTOMATIC
Sort list heap (4KB) (SORTHEAP) = AUTOMATIC
Database heap (4KB) (DBHEAP) = AUTOMATIC
Utilities heap size (4KB) (UTIL_HEAP_SZ) = 103816
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC
Default application heap (4KB) (APPLHEAPSZ) = AUTOMATIC
Statistics heap size (4KB) (STAT_HEAP_SZ) = AUTOMATIC
修改 STMTHEAP
P570_B_2:/DATAMART/usr/datamart >db2 update db cfg for datamart using STMTHEAP 20480 AUTOMATIC
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
P570_B_2:/DATAMART/usr/datamart >db2stop force
10/19/2012 10:56:14 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
P570_B_2:/DATAMART/usr/datamart >db2start
10/19/2012 10:56:20 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
P570_B_2:/DATAMART/usr/datamart >db2 get db cfg |grep STMT
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC(20480)
Automatic statement statistics (AUTO_STMT_STATS) = OFF
DB2 V9.5 for Linux, UNIX, and Windows
stmtheap - 语句堆大小配置参数
此参数指定语句堆的大小,语句堆在编译 SQL 或 XQuery 语句期间用作 SQL 或 XQuery 编译器的工作空间。
配置类型
数据库
参数类型
可联机配置
传播类
语句边界
缺省值 [范围]
带有本地客户机和远程客户机的数据库服务器:缺省值为 AUTOMATIC(底层值为 8192)。
还可将该参数仅设置为某个固定值。
带有本地客户机和远程客户机的数据库服务器:缺省值为 AUTOMATIC(底层值为 2048)。
还可将该参数仅设置为某个固定值。
对于 32 位平台
AUTOMATIC [128 - 524288]
对于 64 位平台
AUTOMATIC [128 - 524288]
注: 在初始创建数据库后,缺省值将由 DB2® 配置顾问程序进行更改。
计量单位
页 (4 KB)
分配时间
对于预编译或绑定期间的每个语句
释放时间
当每个语句的预编译或绑定完成时
此区域并不总是处于分配状态,但要对每个处理的 SQL 或 XQuery
语句进行分配和释放。注意:对于动态 SQL 或 XQuery 语句,将在程序执行期间使用此工作区; 而对于静态 SQL 或 XQuery
语句,在绑定进程而不是在程序执行期间使用此工作区。
可使用底层值或固定值将 STMTHEAP 参数设置为 AUTOMATIC。该参数设置为 AUTOMATIC 时,底层值会对使用动态连接枚举为单个编译分配的内存量加以限制。如果遇到内存限制,语句编译会使用贪婪连接枚举和不受限制的语句堆重新启动。其仅受到剩余应用程序内存量
(APPL_MEMORY)、实例内存 (INSTANCE_MEMORY) 或系统内存的限制。如果贪婪连接枚举成功完成,那么将向应用程序返回一个 SQL0437W 警告。如果贪婪连接枚举也遇到内存限制,那么语句预编译失败,且带有
SQL0101N。
例如,db2 update db cfg for SAMPLE using STMTHEAP 8192 AUTOMATIC 将为动态连接枚举设置
8192 *4K (32MB) 的语句堆限制并对贪婪连接枚举不设限制。
当 STMTHEAP 参数设置为固定值时,该限制同时适用于动态和贪婪连接枚举。如果动态连接枚举遇到内存限制,那么将使用同一固定语句堆限制来尝试贪婪连接枚举。在 AUTOMATIC 情况下,类似的警告/错误也适用。
例如,db2 update db cfg for SAMPLE using STMTHEAP 8192 将同时为动态和贪婪连接枚举生成
8192 * 4K (32MB) 的语句堆限制。
如果在运行时的查询性能不够高,请考虑增大 stmtheap 配置参数值(底层为 AUTOMATIC 的值或固定值),从而确保动态编程连接枚举能够成功。如果您更新 stmtheap 配置参数以提高查询性能,那么会导致重新编译语句,以便查询优化器可以创建新的访问方案来利用已更改数量的语句堆。
注: 仅在优化类 3 和更高级别(缺省值为 5)进行动态编程联合枚举。
㈢ 到底mysql中的sql语句有没有长度限制
MSSQL SQL语句度限度于varchar类型吧000字符(varchar含文字符则文字符要占两位)nvarchar类型接受四000字符超限制度部截掉语句能变完整执
㈣ 一个sql语句最长能多长
理论上是不限长度的。sql语句就好比你的程序,一个文件写多少行都可以。一个项目写多少个类文件都可以。但是为了可读性强尽量不要在sql层层嵌套。如果需要嵌套多层的场景可以分批次处理。用程序做循环。
㈤ sql语句是不是有长度限制
看你是不是动态SQL。如果动态SQL,会用字符串记录的。字符串的变量有长度限制。平时的SQL,你再长都不会有限制。
㈥ ado commangtext sql 最大长度
4000个字符。adocommangtextsql是MSSQLSQL语句的最大长度可以接受4000个字符,超出限制长度的部分会被截掉,语句可能因此变得不完整而无法执行。
㈦ SQL查询语句最长多少个字符
1、SQL Server中SQL 2005及其后的版本中,单条SQL语句理论上,没有长度限制,但硬件条件是否吃得消,当别论。
2、没有在官方的资料中查询到有相关限制的说法,有人尝试着写了一个长度为200K以上的语句,结果还是可以运行的。
3、可以自已实测,具体做法,在SQL的SQL Server Management Studio中运行如下语句
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
--中间请再复制,一共8000行左右
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'aslsunion
select'1'asls
在我的服务器上,SQL 2008R2下,双4核CPU,32G内存下,运行8千行左右这样的代码,需要的时间为1分钟左右。将这些代码保存为SQL脚本,可以看到,它的大小为200K左右。更长的代码是否能运行,我就不去测试了。
注意,上面的代码如果复制到8千行,在一般的台式电脑上安装的SQL Server下是否吃得消,我就不知道了。如果要尝试的话,1千行一千行的增加去试吧。
别在重要的生产服务器上玩这样的花样,玩死了哭不出来。
4、另外的提示,如果是编程,联接SQL,要注意它们自身对字符串的长度是否有限制。(VS中C++的string的限制是4G,这在当前基本上可以不考虑了)。
㈧ 一条sql语句最长可以多长
不同的数据库甚至相同数据库的不同版本都可能不一样,具体可以查询联机帮助,或参阅产品规格说明。总的来说SQL语句的最大长度限制都是很大的,编写SQL语句一般不需要考虑语句的长度问题。例如ACCESS的SQL最大长度约为6,4000个、MSSQL为65,536 * 网络数据包。像这样的长度,足够你写下长篇大论了。但是话要说回来,一个太长的语句其执行效率变得会低下,尽量避免编写太长和过于复杂的SQL语句还是非常必要的。