2013-03-28 36 views
1

我正在使用Sybase ASE(遷移到15.7)數據清除實用程序以供多個表/數據庫使用,以刪除大量不需要的舊數據。Sybase ASE數據清除批處理 - 設計和性能

  1. 接收到輸入表名後,自動計算出子表和刪除數據。但是,我找不到像Oracle的「Connect by .. Prior」子句那樣的分層查詢子句。有沒有其他的方式來實現這一點?
  2. 我通過以小增量循環多個事務/提交來刪除數據。刪除後,在什麼時間間隔,我應該做「reorg rebuild」?
  3. 我需要做更新統計嗎?如果必須,在更新統計數據之前我應該​​考慮什麼標準?
  4. 某些表可能被分區。從分區的角度來看,我需要考慮什麼?
  5. 我們的一些數據庫(我猜index ..?)是聚集在一起的。我對集羣沒有太多的想法。我需要從集羣的角度考慮任何事情嗎?
  6. 在處理結束時發送電子郵件。內置的電子郵件包與oracle的UTIL_SMTP類似嗎?
+0

有人可以幫我拋出一些關於這些觀點的想法嗎? – user1549605

+0

對於第1點 - 是否存在觸發器在父刪除時不自動刪除子記錄的原因? –

回答

0

現在有些要點是空白的,我會在我有機會的時候填充它們。

1 - 檢出this post on replicating this feature in Sybase ASE

2 - My post over on the dba stack covers a lot of the key points on determining when to run a reorg

3 - 由於更新的統計數據可以更快地比重新調整(這也更新的統計數據),它有時被用來幫助提高reorgs之間的性能來完成。確定何時運行它們將取決於執行清除時性能下降的速度。 sp_sysmon是一個有價值的工具,可以捕捉指標以幫助您做出決定。

4 - 分區表不應該真正影響您的清除。這是另一種可以提高刪除性能的情況,因爲數據訪問速度可能比其他配置更快。

5 - 不是。從理論上講,如果你的刪除使用了聚集索引,你的刪除應該會更快一些。聚集索引用於保持數據頁的順序,插入記錄,而不是堆積插入。

6 - 對於基於Windows的系統,可以使用xp_sendmail。對於基於* nix的系統,可使用xp_cmdshell訪問sendmail。那些Extended Stored Procedures is here的文檔。

+0

非常感謝您的投入邁克爾。 這些都非常有幫助! – user1549605