2015-04-02 196 views
0

有没有办法让reorg自动重建sybase表?我们可以用作业调度程序或脚本来做到吗?Sybase ASE 15.7 reorg rebuild

+0

这是一个DBA话题,所以它可能应该迁移到dba.stackexchange.com – 2015-04-03 14:10:26

回答

0

Reorgs可以使用Job Scheduler或通过批处理/ shell脚本运行。您将不得不以编程方式生成希望重新组织的表格列表,因为没有自动执行此操作的命令。

有两种方法,一种是使用'optdiag'命令来检查表健康状况,并使用该信息动态地决定要重组的表。查看我的回答this question更多关于'optdiag'的信息

另一种方法就是重组所有的东西,我只推荐用于小型数据库。脚本可以生成以下SQL 首先要做到这一点,数据库选项“进入/ 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