由于Sybase是通過OAM頁、分配單元和擴展頁來管理數據的,所以對OLTP應用的Database Server會十分頻繁地進行數據刪除、插入和更新等操作,時間一長就會出現以下幾種情況:
1. 頁碎片
即本來可以存放在一個頁上的數據卻分散地存儲在多個頁上。如果這些頁存儲在不同的擴展單元上,Database Server就要訪問多個擴展單元,因此降低了系統性能。
2. 擴展單元碎片
在堆表中,當刪除數據鏈中間的記錄行時,會出現空頁。隨著空頁的累積,擴展單元的利用率也會下降,從而出現擴展單元碎片。帶cluster index的table也有可能出現擴展單元碎片。
當有擴展單元碎片存在,會出現以下問題:
(1)對表進行處理時,常常出現死鎖;
(2)利用較大的I/O操作或增加I/O緩沖區的大小也無法改變較慢的I/O速度;
(3)行操作的爭用。
3. 擴展單元遍歷
帶有cluster index的table會由于插入記錄而導致頁分裂,但當刪除記錄后,頁會獲得釋放,從而形成跨幾個擴展單元和分配單元的數據,而要訪問該數據就必須遍歷幾個擴展單元和分配單元。這將導致訪問/查詢記錄的時間大大延長,開始時數據庫的性能雖然較高,但使用一段時間后性能就會下降等問題。
實際上,數據在存儲空間上排列得越緊密有序,Database Server訪問的速度就越快,消除碎片有助于提高系統的性能和更有效地利用數據存儲空間。
新聞熱點
疑難解答