Share via


sp_estimated_rowsize_reduction_for_vardecimal (Transact-SQL)

預估資料列平均大小的縮減 (如果資料表上已啟用 Vardecimal 儲存格式的話)。您可以使用這個數字來預估資料表大小的整體縮減。由於統計資料取樣是用來計算資料列大小的平均縮減,所以請將它當做預估就好。在少數情況下,當您啟用 Vardecimal 儲存格式之後,資料列大小可能會增加。從 SQL Server 2005 Service Pack 2 開始,Vardecimal 儲存格式只適用於 SQL Server Enterprise、Developer 和 Evaluation 版本。

[!附註]

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 ROW 和 PAGE 壓縮。如需詳細資訊,請參閱<建立壓縮資料表及索引>。如需瞭解壓縮對於資料表和索引大小的影響,請參閱<sp_estimate_data_compression_savings (Transact-SQL)>。

主題連結圖示Transact-SQL 語法慣例

語法

sp_estimated_rowsize_reduction_for_vardecimal [ [ @table_name = ] 'table'] [;]

引數

  • [ @table = ] 'table'
    這是即將變更儲存格式之資料表的三部分名稱。table 是 nvarchar(776)。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

系統會傳回下列結果集,以便提供目前和預估的資料表大小資訊。

資料行名稱

資料類型

描述

avg_rowlen_fixed_format

decimal (12, 2)

以自動設定小數點儲存格式表示資料列的長度。

avg_rowlen_vardecimal_format

decimal (12, 2)

表示使用 Vardecimal 儲存格式時的平均資料列大小。

row_count

int

資料表中的資料列數。

備註

如果您啟用資料表的 Vardecimal 儲存格式,就可以使用 sp_estimated_rowsize_reduction_for_vardecimal 來預估產生的節省空間。例如,如果資料列的平均大小可縮減 40%,您就可能會將資料表的大小縮減 40%。根據填滿因數和資料列的大小而定,您可能無法節省空間。例如,如果您有一個長度為 8000 個位元組的資料列,而且將它的大小縮減 40%,則仍然只能在資料頁面上容納一個資料列,而不會節省任何空間。

如果執行 sp_estimated_rowsize_reduction_for_vardecimal 的結果指出資料表將會成長,就表示資料表中的許多資料列都使用 decimal 資料類型的幾乎完整有效位數,而且 Vardecimal 儲存格式所需的小型負擔增加會比 Vardecimal 儲存格式的空間節省更大。在這種少數情況下,請勿啟用 Vardecimal 儲存格式。

如果 Vardecimal 儲存格式已啟用資料表,請使用 sp_estimated_rowsize_reduction_for_vardecimal 來預估停用 Vardecimal 儲存格式之後的資料列平均大小。

權限

需要資料表的 CONTROL 權限。

範例

下列範例會預估資料列大小縮減 (如果 AdventureWorks2008R2 資料庫中的 Production.WorkOrderRouting 資料表進行壓縮的話)。

USE AdventureWorks2008R2;
GO
EXEC sp_estimated_rowsize_reduction_for_vardecimal 'Production.WorkOrderRouting' ;
GO