2015-04-02 245 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