DB2数据库实战技巧与限制

需积分: 10 3 下载量 167 浏览量 更新于2024-07-31 1 收藏 743KB PDF 举报
"DB2数据库使用经验积累,主要在首都国际机场和海口梅兰国际机场系统开发中获取,基于IBM s80服务器,AIX4.3操作系统,4GB内存,DB2 UDB 7.2版本。" DB2是IBM公司推出的关系型数据库管理系统,广泛应用于企业级数据存储和管理。在本文档中,牛新庄分享了他在实际项目中积累的DB2使用经验,涵盖了DB2的一些核心概念、编程技巧以及需要注意的问题。 首先,文档介绍了DB2的一些专有名词: 1. INSTANCE(实例):DB2的一个运行实例,代表数据库管理系统的一个独立运行实体,可以包含多个数据库。 2. DB2ADMINISTRATIONSERVER(管理服务器):用于管理DB2实例和数据库的服务,执行监控、备份等管理任务。 3. CONTAINER(容器):在DB2中,容器是数据库分区的逻辑单位,用于存储数据。 4. DRDA(分布式关系数据库架构):DB2的网络通信协议,允许不同系统间的数据库互访。 5. DARI:DB2的远程访问接口,用于连接其他数据库系统。 6. SPM(SQL处理模块):处理SQL查询的组件。 7. FCM(缓冲池框架管理器):负责管理数据库缓冲池,提高数据读取效率。 8. ADSM(自动存储管理):DB2的自动存储管理功能,简化存储管理。 9. DCE(分布式计算环境):IBM的网络服务,提供安全认证和命名服务。 接着,文档详述了DB2编程中的一些关键点: 1. 执行文件中的脚本:通过DB2命令行工具或应用程序接口执行SQL脚本。 2. 创建存储过程:避免使用制表符(TAB键)可能导致的语法错误。 3. 使用临时表:在会话范围内存储临时数据,会话结束时自动删除。 4. 取指定数量记录:使用LIMIT或FETCH FIRST子句获取前N条记录。 5. 游标使用:控制查询结果的迭代,注意COMMIT和ROLLBACK对游标状态的影响,有显式和隐式定义方式。 6. 类似DECODE的功能:使用CASE语句实现条件判断。 7. 查找字符位置:使用POSITION函数。 8. 计算日期差:使用DATE subtraction运算。 9. 用户定义函数(UDF):扩展DB2功能,自定义计算逻辑。 10. 自动增长字段:利用IDENTITY属性创建。 11. 防止空值:使用NULLIF或COALESCE处理可能的空值。 12. 获取处理记录数:使用GET DIAGNOSTICS语句。 13. 返回结果集的存储过程:定义游标并返回。 14. 类型转换:使用CAST函数。 15. 存储过程调用:可以相互嵌套调用,注意参数传递。 16. C存储过程注意事项:如参数类型和大小。 17. FENCE和UNFENCE:控制存储过程的并发执行。 18. 错误处理:使用BEGIN...ON ERROR...END错误处理结构。 19. VALUES子句:插入多行数据。 20. 隔离级别设定:用于控制并发事务间的可见性。 21. ATOMIC与NOTATOMIC:控制存储过程的原子性。 22. 存储过程名称长度限制:遵守命名规则。 23. 获取连接句柄:用于管理和控制数据库连接。 24. 类似Oracle的NAMEPIPE:DB2的管道通信机制。 25. TRUNCATE操作:快速删除表所有数据且不记录日志。 26. CLI编程:使用DB2命令行接口进行批量插入。 最后,文档指出了一些DB2的限制和不足,如临时表无法建立索引,游标不能定义为WITH UR,CURSOR ORDER BY后不能FOR UPDATE,程序中无法随意更改隔离级别,UPDATE不能使用一个表的记录作为条件更新另一个表等。这些限制提醒开发者在设计和编写代码时需充分考虑,以避免潜在问题。 这份文档提供了丰富的DB2使用经验,对DB2的管理员和开发人员具有很高的参考价值,有助于提升他们在实际工作中解决DB2相关问题的能力。