【发布时间】:2015-04-02 08:02:30
【问题描述】:
有没有办法自动重新组织重建 sybase 表?我们可以使用作业调度程序或脚本来完成吗?
【问题讨论】:
-
这是一个DBA主题,所以应该迁移到dba.stackexchange.com
有没有办法自动重新组织重建 sybase 表?我们可以使用作业调度程序或脚本来完成吗?
【问题讨论】:
可以使用 Job Scheduler 或通过批处理/shell 脚本运行重组。您必须以编程方式生成您希望重组的表列表,因为没有自动执行此操作的命令。
有几种方法,一种是使用“optdiag”命令检查表的健康状况,并使用该信息动态决定要重组哪些表。查看我对this question 的回答,了解有关“optdiag”的更多信息
另一种方法是重组所有内容,我只推荐用于小型数据库。可以使用以下 SQL 生成一个脚本来执行此操作
首先,数据库选项“into/bulkcopy/pllsort”必须设置为true才能运行reorg rebuild
use master
go
sp_dboptions <dbname>, "select into/bulkcopy/pllsort", true
go
下面会生成一个脚本,然后可以在服务器上运行该脚本来重建表。根据您的生成方式,如果文件的第一行包含列标题,您可能必须删除它。
use <DBNME>
go
set nocount on
select "reorg rebuild "+ name + char(10) + "go"
from sysobjects
where name not like "sys%" //excludes system tables
go
【讨论】: