### DB2学习手册知识点概述 #### 一、DB2专有名词解释 1. **Instance(实例):** DB2中的实例是指运行DB2数据库管理系统的单一进程或一组进程。每个DB2实例都有一个唯一的名字,并且可以管理多个数据库。实例是DB2运行的基本单位。 2. **DB2 Administration Server(管理服务器):** 这是指用于管理和监控DB2环境中多个实例的服务器。通过它,管理员可以集中地管理安全性、备份恢复等任务。 3. **Container(容器):** 在DB2中,容器通常指的是数据库本身。它包含了所有的表空间、表、索引等数据对象。 4. **DRDA:** Distributed Relational Database Architecture,分布式关系数据库架构,是一种允许不同数据库管理系统之间进行通信的协议。 5. **DARI:** Data Retrieval Interface,数据检索接口,它是IBM提供的用于访问DB2数据库的应用程序编程接口之一。 6. **SPM:** Shared Pool Memory,共享池内存,DB2中的共享内存段,用于存储各种缓存,如缓冲池和SQL包缓存等。 7. **FCM:** File Control Manager,文件控制管理器,负责管理数据库文件的存储和访问。 8. **ADSM:** Advanced Data Storage Manager,高级数据存储管理器,提供高性能的数据存储管理功能。 #### 二、DB2编程技巧 1. **建存储过程时Create后一定不要用TAB键:** 在编写存储过程时,使用`CREATE`命令后直接输入存储过程内容,避免使用TAB键,以免引起语法错误。 2. **使用临时表:** 临时表用于存储临时数据,在存储过程执行完毕后会被自动删除。它们对于提高程序效率非常有用。 3. **从数据表中取指定前几条记录:** 使用`LIMIT`或`FETCH FIRST`子句来获取指定数量的记录。 4. **游标的使用:** 游标是用于处理结果集的指针。可以用来逐行检索结果集中的数据。 5. **类似DECODE的转码操作:** 使用`CASE`语句实现类似Oracle DECODE的功能,根据不同的条件返回不同的值。 6. **类似CHARINDEX查找字符在字符串中的位置:** 使用`POSITION`函数来查找一个字符串在另一个字符串中的位置。 7. **类似DATEDIFF计算两个日期的相差天数:** 使用`JULIANDAY`函数配合减法运算来计算两个日期之间的天数差。 8. **写UDF的例子:** 用户定义函数(UDF)可以扩展DB2的功能。例如,定义一个返回字符串长度的函数。 9. **创建含IDENTITY值(即自动生成的ID)的表:** 在创建表时使用`GENERATED ALWAYS AS IDENTITY`来定义自增列。 10. **预防字段空值的处理:** 可以在字段定义时使用`NOT NULL`约束来确保字段不为空,或者在插入数据时使用默认值。 11. **取得处理的记录数:** 使用`ROW_COUNT()`函数来获取最近执行的SQL语句影响的行数。 12. **从存储过程返回结果集(游标)的用法:** 通过声明游标并在存储过程中打开和读取它来返回多行数据。 13. **类型转换函数:** 如`CAST`或`CONVERT`用于在不同类型之间进行数据转换。 14. **存储过程的互相调用:** 存储过程可以通过相互调用来实现更复杂的逻辑。 15. **C存储过程参数注意:** C存储过程的参数需要正确声明类型和方向。 16. **存储过程fence及unfence:** `FENCE`用于锁定存储过程,而`UNFENCE`用于解锁。 17. **SP错误处理用法:** 使用`TRY`和`EXCEPTION`块来捕获并处理存储过程中的异常。 18. **VALUES的使用:** `VALUES`关键字可以用来返回一个单行单列的结果集。 19. **给SELECT语句指定隔离级别:** 使用`WITH UR`或`WITH RS`来指定查询的隔离级别。 20. **ATOMIC及NOT ATOMIC区别:** `ATOMIC`表示整个事务要么全部提交要么全部回滚,而`NOT ATOMIC`则允许可串行化的事务。 #### 三、DB2的一些不好的限制 1. **临时表不能建索引:** 在DB2中,临时表无法创建索引,这可能会导致性能问题。 2. **CURSOR不能定义为WITH UR:** 虽然文档中提到可以这样做,但在实际应用中可能不可行。 3. **CURSOR ORDER BY以后不能FOR UPDATE:** 如果在CURSOR的ORDER BY子句后使用FOR UPDATE,则可能导致错误。 4. **程序中间不能自由改变隔离级别:** 一旦设置了隔离级别,就不能在同一个事务中更改。 5. **UPDATE不能用一个表中的记录为条件修改另一个表中的记录:** 更新操作通常只能在一个表上进行,跨表更新需要使用更复杂的逻辑。 #### 四、DB2编程性能注意事项 1. **大数据的导表的使用:** 使用`EXPORT`、`LOAD`和`IMPORT`工具可以高效地导入导出大量数据。 2. **SQL语句尽量写复杂SQL:** 有时候,将多个简单查询合并成一个复杂查询可以提高效率。 3. **SQLSP及CSP的选择:** SQL存储过程通常比C存储过程更容易编写和维护。 4. **查询的优化:** 使用HASH JOIN和ROW RESTRICT TO ROWS (RR_TO_RS)策略来优化JOIN操作。 5. **避免使用COUNT(*)及EXISTS的方法:** 使用更高效的查询方法来替代这些操作。 6. **COMMIT的次数要适当:** 频繁提交可能会降低性能。 7. **INSERT和UPDATE速度比较:** 在某些情况下,使用UPDATE可能比INSERT更快。 8. **使用临时表取代一条一条插入:** 大量插入操作时,使用临时表可以显著提高性能。 9. **循环次数很多时注意减少执行语句:** 减少不必要的数据库访问可以提高程序效率。 10. **查看程序执行时间及结果db2batch:** 使用`db2batch`命令来查看程序的执行时间和结果。 11. **查看程序或语句具体的执行计划shell:** 使用`EXPLAIN`来查看SQL语句的具体执行计划。 12. **两个表做JOIN的不同方式的区别:** 不同的JOIN方法有不同的性能表现,如NOT IN与EXCEPT方式的差异。 #### 五、其他系统和DB2的交互 - 探讨如何让其他系统能够与DB2进行高效的数据交换和通信。 #### 六、DB2表及SP管理 1. **权限管理:** 包括数据库权限、模式权限、表空间权限、表权限以及包权限的管理。 2. **建存储过程会占用很多的系统资源:** 创建存储过程时需要注意对系统资源的消耗。 3. **看存储过程文本:** 使用`VALUES DB2GETDDLSOURCE`来查看存储过程的源代码。 4. **看表结构:** 使用`VALUES DB2GETTABINFO`来查看表的详细信息。 5. **看表的索引信息:** 使用`VALUES DB2GETTABINFO`命令加上索引选项来查看表的索引信息。 6. **查看各表对SP的影响:** 使用`VALUES DB2LOOKUPDEPEND`来查看哪些存储过程依赖于特定的表。 7. **查看SP使用了哪些表:** 通过查看存储过程的源代码来确定它使用了哪些表。 8. **查看FUNCTION被哪些SP使用:** 类似于查看表依赖性的方式,查看哪些存储过程使用了特定的函数。 9. **查SP的ID号:** 使用`VALUES DB2GETDEPID`来获取存储过程的ID号。 10. **从SP的ID号查存储过程名称:** 使用`VALUES DB2GETDEPNAME`来从ID号反向查找存储过程的名称。 11. **创建及使用SUMMARY TABLE:** 通过创建汇总表来快速查询统计信息。 12. **修改表结构:** 使用ALTER TABLE命令来修改现有的表结构。 13. **给一个表改名:** 使用RENAME TABLE命令来重命名表。 14. **得到一个表或库的相关脚本:** 使用`DB2 GET DDL`命令来获取表或库的DDL脚本。 15. **在对表操作的性能下降后对表做整理:** 使用REORG和REBUILD命令来整理表,提高性能。 16. **查看语句的执行计划:** 使用EXPLAIN命令来查看SQL语句的执行计划。 17. **查看SP的执行计划:** 通过查看存储过程内部的SQL语句来间接了解其执行计划。 18. **更改存储过程的隔离级别:** 使用ALTER PROCEDURE命令来更改存储过程的隔离级别。 19. **取全部表的大小:** 使用`VALUES DB2LOOKSPACE`来获取所有表的空间使用情况。 #### 七、DB2系统管理 1. **DB2EE及WORKGROUP版本的区别:** DB2 Enterprise Edition (EE)和DB2 Workgroup Edition (WG)在功能和许可证方面有所不同。 2. **怎样判断DB2实例的版本号和修补级别:** 使用`db2level`命令来查看实例的版本和补丁级别。 3. **DB2客户端安装时选择语言:** 安装DB2客户端时可以选择安装的语言环境。 4. **DB2安装:** 包括DB2在不同操作系统上的安装过程。 5. **启动支持远程管理数据库服务(db2admin):** 使用`db2start`命令启动db2admin服务来支持远程管理。 6. **安装另一个instance要注意的地方:** 在安装新的DB2实例时需要注意配置和兼容性问题。 7. **Db2的C编译报没有license:** 解决C编译过程中出现的许可问题。 8. **Db2的进程管理:** 包括启动、停止和监控DB2相关的进程和服务。 以上内容提供了关于DB2的深入理解和实用技巧,帮助读者更好地掌握DB2的使用和管理。
































剩余63页未读,继续阅读

- 戴戴鹏2012-12-24初学,正在使用中,感觉不错

- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- ISO-2000讲义-质量管理八项原则.doc
- 项目的销售宣传整体布置方案.docx
- 浅析机载气象雷达天线组的修理及维护.doc
- 工程建设招标投标合同(土地工程施工监理服务协议书).doc
- 山西某热电厂场地平整施工方案.doc
- [云南]水电站面板堆石坝坝体填筑施工工艺.docx
- 2022年食药监大数据平台建设方案(智慧食药监整体解决方案).pptx
- 紧邻地铁与高架的深大基坑工程支撑、降水和开挖施工技术.doc
- 地暖细石砼楼面施工技术(安全)交底记录.doc
- 3纤维复合材料粘贴加固工程.docx
- 利用步步紧加固地下室挡土墙混凝土模板(“五小”成果奖).doc
- 2008年注册岩土工程师基础考试真题下午卷.doc
- 培训师聘用合同书.doc
- 苯酐催化剂载体的研究.doc
- 架空线路的拉线.doc
- 合同造价部年终工作总结.doc


