次の方法で共有


sp_estimated_rowsize_reduction_for_vardecimal (Transact-SQL)

新規 : 2006 年 12 月 12 日

テーブルで vardecimal ストレージ形式が有効になっている場合に、行の平均サイズの削減量を見積もります。この数値を使用して、テーブル サイズ全体の削減量を見積もることができます。行サイズの平均削減量を計算するには統計サンプリングが使用されます。このため、結果はあくまでも見積もりとして扱ってください。vardecimal ストレージ形式を有効にした後、まれに行サイズが増加する場合があります。vardecimal ストレージ形式は、SQL Server 2005 Enterprise Edition、Developer Edition、および Evaluation Edition でのみ使用できます。

構文

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

引数

  • [ @table= ] 'table'
    ストレージ形式を変更するテーブルの、3 つの要素で構成された名前を指定します。table のデータ型は nvarchar(776) です。

結果セット

現在のテーブル サイズと見積もりテーブル サイズの情報に関する、以下の結果セットが返されます。

列名 データ型 説明

avg_rowlen_fixed_format

decimal (12, 2)

固定 decimal ストレージ形式での行の長さ。

avg_rowlen_vardecimal_format

decimal (12, 2)

vardecimal ストレージ形式を使用した場合の平均行サイズ。

row_count

int

テーブルに含まれる行数。

解説

sp_estimated_rowsize_reduction_for_vardecimal を使用すると、テーブルで vardecimal ストレージ形式を有効にした場合のサイズ削減量を見積もることができます。たとえば、行の平均サイズを 40% 削減できれば、テーブル サイズを 40% 削減できる可能性があります。ただし FILL FACTOR と行サイズによっては、テーブル領域を削減できない場合もあります。たとえば、長さ 8,000 バイトの行があり、そのサイズを 40% を削減したとしても、データ ページに収まるのは 1 行のみであることに変わりはないので、領域は削減されません。

sp_estimated_rowsize_reduction_for_vardecimal の実行結果でテーブルが大きくなることが示される場合は、テーブルの多くの行で decimal データ型の有効桁数のほとんどが使用されており、vardecimal ストレージ形式に必要なわずかなオーバーヘッドが積み重なって、vardecimal ストレージ形式による削減量を上回ることを意味しています。めったにありませんが、このような場合は vardecimal ストレージ形式を使用しないでください。

テーブルで vardecimal ストレージ形式が有効になっている場合は、sp_estimated_rowsize_reduction_for_vardecimal を使用して、vardecimal ストレージ形式を無効にした場合の平均行サイズを見積もることができます。

権限

テーブルに対する CONTROL 権限が必要です。

戻り値

0 (成功) または 1 (失敗)

次の例では、AdventureWorks データベースの Production.WorkOrderRouting テーブルを圧縮した場合の行サイズの削減量を見積もります。

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

参照

関連項目

sp_db_vardecimal_storage_format (Transact-SQL)
sp_tableoption (Transact-SQL)
データベース エンジンのストアド プロシージャ (Transact-SQL)

その他の技術情報

decimal データの可変長での格納

ヘルプおよび情報

SQL Server 2005 の参考資料の入手