oracle数据表占用表空间过大,请教有关数据库表空间浪费太大的问题

问题:

一张数据量较大的表,当前的状态为:行数774,422,平均行长度3158 byte,占用了6778.4MB的表空间。表空间由该表单独占用,目前已使用了3903867个db block,浪费了2045253个db block。数据空间的浪费比例超过了50%。

对该表的操作主要是insert及update,update操作包括对VARCHAR2字段的修改,但是其长度不会改变。其间做过两次数据库row的成批delete,但是释放出的空间极少。

这种情况是如何产生的,应该怎样避免?

相关信息:

数据库的db block设置为2K

出现问题的表为pay_dtl,其DDL如下:

create table pay_dtl

(

dtl_sq                    number(10) not null,

batch_id                  char(7) not null,

type_cd                   char(10) not null,

sub_key1_cd               char(20) not null,

sub_key2_cd               char(20) not null,

sub_key3_cd               char(20) not null,

int_user_id               char(10) not null,

open_brh_id               char(10) not null,

acct_id                   char(19) not null,

user_nm                   char(30) not null,

curr_bal_at               number(12,2) default 0 not null,

int_base_at               number(9,3) default 0 not null,

user_id_cd                char(2) not null,

ext_user_id               char(30) not null,

int_brh_id                char(10) not null,

tot_fee_at                number(9,2) default 0 not null,

delay_at                  number(9,2) default 0 not null,

delay_cal_dt              char(8) not null,

prev_delay_at             number(9,2) default 0 not null,

act_delay_at              number(9,2) default 0 not null,

punish_at                 number(9,2) default 0 not null,

prev_punish_at            number(9,2) default 0 not null,

act_punish_at             number(9,2) default 0 not null,

pay_month_dt              char(8) not null,

account_dt                char(8) not null,

send_dt                   char(8) not null,

confirm_in                char(1) default 'N' not null,

del_in                    char(1) default 'N' not null,

frozen_in                 char(1) default 'N' not null,

receipt_prt_qt            number(1) default 0 not null,

receipt_id                char(30) not null,

open_mode_cd              char(1) not null,

txn_brh_id                char(10) not null,

txn_dt                    char(8) not null,

int_txn_seq_id            char(10) not null,

txn_sta_cd                char(1) default '0' not null,

int_reply_cd              char(2) not null,

log_txt                   varchar2(2000) not null,

misc_tx                   varchar2(1024) not null,

last_upd_opr_id           char(10) not null,

global_txn_id             char(10) not null,

last_upd_ts               date not null

)

storage(initial 512K next 1000K pctincrease 0) pctfree 5 pctused 95 tablespace dtl_dt;

目前该表已有Extents: 5521个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值