祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 6279|回复: 0

[参考资料] Sybase Adaptive Server Enterprise 15的数据分区

[复制链接]

[参考资料] Sybase Adaptive Server Enterprise 15的数据分区

[复制链接]
ehxz

主题

0

回帖

58万

积分

管理员

积分
589551
贡献
在线时间
小时
2011-6-14 17:16:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
如何恰当地使用数据分区
我们已经看到,ASE15的分区可以让数据库管理员更高效地执行必要的维护和管理任务,从而显著降低VLDB在ASE上运行的成本。我们也同样看到了分区技术如何极大地提高应用的性能,尤其是在ODSS环境中。
对表和索引进行分区非常简单。表可以在创建时或者以后随时进行更新。一旦分区后,写入表中的数据将按照设定的分区规则写盘,无论是插入、删除还是BCP导入均不例外。索引同样可以在创建时被分区,但一个已有的索引无法被分区。这需要删除索引然后利用分区进行索引重建。
数据库管理员可以在以下情况考虑使用前面提到过的三种语义分区方式:
范围分区 ——数据库管理员可以基于关键列中的数据范围指定数据在各分区上的存储位置。例如,数值1,2,3,4存储在分区1中,而5,6,7,8存储在分区2中,诸如此类。下面是利用范围分区方式基于date/time 列创建表的语法示例:
create table customer (ord_date datetime not null,
name varchar(20) not null,
address varchar(40) not null, other columns …)
partition by range (ord_date)
(ord_date1 values <= (3/31/05) on segment1,
ord_date2 values <= (6/30/05) on segment2,
ord_date3 values <= (9/30/05) on segment3
ord_date4 values <= (12/31/05) on segment4)
范围分区尤其对于那些持续更新、插入和删除,且某些字段中包含连续数据,例如用户号或订单/交易日期的表尤为有效。这样的表需要数据库管理员额外的维护和管理。这类表常用于决策支持系统,最适合使用范围分区。当交易仅仅发生在一个分区上的时候,数据库管理操作和DSS查询还可以访问其它分区。与此同时,数据库管理员必须保证交易活动的分区的分布统计值时刻更新,这样查询处理引擎就可以使用新的数据,这一点是非常重要的。正像我们所见的,当操作仅仅运行在一个单一分区上时,更新统计的时间是非常短的。
列表分区 —— 列表分区类似于范围分区,但这里实际被写入分区的数据是确定的。前文中的例子就是在包含有全球各地区数据的“地区”关键字段上建立列表分区。该列数据有没有排序,以及数据在分区上存储的顺序,都不影响列表分区存储数据。下面是利用列表分区方式创建表的语法示例:
create table nation (nationkey integer not null,name char(25) not null,
regionkey varchar(30) not null,comment varchar(152) not null)
on segment 1
partition by list (n_regionkey)
(region1 values ('Americas'),
region2 values ('Asia'),
region3 values ('Europe'),
region4 values ('Australia', 'Other') )
哈希分区 ——这种数据分区方式是根据在指定列上利用内部哈希算法计算的结果来决定数据存储到哪一个分区。这里不需要指定列表或数值的范围。如果列键包含唯一数据,或者数据重复度极小,哈希分区将在其所有分区上平衡数据存储。然而,如果有大量重复数值,分区将会“倾斜”,一些分区上的数据可能会比其它分区多。
哈希分区在要为大表建立很多分区,或者关键列中的数据没有排序的情况下尤为有用。它同时还可以配合查询处理引擎使得查询工作更为有效。
create table lineitem ( l_orderkey integer not null, l_partkey integer not null,
l_suppkey integer not null, l_linenumber integer not null, l_quantity double not
null, l_extendedprice double not null, other columns …)
partition by hash (l_orderkey, l_linenumber)
(litem_hash1 on segment1,
litem_hash2 on segment2,
litem_hash3 on segment3,
litem_hash4 on segment4 )
结论
作为ASE15一系列新特性中最受人瞩目的焦点,数据分区使得VLDB的管理和维护工作更加简易,同时显著提高了ASE的性能。更简单而有效的维护和管理降低了在ASE上运行VLDB的成本,同时在混合工作负载环境中的应用性能也得到了极大提升。
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-12-4 16:21 , Processed in 0.056086 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表