sybase数据库优化(也可用作更改字符集问题的数据处理方法)

本文介绍了Sybase数据库碎片整理的操作步骤。首先备份数据库,接着创建bcp out脚本导出数据,再创建truncate table脚本截断数据库,之后创建bcp in脚本导入数据,最后更新数据库状态,用update statistics确保索引统计信息对应表数据,完成碎片整理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 备份数据库

  为防止在数据库碎片整理过程中出现不可预见的问题,有必要先备份数据库。

2. 创建bcp out脚本并导出数据

  • 创建包含下列SQL语句的文件:
    cre_bcp_out.sql
    select “bcp” + name + “out ./” + name + “_out.txt -Udboname -Pdbopwd -Ssys_name -c”
    from sysobjects where type = ‘U’
    order by name
    go
  • isql -Udboname -Pdbopwd -Ssystemname < cre_bcp_out. sql > b_out
  • 编辑输出文件,去掉文件第一行和最后两行无关的字符:vi b_out
  • 执行脚本,将数据库的数据导出到文本文件:sh b_out

3. 创建truncate table脚本并截断数据库

  • 创建包含下列SQL语句的文件:
    cre_trunc_out.sql
    select “truncate table” + name from sysobjects where type = ‘U’
    order by name
    go
  • isql -Udboname -Pdbopwd -Ssystemname < cre_ trunc_out. sql > trunc_out. sql
  • 编辑输出文件,去掉文件第一行和最后两行无关的字符,并在最后一行加入 go构成完整的SQL语句:vi trunc_out
  • 执行以下语句,清空数据库的数据:
    isql -Udboname -Pdbopwd < trunc_out. sql

4. 创建bcp in脚本并导入数据

  • 创建包含下列SQL语句的文件:
    cre_bcp_in. sql
    select “bcp” + name + “in ./” + name + “_out.txt -Udboname -Pdbopwd -Ssys_name -c”from sysobjects where type = ‘U’
    order by name
    go
  • isql -Udboname -Pdbopwd -Ssystemname < cre_ bcp_in. sql > b_in
  • 编辑输出文件,去掉文件第一行和最后两行无关的字符:vi b_in
  • 从文本中导入数据:sh b_in

5. 更新数据库状态

  Sybase不自动维护索引的统计信息,当用truncate table截断数据库时,索引并没有改变,所以必须用update statistics来确保索引的统计信息对应当前表数据的统计。

  • 创建包含下列SQL语句的文件:
    cre_upd_st. sql
    select “update statistics” + name from sysobjects where type = “U” order by name
    go
  • isql -Udboname -Pdbopasswd -Ssystemname < cre_upd_st. sql > upd_st. sql
  • 编辑输出文件,去掉文件第一行和最后两行无关的字符,在最后一行加入 go构成完整的SQL语句:
    vi upd_st. sql
  • 更新数据库状态:
    isql -Udboname -Pdbopasswd -Ssystemname < upd_st. sql
    至此,基本上完成了数据库用户表的碎片整理工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值