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