SQL 语句 最大长度限制 DB2如何修改最大长度限制

SQL 语句 最大长度限制 DB2如何修改最大长度限制,第1张

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)进行动态编程联合枚举。

DB2中的限制之一SQL标识符的长度限制

作者﹕CCBZZP

在现实的DB2应用中大家可能经常会遇到一些错误,错误的原因是对DB2的

限制不太了解而引起的,在此我简单地总结一下,欢迎大家继续﹐以便和大家共享﹐

共同探讨﹐共同近步﹗(以下主要以DB2 7.X为例)。

1. 最长的认证名(单字节字符)<=30

2. 最长的约束名称<=18

3. 最长的关联名称<=128

4. 最长的条件名称<=64

5. 最长的游标名称<=18

6. 最长数据源列名称<=128

7. 最长数据源索引名称<=128

8. 最长数据源名称<=128

9. 最长数据源表名称(远程认证名称)<=128

10. 最长外部程序名称<=8

11. 最长主机标识符<=255

12. 最长数据源用户的标识符(远程认证名称)<=30

13. 最长标签名称<=64

14. 最长方法名称<=18

15. 最长参数名称<=128

16. 最长访问数据源的口令<=32

17. 最长保存点名称<=128

18. 最长模式名称<=30

19. 最长服务器(数据库别名)<=8

20. 最长SQL变量名称<=64

21. 最长语句名称<=18

22. 最长转换组名<=18

23. 最长不受限制的列名<=30

24. 最长不受限制的包名<=8

25. 最长不受限定的用户自定义类型,用户自定义函数,缓冲池,表空间,节点组,

触发器索引,索引规范名称<=18

26. 最长不受限定的表名,视图,存储过程名,别称或别名<=128

27. 最长的包装器名<=128


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6761146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存