DB2使用技巧与经验分享-牛新庄

需积分: 10 9 下载量 51 浏览量 更新于2024-08-01 收藏 582KB DOC 举报
"DB2资料-DB2的使用经验-作者牛新庄" 本文档由作者牛新庄分享了关于DB2数据库的使用经验和关键知识点,涵盖了DB2的基础概念、编程技巧以及需要注意的一些限制和性能优化策略。 首先,文档介绍了几个DB2的专有名词: 1. **Instance(实例)**:在DB2中,实例是数据库管理系统的一个运行时环境,它包含了管理数据库所需的所有组件和服务。 2. **DB2 Administration Server(管理服务器)**:用于管理和监控DB2实例的工具,它提供了一种集中式的管理方式。 3. **Container(容器)**:在DB2的多维集群(MDC)环境中,容器是存储数据的逻辑单位,每个容器可以包含一个或多个数据库。 4. **DRDA(Distributed Relational Database Architecture)**:分布式关系数据库架构,DB2使用DRDA协议进行跨网络的数据访问。 5. **DARI(DRDA Application Request Intermediate)**、**SPM(SQL Plan Manager)**、**FCM(Fragment Container Manager)**、**ADSM(Automatic Storage Management)**、**DCE(Distributed Computing Environment)**:这些都是DB2内部的组件或服务,用于不同的数据库管理和优化功能。 接着,文档详细阐述了DB2编程的一些实用技巧: - **执行文件中的脚本错误处理**:强调了错误处理的重要性。 - **创建存储过程**:建议在CREATE后避免使用制表符,以防止语法错误。 - **使用临时表**:在处理临时数据时非常有用,但文档指出DB2的临时表不支持建立索引。 - **取指定前几条记录**:通过SQL查询语句实现。 - **游标**:用于处理单条记录,文档提到了两种定义方式、修改当前记录的方法,以及如何与COMMIT和ROLLBACK配合使用。 - **类似DECODE的转码操作**、**CHARINDEX查找位置**、**DATEDIF计算日期差**、**写UDF(用户定义函数)**、**创建含identity值的表**、**处理空值**、**取得处理记录数**、**返回结果集**、**类型转换函数**、**存储过程互相调用**、**C存储过程参数**、**FENCE和UNFENCE**、**SP错误处理**、**VALUES的使用**、**指定SELECT语句的隔离级别**、**ATOMIC与NOT ATOMIC的区别**、**C和SQL存储过程命名**、**获取数据库连接句柄**、**类似Oracle的Namepipe**、**TRUNCATE清表**、**CLI编程批量INSERT**等都是DB2编程中常见的操作和注意事项。 然后,文档列出了DB2的一些限制: - **临时表不能建索引**、**CURSOR不能定义为WITH UR**、**CURSOR ORDER BY后不能FOR UPDATE**、**程序中不能随意改变隔离级别**、**UPDATE不能基于一个表的记录修改另一个表**、**调用存储过程传NULL值需谨慎**,这些都是在开发时需要特别注意的问题。 最后,文档讨论了DB2编程性能的注意事项: - **大数据导表(EXPORT、LOAD、IMPORT)**:提供了这些操作的用法和性能比较,提醒在大量数据导入导出时要谨慎操作。 - **SQL语句写法**:提倡编写高效的SQL语句,减少不必要的计算和操作,以提升性能。 总体而言,这份资料为DB2的使用者提供了一份全面的实践指南,涵盖了从基础概念到高级特性的各个方面,对于理解DB2数据库系统及其编程具有很高的参考价值。