文章編號: 924947 - 上次校閱: 2007年11月20日 - 版次: 2.5 SQL Server 會大幅增加未使用的空間,讓某些資料表
在此頁中結論本文將告訴您,的案例,在其中 Microsoft SQL Server 會大幅增加未使用的空間,讓某些資料表。然後,本文討論下列兩種方法,您可以用以解決這個問題:
徵狀請考慮在 SQL Server 下列案例:
摺疊此表格
附註您可以在 SQL Server 2005 中查詢 sys.dm_db_partition_stats 類別目錄檢視,以取得使用的空間資訊及保留的資訊。 在 SQL Server 2000 中您可以查詢 sysindexes 資料表來取得這項資訊。 發生的原因SQL Server 會維護兩種類型的空間配置在記憶體中的快取資訊: 配置快取和可用空間快取。配置快取會包含範圍識別碼的特定索引的最近配置範圍。可用空間快取會包含最近配置的頁面,從這些配置範圍中的頁碼。它也包含之網頁的狀態。如果這些快取會變成空白,會發生 < 徵狀 > 一節所述的問題。 這些快取變成空原因如下:
其他可行方案如果要解決這個問題而定,使用 [下列的其中一個方法]:
將堆積資料表轉換成使用叢集的索引的資料表附註您將堆積資料表轉換成使用叢集的索引的資料表之後您就可以執行定期以重新指定任何不必要地未使用的空間索引維護作業。比方說,您可以執行下列命令:
下列是典型的有叢集的索引的表格中插入資料時,會發生的作業順序。
下列是其中發生問題,而配置快取和可用空間快取是空的兩種情況。假設資料表的結構描述允許的無法容納在資料頁的 100 個資料列。
設定為高值開放式物件組態選項之所以發生這個問題,是主要是因為 SQL Server 根據 開啟 [物件] 選項指定的記憶體區域中使用所有介面槽。當您遇到本文所描述的問題時,您可以設定此選項,以容納會在特定 SQL Server 執行個體中參考的幾乎所有資料表的值。如果要判斷的 開啟物件 的選項值,以避免這個問題,請依照下列步驟執行:
我們不建議您變更在一般情況下 開放式物件 組態。如果您確定您遇到本文所描述的問題,只變更此值。 狀況說明Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。 其他相關資訊為什麼開啟物件選項設定會導致這個問題每當查詢參照特定的物件 (資料表),SQL Server 載入至記憶體,該物件的相關資訊。所有索引中繼資料都有 SQL Server 都已載入記憶體的物件資訊的參考。 本文中討論的配置快取會與特定索引相關聯。開啟 [物件] 選項會控制 SQL Server 執行個體可以載入到記憶體的描述項的數目。當 SQL Server 啟動時,SQL Server 會將一組特定的介面槽或 描述元,指派給保留在記憶體中版本的物件中繼資料。配置插槽數量取決於 SQL Server 版本以及已設定為 SQL Server 的記憶體,「 徵狀 」 一節所述。這些介面槽原先是可用的清單的一部分。特定的演算法用來從可用的清單中的物件中繼資料指派介面槽。此演算法有下列二種作業模式。 模式 1SQL Server 啟動之後它會使用其中一個記憶體描述元,從可用的清單時參考新的物件。SQL Server 會繼續載入在一個查詢所參考的物件有關的中繼資料時使用所有現有的介面槽。因為可用的清單中仍有插槽項目,SQL Server 會繼續使用這些介面槽。現有介面槽 SQL Server 並不重複使用已由另一個物件使用的記憶體。模式 2如果正在新參照一個查詢中的物件,且可用的清單已經變成空白 SQL Server 會掃描來判斷是否可以從記憶體移除其物件中繼資料的一個插槽的所有物件的現有清單。SQL Server 必須維持在插槽的物件中繼資料,只要查詢會參照資料表。完成該查詢時 SQL Server 可以插槽如果重複使用新的查詢參考不同的資料表。從記憶體中移除物件中繼資料時, 也會移除其相關聯的索引中繼資料。如果這是 SQL Server 也會遺失配置快取和可用空間快取。然後當不同的查詢一次參考此表格,所有配置快取都是空的。因此,SQL Server 會嘗試配置一個頁面的下一次 SQL Server 會配置新的範圍。 如果 SQL Server 持續收回 SQL Server 無法收回任何介面槽之前所包含的物件中繼資料的介面槽,SQL Server 會增加可用的清單] 的大小。 ?考如需有關如何使用 sp_configure 預存程序來變更組態選項,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站: http://msdn2.microsoft.com/en-us/library/ms188787.aspx
(http://msdn2.microsoft.com/en-us/library/ms188787.aspx)
如需有關 開啟 [物件] 選項的詳細資訊,請造訪下列 MSDN 網站:http://msdn2.microsoft.com/en-us/library/aa196701(SQL.80).aspx
(http://msdn2.microsoft.com/en-us/library/aa196701(SQL.80).aspx)
如需有關 最大伺服器記憶體 組態選項的詳細資訊,請造訪下列 MSDN 網站:http://msdn2.microsoft.com/en-us/library/ms180797.aspx
(http://msdn2.microsoft.com/en-us/library/ms180797.aspx)
如需有關在 SQL 中的資料表與索引架構伺服器,請造訪下列 MSDN 網站:http://msdn2.microsoft.com/en-us/library/ms208356.aspx
(http://msdn2.microsoft.com/en-us/library/ms208356.aspx)
這篇文章中的資訊適用於:
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:924947?
(http://support.microsoft.com/kb/924947/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯 |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


回此頁最上方
