祝愿大家身体健康!

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

QQ登录

只需一步,快速开始

查看: 5395|回复: 0

[参考资料] 利用段提高Sybase系统性能

[复制链接]

[参考资料] 利用段提高Sybase系统性能

[复制链接]
ehxz

主题

0

回帖

57万

积分

管理员

积分
572724
贡献
在线时间
小时
2008-7-6 12:29:53 | 显示全部楼层 |阅读模式

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

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

×
I/O的速度是影响数据库性能的一个瓶颈。在每一个数据库应用中,各个表的增长速率和存取频率往往是不一样的。通常,频繁使用的表和索引与其他大量的数据库对象一起存放在缺省的一个物理设备上,导致I/O性能较低。所以如果能把数据库中使用频率最高的表和索引放在独立的磁盘设备上,最好使用单独的磁盘控制器,就能够通过控制数据的物理存放来提高I/O性能。为了达到这一目的,SQL Server为系统管理员提供了段(segment)的机制,使得数据库对象与特定的SQL Server设备联系起来。具体来说,段是指某个特定SQL Server数据库可用的数据库设备的指定子集,从概念上讲,段是指向一个或多个数据库设备的标签。通过我们的实验表明,合理地使用段,能够有效地提高数据库的性能。下面叙述具体的操作方法。
  1.创建两个新的用户设备

  用disk init将SQL Server数据库设备名映射到物理设备,由于我们的数据库已经有两个数据库设备分别存储数据和索引,所以我们新增两个大小为200M的数据库设备分别存放关键表和关键索引。

  1> use master

  2> go

  1> disk init name=“fastdev1" physname= “/dev/rz4h"

  vdevno=6 size=102400

  2> go

  1> disk init name=“fastdev2" physname= “/dev/rz9h"

  vdevno=7 size=102400

  2>go

  2.将新数据库设备增加到应用数据库nnzxdb中

  当使用alter database把新设备fastdev1、 fastdev2分配给数据库nnzxdb时,default和system段自动被映射到新空间,所有使用 create table或create index语句的缺省形式都可以存储使用。

  1> alter database nnzxdb on fastdev1=200, fastdev2=200

  2> go

  3.将段名映射到数据库设备名,以创建新段

  为了把表和索引放在新建的设备上,需要在新设备上创建新段。

  1> use nnzxdb

  2> go

  1>sp_addsegment fastseg1,nnzxdb,fastdev1

  2>go

  1> sp_addsegment fastseg2,nnzxdb,fastdev2

  2> go

  4.改变段的范围,删除default和system段的范围以使它们不再指向新设备

  为了将新设备分配给特定的表private,并保证其他用户对象不存储在该设备上,使用sp_dropsegment缩小default和system段的范围。

  1> sp_dropsegment “default",nnzxdb,fastdev1

  2> go

  1> sp_dropsegment system,nnzxdb,fastdev1

  2> go

  1> sp_dropsegment “default",nnzxdb,fastdev2

  2> go

  1> sp_dropsegment system,nnzxdb,fastdev2

  2> go

  5.把关键表private及其索引移到新段上

  利用系统过程sp_placeobject,可以在新段上放置现有对象,但并不能从它分配的段上删除对象,它可导致该对象今后的全部磁盘分配发生在新指定的段上。也就是说,sp_placeobject只影响未来空间分配,并没有把对象从一个数据库对象移动到另一个设备上,为了完全移动一个表到新设备上,首先要删除它的聚簇索引(如果有),然后在新段上创建或重建聚簇索引。为了将表private移动到新段上,我们先删除它的聚簇索引,再在新段上给它建立一个新的聚簇索引,然后在另一个段上建立原有的非聚簇索引。这样,达到了将表、索引和日志分别放在三个物理设备上的目的。

  1> sp_placeobject fastseg1,private

  2> go

  1> drop index private.pri_idx

  2> go

  1> create clustered index pri_idx on private(unit_code) on fastseg1

  2> go

  1> create unique nonclusted index pri_index on private(id_ number) on fastseg2

  2> go

  以上是将一个表和索引从原有设备移到新设备的过程,在实验中我们把应用数据库中使用最频繁的3个表及其索引都移到了新设备上。从我们的实验效果来看,将关键表及其索引放置到单独的段以后,系统性能提高的效果是很明显的,所有相关的存取速度都大大提高了,有些原来需要5分钟才能提交的事务,现在20多秒就能够完成。
(转贴,未测试)
共享共进共赢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-5-16 08:34 , Processed in 0.040386 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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