转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
Sybase ASE表分区的使用         ★★★★

Sybase ASE表分区的使用

作者:闵涛 文章来源:闵涛的学习笔记 点击数:791 更新时间:2009/4/22 22:54:46

表分区是目前各主流数据库都提供的常用技术,各大数据库基于不同的体系结构提供了各具特色的实现,如果能合理使用这种技术,将为系统性能的提升带来意想不到的效果,本文以Sybase ASE数据库为例来说明这种技术的使用方法。

在Sybase ASE中,未分区的不带聚簇索引的表有一个双向的数据库页链链接。在插入数据行时,将查找并锁定页链的最后一页,如果最后一页空间用尽,Sybase ASE将分配新的一页,如果对表进行大量频繁的数据插入,将引起对最后一页锁资源的竞争,如果一个事务(Transaction)正在使用最后一页的排它锁,那么其他向同一张表插入数据的事务必须等待,直到该事务结束释放资源,解除排它锁。

Sybase ASE从11.5开始提供新的特性表分区。表分区将产生附加的页链,每个页链有自己的最后一页,这样插入操作可以获得多个最后一页,实现并发操作,从而提高数据库插入性能。若包含表的段分布在多个物理设备上,表分区通过降低服务器从高速缓存向磁盘进行数据刷新的IO冲突而提高数据插入性能。对频繁地追加数据到表中或进行大块数据的拷入、拷出操作,采用表分区技术,将能极大地提升系统性能。

划分表分区的操作步骤如下:

1. 在同一数据库设备上划分表分区时,先创建表,再用alter table 的 partition 语句划分表分区。

create table opt_plnexrcd ( per_date datetime, per_sndstn char(4), ... )

alter table opt_plnexrcd partition 5

2. 在多个数据库设备上划分表分区时,先建一个数据库段在多个数据库上,然后再将表建在该段上,最后对表分区。

sp_addsegment seg1, oil, oil_data1

sp_extendsement seg1, oil, oil_data2

...

sp_extendsement seg1, oil, oil_data5

create table opt_plnexrcd ( per_date datetime, per_sndstn char(4), ... ) on seg1

或建完表后执行sp_placeobject

sp_placeobject seg1, opt_plnexrcd

最后对表分区

alter table opt_plnexrcd partition 5

如果表分为5个分区,表所在的段又分跨5个数据库设备,那么每个分区将分别映射到该段所在的5个数据库设备上。一般划分表分区的原则是:表分区数等于或大于表所在段分跨的数据库设备数。但要注意有些表不能分区,它们是系统表、正在使用的表、临时表和有聚簇索引的表。

Sybase ASE使用保存在分区控制页上的统计数据,来评测基于分区的并行扫描方式,以挑选最优执行计划。如果表中数据在多个分区上是分布均衡的,表分区统计数据是精确的,那么扫描效率就比较高,并行处理就有很好的性能,所以表分区的维护对于并行查询处理十分重要。Sybase ASE的异常停止和某些情况下的事务回退都可能造成分区统计数据不精确,Sybase ASE提供了两个系统函数data_pgs和ptn_data_pgs,用它们可分别计算数据页面数量。如果两者不相同,说明分区统计不精确,需要维护,Sybase ASE 提供如下命令来更新分区和页面统计数据:

1.更新每个分区的页面统计数据:

update partition statistics

2.更新表上索引的分布页面,同时更新各个表分区的控制页面的统计数据:

update all statistics table_name

3.显示表分区的当前信息:

sp_helpartition

如果对分区的表进行了大量的插入、更新和删除后,数据有可能分布不均匀,使用BCP加载大量数据后,也可能会出现数据分布不均匀,此外一些其他原因也可能导致数据分布不均匀。平衡分区数据有两种方法:一是对有数据的表建聚簇索引,二是使用并行块拷贝,指定数据加载到某个分区的方法,Sybase ASE 新的BCP允许用户指定分区,把数据加载到指定的分区中。

 


[办公软件]SYBASE数据库用户管理基本概念  [办公软件]关于SYBASE的自动启动
[办公软件]SYBASE事务  [办公软件]SYBASE dbcc
[C语言系列]SQL Server到SYBASE连接服务器的实现  [其他]SQLServer到SYBASE连接服务器的实现
[SyBase]四川移动BOSS系统Sybase解决方案  [SyBase]中国联通CDMA计费系统工程的Sybase解决方案
[SyBase]Sybase ASE12.5智能管理《北京青年报》新闻采编系…  [SyBase]Sybase EA Server 在网上税务系统中的应用
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台