kernelsky 发表于 2016-11-17 07:49:32

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

home/datamart$db2getdbcfg|grepHEAP
Sortheapthresforsharedsorts(4KB)(SHEAPTHRES_SHR)=AUTOMATIC
Sortlistheap(4KB)(SORTHEAP)=AUTOMATIC
Databaseheap(4KB)(DBHEAP)=AUTOMATIC
Utilitiesheapsize(4KB)(UTIL_HEAP_SZ)=103816
SQLstatementheap(4KB)(STMTHEAP)=AUTOMATIC
Defaultapplicationheap(4KB)(APPLHEAPSZ)=AUTOMATIC
Statisticsheapsize(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   00SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
P570_B_2:/DATAMART/usr/datamart >db2start
10/19/2012 10:56:20   00SQL1063N 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 编译器的工作空间。
配置类型数据库参数类型可联机配置传播类语句边界缺省值 [范围]对于 32 位平台AUTOMATIC

[*]带有本地客户机和远程客户机的数据库服务器:缺省值为AUTOMATIC(底层值为2048)。
[*]还可将该参数仅设置为某个固定值。
对于 64 位平台AUTOMATIC

[*]带有本地客户机和远程客户机的数据库服务器:缺省值为AUTOMATIC(底层值为8192)。
[*]还可将该参数仅设置为某个固定值。
注:在初始创建数据库后,缺省值将由 DB2® 配置顾问程序进行更改。
计量单位页 (4 KB)分配时间对于预编译或绑定期间的每个语句释放时间当每个语句的预编译或绑定完成时此区域并不总是处于分配状态,但要对每个处理的 SQL 或 XQuery 语句进行分配和释放。注意:对于动态 SQL 或 XQuery 语句,将在程序执行期间使用此工作区; 而对于静态 SQL 或 XQuery 语句,在绑定进程而不是在程序执行期间使用此工作区。
可使用底层值或固定值将STMTHEAP参数设置为AUTOMATIC。该参数设置为AUTOMATIC时,底层值会对使用动态连接枚举为单个编译分配的内存量加以限制。如果遇到内存限制,语句编译会使用贪婪连接枚举和不受限制的语句堆重新启动。其仅受到剩余应用程序内存量(APPL_MEMORY)、实例内存 (INSTANCE_MEMORY) 或系统内存的限制。如果贪婪连接枚举成功完成,那么将向应用程序返回一个 SQL0437W 警告。如果贪婪连接枚举也遇到内存限制,那么语句预编译失败,且带有SQL0101N。
例如,db2 update db cfg for SAMPLE usingSTMTHEAP8192 AUTOMATIC将为动态连接枚举设置8192 *4K (32MB) 的语句堆限制并对贪婪连接枚举不设限制。
当STMTHEAP参数设置为固定值时,该限制同时适用于动态和贪婪连接枚举。如果动态连接枚举遇到内存限制,那么将使用同一固定语句堆限制来尝试贪婪连接枚举。在 AUTOMATIC 情况下,类似的警告/错误也适用。
例如,db2 update db cfg for SAMPLE usingSTMTHEAP8192将同时为动态和贪婪连接枚举生成8192 * 4K (32MB) 的语句堆限制。
如果在运行时的查询性能不够高,请考虑增大stmtheap配置参数值(底层为AUTOMATIC的值或固定值),从而确保动态编程连接枚举能够成功。如果您更新stmtheap配置参数以提高查询性能,那么会导致重新编译语句,以便查询优化器可以创建新的访问方案来利用已更改数量的语句堆。
注:仅在优化类 3 和更高级别(缺省值为 5)进行动态编程联合枚举。



  

  
页: [1]
查看完整版本: SQL 语句 最大长度限制 DB2如何修改最大长度限制