Sybase

Sybase ASE 15“reorg rebuild”修復了性能問題——為什麼以及如何判斷何時需要它?

  • October 9, 2014

我在 Sybase ASE 15 伺服器中有一個包含幾百萬行的表,執行速度非常慢,即使是基本查詢也需要 5 分鐘才能執行,例如:

SELECT COUNT(1) FROM TABLENAME;

在Google搜尋問題後,我發現在表上執行重組重建解決了這個問題。

有沒有辦法確定表何時需要重新組織重建,或者何時執行重新組織重建會導致性能提升?

是否應該定期執行重組重建?如果有,在什麼情況下?

重組重建修復的降級的根本原因是什麼?可以避免嗎?

當一個表第一次被索引時,尤其是使用聚集索引時,記錄是有序的,並且有最少數量的索引頁來查找每條記錄。隨著更新、插入和刪除的發生,索引頁的數量會增加。隨著時間的推移,這將影響查詢性能。建議 dba 定期執行 reorgs 以收集垃圾、壓縮數據庫和壓縮索引頁。reorgs 的缺點是,在 15.7 之前,它們會阻止對錶的訪問,因此通常必須在非工作時間執行。

1 - 根本原因是什麼?

數據庫中的插入/更新/刪除活動會創建額外的數據庫頁面和索引頁面。查詢必須讀取的頁面越多以獲取它正在尋找的數據,查詢所需的時間就越長。

2 - 是否應該定期執行 reogs?

大概。靜態的或很少更改的表很少需要它,但隨著表上活動的增加,重組的需求也會增加。

我應該如何確定何時執行?

這取決於您所處的環境。重組的需要與表的插入/更新/刪除活動直接相關。您可以使用optdiag命令檢查表的健康狀況,仔細查看以下一些值: 索引頁面集群比率數據頁集群率空數據頁數空葉頁刪除的行數轉發行數索引空葉頁數

查看optidag上的Sybase 文件和reorg的 Sybase 文件,以了解如何確定何時在您的環境中執行 reorgs。

引用自:https://dba.stackexchange.com/questions/35253