祝愿大家身体健康!

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

QQ登录

只需一步,快速开始

查看: 3052|回复: 0

[转帖]Sybase数据库中创建与使用段

[复制链接]

[转帖]Sybase数据库中创建与使用段

[复制链接]
ehxz

主题

0

回帖

58万

积分

管理员

积分
588551
贡献
在线时间
小时
2007-6-22 15:11:52 | 显示全部楼层 |阅读模式

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

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

×

段(Segment)是数据库设备上磁盘空间的逻辑组合,它可以看作是指向一个或多个数据库设备的标签。利用段可以控制数据库对象的存放位置,可以将数据库对象分类存放到不同的段上。
设备与段之间的关系:多对多关系。一个设备上可以创建多个段,一个段也可以覆盖多个设备。
1.使用段的优点
a. 控制空间的使用:放在一个段上的数据库对象不会在段外增长;
b. 提高性能:处于不同磁盘设备上的段可以并行地读写;
d.处理大表:利用段,可以将一个大表分段放在独立的物理设备上,如将一个表的文本或图象数据存储另外的一个段上。
2.创建段
sp_addsegment 段名,数据库名,设备名
说明:在指定设备上为某个数据库创建一个段。
●扩展段的范围
sp_exetendsegment 段名,数据库名,设备名
说明:设备在数据库中必须可用,否则需要扩展数据库到新的设备上;指定的段、数据库、设备必须存在。
●缩小段的范围:
sp_dropsegment 段名,数据库名,设备名
说明:带第三个参数时,该命令并不删除段,只是段的范围缩小了。若某个段包含了别的段要独占的设备,就需要缩小该段的范围。
3.使用段
●两个数据库放在同一设备的不同段上,它们不会相互影响;
●当数据库增加空间时,增加的空间会自动分配到它的每一个段上;
例如:alter database my_db
on data_dev=50
在data_dev设备上为my_db增加50M空间,这50M空间被自动分配到数据库的每一个段中。注意:如果data_dev对于数据库是新的,system和default段会自动扩展到该设备上。
可以使用alter database命令的log on选项分配附加的日志空间。
(1)在段中创建新对象
create table 表名(列名 数据类型)[on 段名]
create [clusterd|non clusterd]index 索引名 on 表名(列名)[on 段名]
注意:按照定义,聚集索引总是与表放在同一段上。
(2)在段上放置现有对象
sp_placeobject 段名,对象名
注意:该命令并不把对象从一个数据库设备移动到另一设备上,它只影响未来的空间分配。
可以将某个大表的text字段或image字段放置到一个单独的设备段上。
Sp_placeobject 段名,“表名.字段名”
(3)在段上创建聚集索引
按照定义,聚集索引总是与表放在同一段上。如果在一个段上创建表,而在另一个段上创建聚集索引,则其表与其索引一起移动,整个表将离开创建表的段而迁移到创建聚集索引的段中。通过这种方法,可以快速而方便地把指定表移动到指定的设备上。
(4)系统预定义段
当用户创建一个数据库时,Sybase自动创建三个预定义的段:
system段:存放系统表(包括所有用户对象的定义)
default段:存放用户创建的各种对象,除非它们明显地指定到不同的段上。
Logsegment段:存放数据库的事务日志。
(5)删除段
删除段是缩小段范围的一个特例:
sp_dropsegment 段名,数据库名
4.使用阈值管理
阈值(Threshold)管理是一种自动监控数据库自由空间的机制,Sybase的阈值管理允许用户为数据库的某个段上的自由空间设置阈值并定义相应的存储过程。当该段上的自由空间低于所置头阈值时,Sybase自动运行相应的存储过程。
在一个实际运行的数据库中,日志的增长速度一般要高于数据的增长,一旦日志段的自由空间用尽,SQL Server在默认情况下会挂起所有数据操纵事务,客户端应用程序停止执行。
在每个分离的段上存储其事务日志的数据库均自动设置有最后机会阈值(Last Chance Threshold),其阈值是备份事务日志所需的自由空间的估计值。当该段上的自由空间低于所置阈值时,Sybase自动运行名为sp_thresholdaction的存储过程。该过程的名称及参数由系统预定义,内容由用户编写。下面是一个简单示例。
CREATE PROCEDURE dbo.sp_thresholdaction
/*本过程参数通过位置传递,名称可以改变,但其定义及顺序不能变*/
@db_name varchar(30),/*数据库名*/
@seg_name varchar(30),/*段名*/
@space_lefe int,/*剩余自由空间*/
@status int/*最后机会阈值,其值为1,其它阈值,其值为0*/
AS
BEGIN
/*用户编写过程内容*/
dump transaction @db_name
with truncate_only

END

[此贴子已经被作者于2007-6-22 15:20:50编辑过]
共享共进共赢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-11-22 15:30 , Processed in 0.028636 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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