




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IBMDB2UDB介绍2008年12月6日河北移动经分项目组 Page2 DB2产品家族 DB2的各个版本从低到高依次为 DB2EveryplaceDB2ExpressDB2WorkGroupDB2EnterpriseDB2DataWareHouseEnterprise每个版本都包含前一个版本的所有特性和功能 并添加了新特性和新功能 DB2在AIX Windows和UNIX Linux平台上的代码大约有90 是相同的 另有10 的专用代码 用于使数据库和底层操作系统紧密集成 Page3 DB2体系结构 Page4 DB2存储结构 存储三角形 在一个DB2数据库中 数据和索引的存储是在四个不同级别上定义和控制的 为了支持分区数据库 其中有一个名为分区组 partitiongroups 的抽象层 分区组是由一个数据库中的一个或多个数据库分区组成的组或集合 当创建一个表空间时 它被指定到一个分区组 并且只能创建在该分区组所包含的那些数据库分区上 每个表空间必须有一个或多个为表空间定义物理存储的容器 容器可以是一个操作系统目录 具有预定大小的文件 未格式化的硬盘之类的原始设备 硬盘上的一个分区或者一个逻辑卷 Page5 SMS和DMS SMS 系统管理的空间 System ManagedSpace 在这里 由操作系统的文件系统管理器分配和管理空间 在DB29之前 如果不带任何参数创建数据库或表空间 就会导致所有表空间作为SMS对象创建 DMS 数据库管理的空间 Database ManagedSpace 在这里 由数据库管理程序控制存储空间 这种表空间本质上是一种特殊用途的文件系统实现 可以最好地满足数据库管理程序的需要 Page6 SMS与DMS比较 Page7 默认的数据库 createdatabase命令创建三个默认的表空间 SYSCATSPACE用于系统编目表 SYSCATSPACE不能被删除 TEMPSPACE1用于系统创建的临时表 当创建了另一个临时表空间时 可删除TEMPSPACE1表空间 USERSPACE1用于用户创建对象的默认表空间 当创建了另一个用户创建的表空间时 可删除USERSPACE1表空间 Page8 DB2内置数据类型 Page9 数字型 整数 Integer SMALLINT INTEGER和BIGINT用于存储整型数字 SMALLINT可以用2个字节存储从 32768到32767的整数 INTEGER可以用4个字节存储从 2147483648到2147483647的整数 BIGINT可以用8个字节存储从 9223372036854775808到9223372036854775807的整数 小数 Decimal DECIMAL用于存储带小数部分的数字 要定义这种数据类型 必须指定精度 p 指明数字的总位数 和小数位 s 指明小数点右边的数字位数 数据库中所需的存储量取决于精度 可以用公式p 2 1计算 因此 DECIMAL 10 2 需要10 2 1或6个字节 浮点数 Floatingpoint REAL和DOUBLE用于存储数的近似值 定义REAL时可将长度定义在1到24之间 而且需要4个字节来存储 可将DOUBLE的位数长度定义在25到53之间 而且需要8个字节来存储 FLOAT可用作REAL或DOUBLE同义词 Page10 字符串型 单字节字符串CHAR CHAR或CHARACTER用于存储定长字符串 最多254个字节 VARCHAR VARCHAR用于存储变长字符串 VARCHAR列的最大长度为32672个字节 在数据库中 VARCHAR数据只占用必需的空间 双字节字符串GRAPHIC GRAPHIC用于存储定长双字节字符串 GRAPHIC列的最大长度是127个字符 VARGRAPHIC VARGRAPHIC用于存储变长双字节字符串 VARGRAPHIC列的最大长度是16336个字符 Page11 日期时间型 DATETIMETIMESTAMP TIMESTAMP数据类型只有一种格式YYYY MM DD HH MM SS NNNNNN Page12 DB2数据组织方案 数据分区特性 DataPartitioningFeature DPF 数据库分区用于将数据均匀地分布在数据库分区上 以启用查询内并行性并平衡每个数据库分区上的负载 分布键 distributionkey CREATEtable DISTRIBUTEBYHASH distributionkey 多维聚类 MultidimensionalClustering MDC 多维集群用于对同一表扩展数据块中在多个维上具有类似值的行进行分组CREATEtable ORGANIZEBYDIMENSION distributionkey 表分区 TablePartitioning TP 表分区用于对同一个数据分区中具有类似单维值的行进行分组分区键 partitionkey CREATEtable PARTITIONBYRANGE partitionkey PARTp1 PARTP2 Page13 数据库分区 Databasepartitioning 一种数据组织方案 即 表数据根据该表中的一个或多个分布键列中的散列值以及使用的数据库分区的分发映射分布到多个数据库分区中 给定表的数据根据CREATETABLE语句的DISTRIBUTEBYHASH子句中指定的内容进行分布 每个数据库分区有它自己的一组计算资源 包括CPU和存储 在DPF环境中 根据CREATETABLE语句中指定的分区键 表中的每个行被分布到一个分区上 当处理一个查询时 请求也相应地被划分成多个部分 以便让各个数据库分区各自处理其负责的那些行 实际上 DPF是一种可伸缩特性 DPF可以通过增加数据库分区来提高处理能力 因此 随着表的增长 仍然可以保持较高的查询性能 这种能力常常被称作使用DB2的无共享架构提供线性的可伸缩性 Page14 多维集群 MultidimensionalClustering 一个表 其数据按ORGANIZEBYDIMENSIONS子句中指定的一个或多个维或者集群键以物理方式组织成块 MDC是在DB2Version8中引入的 通过它可以在物理上将在多个维上具有类似值的行聚合在一起放在磁盘上 这种聚合能为常见分析性查询提供高效的I O 例如 对于Product car Region East 并且SaleMonthYear Jan09的所有行 可以将它们存储在相同的存储位置 即所谓的块 block 在CREATEtable语句中定义维的时候 就为每种值的组合预留了存储空间 实际上 MDC是一个能最大化查询性能的特性 对于数据仓库中常用的查询更是如此 这包括需要根据几个列中的值的组合选择行的查询 例如 DATEisbetween Jan 01 2004 and Feb 01 2005 ANDCountryISNOT UnitedStates ANDProduct CellPhones Page15 表分区 Tablepartitioning 一种数据组织方案 即 表数据根据该表中一个或多个分区列中的值分布到多个数据分区中 根据CREATETABLE语句的PARTITIONBYRANGE子句中指定的内容 给定表的数据被划分到多个存储对象中 这些存储对象可以在不同的表空间中 TP支持按照一个维将一个表分区成多个数据分区 一种常见的设计是为每个月的数据创建一个数据分区 通过TP 用户可以手动地定义每个数据分区 包括将被包括到那个分区的值的范围 每个TP分区是一个单独的数据库对象 不同于其他作为单个数据库对象的表 因此 TP支持为TP表附加和卸除数据分区 卸除的分区成为一个常规表 而且 必要时可以将每个数据分区放在它自己的表空间中 实际上 TP不同于其他特性的优势在于为表添加或删除大量数据这个方面 即转入和转出 Page16 DB2特性简要对比 Page17 事实表拥有适合使用DB2分区特性的特征 Page18 表设计的经验法则 Page19 经验分享 DPF 设计表结构时一定要设置分布键 且优先选择变化量比较大的字段 切忌选择时间 地域字段 如果是事实表 可以选择两到三个字段结合做为分布键 有主键时 主键要包含在分布键内 Page20 DB2权限 SYSADM具有管理实例的完整特权 还可访问底层数据库中的数据 SYSCTRL和SYSMAINT拥有管理实例 其数据库和数据库对象的特定特权 这些权限不含访问数据的权限 例如 像 SELECT FROMmytable 或 DELETEFROMmytable 这样的语句是不允许的 DBADM拥有在特定数据库上执行管理任务的特权 还具有数据库的完整数据访问权限 LOAD拥有对指定数据库运行加载实用工具的特权 Page21 DB2权限功能 Page22 数据移动实用程序 EXPORTIMPORTLOAD支持的文件格式非定界的或固定长度的ASCII ASC 顾名思义 这种文件类型包含固定长度的ASCII数据 这些数据与列数据相对应 每个ASC文件都是一个ASCII字符流 其中包含按行和列排列的数据值 数据库中的行以行分界符分隔开来 这里假定行分界符就是换行字符 定界的ASCII DEL 这种文件格式常被各种数据库管理器用于数据交换 它包含ASCII数据 并使用特殊的字符分界符来分隔列值 数据流中的行则以作为行分界符的换行字符分隔开来 PC版本的IntegratedExchangeFormat PC IXF 这是数据库表的结构化描述 这种文件格式不仅可以用于导入数据 还可以用于创建目标数据库中之前不存在的表 工作表格式 WSF 存储在这种格式中的数据可以在工作表中解释 这种格式只能用于导出和导入 游标 游标是在查询中声明的 它只能用作一个装载操作的输入 Page23 EXPORT EXPORTTOfile nameOFfile typeMODIFIEDBYfile type modifiersMESSAGESmessage fileselect statementfile type modifiers 文件类型修饰符chardelx指定x作为新的单字符字符串分界符 默认值是一个双引号 coldelx指定x作为新的单字符列分界符 默认值是一个逗号 codepage x指定x 一个ASCII字符串 作为输出数据的新的码页 codepage 在导出操作期间 字符数据被从应用程序码页转换成这种码页 timestampformat x x是源表中时间戳的格式 Page24 IMPORT IMPORTFROMfile nameOFfile typeMESSAGESmessage file INSERT INSERT UPDATE REPLACE REPLACE CREATE CREATE INTOtarget table nameINSERT 选项将导入的数据插入表中 目标表必须已经存在 INSERT UPDATE 将数据插入表中 或者更新表中具有匹配主键的行 目标表必须已经存在 并且定义了一个主键 REPLACE 选项删除所有已有的数据 并将导入的数据插入到一个已有的目标表中 使用REPLACE CREATE选项时 如果目标表已经存在 则导入实用程序删除已有的数据 并插入新的数据 就像REPLACE选项那样 如果目标表还没有定义 那么首先创建这个表以及它的相关索引 然后再导入数据 正如您可能想像的那样 输入文件必须是PC IXF格式的文件 因为那种格式包含对导出表的结构化描述 如果目标表是被一个外键引用的一个父表 那么就不能使用REPLACE CREATE CREATE 选项首先创建目标表和它的索引 然后将数据导入到新表中 该选项惟一支持的文件格式是PC IXF 还可以指定新表所在表空间的名称 Page25 LOAD LOADFROMinput sourceOFinput typeMESSAGESmessage file INSERT REPLACE TERMINATE RESTART INTOtarget tablenameINSERT模式将输入数据添加到一个表中 而不更改已有的表数据 REPLACE模式删除表中所有已有的数据 然后用输入数据填充这个表 TERMINATE模式终止装载操作 并回滚到它开始时所在的时间点 一个例外是 如果指定了REPLACE模式 那么表将被删节 RESTART模式用于重新开始之前被中断的装载命令 它将自动从最近的一致点继续 要使用这个模式 可以指定与前一个LOAD命令相同的选项 但是这一次加上RESTART 它使实用程序可以发现在装载处理中生成的所有需要的临时表 因此 千万不要手动删除装载命令所生成的任何临时文件 除非您确信不再需要这些临时文件 一旦装载成功完成 这些临时文件将自动被删除 默认情况下 这些临时文件是在当前的工作目录中创建的 也可以使用TEMPFILESPATH选项指定存放临时文件的目录 Page26 IMPORT与LOAD Page27 数据维护实用程序 数据物理重组常用于SQL效率下降 挂死等情况可根据应用环境设置为定时任务 Page28 存储过程 CREATEPROCEDURE procedure name V IN parameter name data type OUT INOUT SPECIFIC specific name DYNAMICRESULTSETS0 MODIFIESSQLDATA DYNAMICRESULTSETS integer CONTAINSSQL READSSQLDATA NOTDETERMINISTIC CALLEDONNULLINPUT DETERMINISTIC LANGUAGESQL EXTERNALACTION NOEXTERNALACTION SQL procedure body SQL procedure body SQL procedure statement Page29 主要组成部分 PARAMETERTYPE 有三种参数类型 IN用于输入参数 对这些参数的更改不会传回到调用该过程的应用程序 OUT用于输出参数 对这些参数的更改会传回到调用该过程的应用程序 INOUT用于输入和输出 对这些参数的更改以及它们的输入值会影响存储过程和调用该过程的应用程序 SPECIFIC 为了在内部标识一个过程而指定的一个特定名称 如果没有指定名称 则DB2会赋予一个系统生成的值 对于重载存储过程 这一点特别有用 DYNAMICRESULTSETS 指定保持打开并传回给调用程序或应用程序的结果集的数量 DETERMINISTIC 指定对于给定的参数值 该过程是否总是返回相同的结果 LANGUAGE SQL过程仅支持DB2SQLPL语言 和用户定义函数一样 存储过程有三种访问数据库的模式 这些模式决定了存储过程如何与数据库交互 以及使用什么类型的SQL CONTAINSSQL 表明存储过程可以执行既不读取也不修改SQL数据的SQL语句 READSSQL 表明存储过程中可以包括某些不修改SQL数据的SQL语句 MODIFIESSQL 表明存储过程可以执行除了存储过程中不支持的SQL语句之外的任何SQL语句 Page30 创建SQL存储过程 在命令行中可以这样执行包含存储过程DLL的脚本 db2 td v fmysprocs db2在调用包含SQL语句的脚本时 有以下几种不同的选项 t 表明使用 表示一行的结束 这样一来 在脚本中 一个SQL语句可以写成多行 v 打开verbose模式 在该模式下 脚本输出中会再次显示所有脚本命令 这样便于发现失败的命令 当脚本文件较大时 如果没有打开verbose模式 那么调试起来非常花时间 f 指定输入文件的名称 td 指定使用跟在这个标志后面的字符 而不是一个分号 来界定命令的结束 Page31 异常和条件处理 查看报错信息SQLCODE xxx SQLSTATE sqlnnnnn DECLARECONTINUEHANDLERFORNOTFOUNDDECLARECONTINUEHANDLERFORSQLEXCEPTIONDECLARECONTINUEHANDLERFORSQLWARNI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省日照市莒县联考2024-2025学年六年级下学期期末检测数学试题(无答案)
- 北师大版五年级上册数学第一单元 小数除法 检测卷(无答案)
- 财富广场租房合同范本
- 网贷还款合同范本
- 保安公司试用合同范本
- 钢构基础合同范本
- 冲压厂加工合同范本
- 木材加工企业合同范本
- 入股保本经营合同范本
- 装饰拆除施工合同范本
- 结核病筛查结果报告单
- GB/T 18051-2000潜油电泵振动试验方法
- 广告投放“冷启动期”及“ocpm起量”的底层逻辑
- 小学音乐《村晚》优质课件设计
- 竞选团支书幽默大气简短六篇
- 知名投资机构和投资人联系方式汇总
- (完整word版)教育部发布《3-6岁儿童学习与发展指南》(全文)
- 混凝土监理旁站记录
- 部门会签单模板
- 县城市管理领域集中行使行政处罚权工作衔接规范(试行)
- 结肠息肉的护理查房精编ppt
评论
0/150
提交评论