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'
要更改其存储格式的表的三部分名称。table 的数据类型为 nvarchar(776)。
返回代码值
0(成功)或 1(失败)
结果集
返回的结果集可提供有关当前表大小和估计的表大小的信息。
列名 | 数据类型 | 说明 |
---|---|---|
avg_rowlen_fixed_format |
decimal (12, 2) |
以固定十进制存储格式表示行的长度。 |
avg_rowlen_vardecimal_format |
decimal (12, 2) |
表示使用 vardecimal 存储格式时的平均行大小。 |
row_count |
int |
表中的行数。 |
备注
使用 sp_estimated_rowsize_reduction_for_vardecimal 估计如果对表启用 vardecimal 存储格式后可以节省的空间。例如,如果行的平均大小能够减少 40%,则表的大小则可能减少 40%。根据填充因子和行大小的具体情况,您可能无法节省空间。例如,如果某行长度为 8000 字节并且您将该行的大小减少 40%,则数据页上仍只能容纳一行。因此不会节省空间。
如果运行 sp_estimated_rowsize_reduction_for_vardecimal 的结果指示表的大小将增长,则表示表中的许多行使用的几乎是 decimal 数据类型的完全精度,并且 vardecimal 存储格式所需的额外少量开销大于 vardecimal 存储格式所带来的节约量。在这种极个别的情况下,不要启用 vardecimal 存储格式。
如果对表启用 vardecimal 存储格式,请使用 sp_estimated_rowsize_reduction_for_vardecimal 进行估计:如果禁用 vardecimal 存储格式,则行的平均大小将为多少。
权限
需要对表具有 CONTROL 权限。
示例
下例估计了 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)