Sybase ASE default/log/tempdb space

在使用Sybase进行PL/SQL开发时,经常会遇到default/log/tempdb空间不足的问题。这涉及到Sybase的表空间结构问题。

Sybase的一个数据库中,一般分为日志表空间,数据表空间(一般为default表空间)。日志表空间用来存放一个事物中的变更部分,以备undo操作。因此如果一个操作(比如delete操作)更改了大量的数据以至于这些变更的数据超过了可用的日志表空间,Sybase会抛出警告“log segment is full...”,当前数据库进程会被挂起直到有了空闲的日志空间。针对这种情况,可以采用分批操作来解决。数据表空间用来存放表数据与索引数据,当其被用尽时,Sybase会抛出异常“Default segment is full...”,当前数据库进程会异常退出。

安装Sybase时,有一个数据库必须安装,它就是tempdb(临时数据库),用来存放数据库操作中生成的临时数据 - 比如多表连接中两个表连接后的中间结果。可以创建多个tempdb,分别给不同的用户或进程使用。可以通过系统储存过程sp_tempdb将特定的进程或者某一个用户的操作生成的临时数据绑定到某一个tempd上。绑定后的信息存放在表master..sysattributes中。若一个数据库进程产生大量的临时数据(比如多表连接,若表连接过多且数据量较大),以至于临时数据超过临时数据库的大小,则该数据库进程会异常退出并抛出异常信息“tempdb is full...”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值