Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91544656
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544657
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544658
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544659
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544660
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544661
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544662
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544663
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544654
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544665
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544666
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544667
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544668
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544669
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544670
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544671
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544672
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544673
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544674
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544675
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544676
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544677
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544678
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544669
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544680
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544681
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544682
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544684
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544685
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544686
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544687
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544688
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544689
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544690
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544691
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544692
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544693
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544684
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544695
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544696
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544697
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544698
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544699
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544700
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544701
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544702
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544703
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544704
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544705
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544706
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544707
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据(2)-sdccf-ChinaUnix博客
  • 博客访问: 91544708
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:52:19

developerWorks



什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150833) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150832) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150830) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150829) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150828) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150827) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150826) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150824) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150823) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150822) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150821) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150820) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150819) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150818) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150816) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150815) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150814) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150813) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150812) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150811) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150810) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150809) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150808) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150807) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150804) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150802) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150801) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150799) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150798) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150797) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150796) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150793) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150792) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150791) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150790) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150789) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150788) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150786) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150784) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


什么组成了 DB2 数据库?

DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。

从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:

  • 表、视图、索引、模式
  • 锁、触发器、存储过程、包
  • 缓冲池、日志文件、表空间

这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。

DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。如何创建数据库并分配它所需的磁盘存储?要正确地回答这个问题,需要了解数据库中的基本对象以及它们如何映射到物理磁盘存储。

DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在 中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性

表本身放在表空间 中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。

容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。下图说明了所有这些对象之间的关系。

DB2 存储模型

尽管表是表空间中的基本对象,但是 DBA 必须了解 DB2 系统中的其他对象以及它们如何映射到表空间。







表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。

表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。

索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行 SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!

长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。

另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。

有了关于这些对象类型的知识,现在就可以决定需要分配的空间类型了。







表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:

  • 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。

  • 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。

  • DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护(见后面的一节),在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。

SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。

那么,应该选择哪种表空间设计呢?







尽管下面的表并不全面,但是它包含在 DMS、自动存储和 SMS 表空间之间进行选择时要考虑的一些因素。

特性 SMS DMS 自动存储
是否分段(Striping)?
默认类型 Version 8 Version 9
对象管理 操作系统 DB2 DB2
空间分配 按需增长/收缩 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 预先分配;可以自动增长。
管理的简便性 最好;很少需要调优,甚至不需要 好,但是需要一些调优(例如, EXTENTSIZE PREFETCHSIZE 最好;很少需要调优,甚至不需要
性能 非常好 最好;可通过利用原始容器多获得 5% 到 10% 的收益 最好;但是,可以不使用原始容器
表空间最大大小 64GB(4K 页面) 2TB(4K 页面) 2TB(4K 页面)

除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。







DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。

启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。

下面的表总结了管理非自动存储和自动存储之间的一些差异。

特性 非自动存储 自动存储
容器的创建 必须在创建表空间时显式地提供容器。 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整 在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。 在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小 不能使用 INITIALSIZE 子句指定表空间的初始大小。 使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改 可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。 不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性 可以使用重定向的恢复操作重新定义与表空间相关联的容器。 不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。







我们在本节讨论了许多内容。我们来总结一下已经学到的 DB2 数据库知识。

  • 数据库是一个对象集合,对象包括表、索引、视图和长对象。
  • 这些对象存储在表空间中,表空间由容器组成。
  • 表空间可以由操作系统管理(SMS),也可以由 DB2 管理(DMS,自动存储)。
  • 应该主要根据性能和维护因素决定要使用的表空间类型。

既然已经掌握了不同类型的表空间,就该创建第一个数据库了。下一节将讲解如何创建数据库。

阅读(150782) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~