Microsoft 將 Microsoft SQL Server 2008 Service Pack 1 (SP1)修正為一個可下載的檔案。因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 Service Pack 1 (SP1)修正版本中所包含的所有修復程式及所有安全性修正程式。Microsoft 將 Microsoft SQL Server 2008 Service Pack 1 (SP1)或 Microsoft SQL Server 2008 R2 修正為一個可下載的檔案。因為修正程式是累加的,所以每個新版本都包含舊版 SQL Server 2008 Service Pack 1 (SP1)或 Microsoft SQL Server 2008 R2 修正程式版本中所包含的所有熱修復程式及所有安全性修正程式。
徵狀
請試想下列案例:
-
您有堆資料表和堆資料表中的非叢集索引。 堆表格包含許多資料列。例如,堆表格的列數超過10000000。
-
堆疊資料表和使用相同分區函數劃分的非叢集索引。
-
您嘗試重建堆資料表的單一分區。
在這種情況下,SQL Server 會錯誤地佔用大量記憶體。注意: 即使分區為空白,也可能會發生這個問題。
原因
發生此問題的原因是重建作業的排序作業無法正確保留記憶體。當 SQL Server 重建單一分區時,SQL Server 會重建非叢集索引,而 SQL Server 則會從分區的新位置排序列。 不過,此排序作業的記憶體會根據整個堆表格的大小,保留不正確的記憶體。 因此,消耗大量的記憶體。注意: 更有效率的排序操作是以單一分區的大小為基礎。
解決方案
累積更新資訊
SQL Server 2008 R2
此問題的修正程式是在累積更新5中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2438347 SQL Server 2008 R2 的累積更新套件5 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 SP1
此問題的修正程式是在累積更新11中第一次發行。如需有關如何取得 SQL Server 2008 Service Pack 1 (SP1)累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2413738 SQL Server 2008 Service Pack 1 的累積更新套件11 注意: 因為組建是累加的,所以每個新的修正版本都包含舊版 SQL Server 2008 Service Pack 1 (SP1)修正版本中所包含的所有修復程式及所有安全修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
970365 在發行 SQL Server 2008 Service Pack 1 之後發行的 SQL Server 2008 組建
SQL Server 2008 Service Pack 2
此問題的修正程式是在 SQL Server 2008 的累積更新2(Service Pack 2)中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2467239 SQL Server 2008 的累積更新套件 2 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 2 修補程式套用至 SQL Server 2008 Service Pack 2 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
其他相關資訊
如需如何使用 ALTER TABLE transact-sql 語句的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站: