TSql sp_estimate_data_compression_savings 用法

1,sp_estimate_data_compression_savings

返回所请求对象的当前大小并估算对象在所请求的压缩状态下的大小,可对所有表或分区表评估压缩。 这包括堆、聚集索引、非聚集索引、索引视图以及表和索引分区。 可使用行压缩或页压缩来压缩这些对象。如果表、索引或分区已经过压缩,则可使用该过程来估计在重新压缩的情况下该表、索引或分区的大小。

语法

sp_estimate_data_compression_savings
     [ @schema_name = ] ‘schema_name‘
   , [ @object_name = ] ‘object_name‘
   , [@index_id = ] index_id
   , [@partition_number = ] partition_number
   , [@data_compression = ] ‘data_compression‘
[;]

参数

[ @schema_name= ] ‘schema_name‘ 

包含表或索引视图的数据库架构的名称,schema_name 的数据类型为 sysname。 如果 schema_name 为 NULL,则使用当前用户的默认架构。

[ @object_name= ] ‘object_name‘              

索引所属的表或索引视图的名称object_name 的数据类型为 sysname。

[ @index_id= ] ‘index_id‘              

索引的 ID。index_id 的数据类型为 int,并且可以是下列值之一:索引的 ID 号、NULL 或 0(如果 object_id 为堆)。 若要返回基表或视图的所有索引的信息,请指定 NULL。 如果指定 NULL,则还必须为 partition_number 指定 NULL。

[ @partition_number= ] ‘partition_number‘               

对象中的分区号。partition_number 的数据类型为 int,并且可以是下列值之一:索引或堆的分区号、NULL 或 1(对于未分区的索引或堆)。若要指定分区,还可指定 $partition 函数。若要返回所属对象的所有分区的信息,请指定 NULL。

[ @data_compression= ] ‘data_compression‘              

要评估的压缩的类型。data_compression 可以是下列值之一:NONE、ROW 或 PAGE。

2,返回的结果集

将返回以下结果集,以提供表、索引或分区的当前大小和估计大小。


列名


数据类型


说明


object_name


sysname


表或索引视图的名称。


schema_name


sysname


表或索引视图的架构。


index_id


int


索引的索引 ID:

0 = 堆

1 = 聚集索引

> 1 = 非聚集索引


partition_number


int


分区号。                       对于未分区的表或索引,返回 1。


size_with_current_compression_setting (KB)


bigint


当前存在的所请求的表、索引或分区的大小。


size_with_requested_compression_setting (KB)


bigint


使用请求的压缩设置及现有填充因子(如果适用)且假定不存在碎片时的表、索引或分区的估计大小。


sample_size_with_current_compression_setting (KB)


bigint


使用当前压缩设置时的示例大小。                       这包括任何碎片。


sample_size_with_requested_compression_setting (KB)


bigint


使用请求的压缩设置及现有填充因子(如果适用)创建的且没有碎片的样本的大小。

3,注释

  • 使用 sp_estimate_data_compression_savings 估算对表或分区启用行压缩或页压缩时可能带来的节省量。例如,如果行的平均大小可以减少 40%,则可能可以将对象大小减少 40%。 您可能无法节省空间,因为这取决于填充因子和行大小。 例如,如果某行长度为 8000 字节并且您将该行的大小减少 40%,则数据页上仍只能容纳一行。 因此不会节省空间。
  • 如果运行 sp_estimate_data_compression_savings 的结果指示表的大小将增长,则表示表中的许多行使用的几乎是数据类型的完全精度,因而为满足压缩格式的需要而增加的少量开销大于该压缩所带来的节省量。在这种极个别的情况下,请不要启用压缩。
  • 如果对表启用压缩,请使用 sp_estimate_data_compression_savings 估算在未压缩该表的情况下该行的平均大小。
  • 在此操作期间将获取该表的 (IS) 锁。如果不能获取 (IS) 锁,则该过程将被阻止。 该表将在已提交读隔离级别下进行扫描。
  • 如果请求的压缩设置与当前的压缩设置相同,则该存储过程将返回在没有数据碎片且使用现有填充因子时的估计大小。
  • 如果索引或分区 ID 不存在,将不返回任何结果。
时间: 2024-10-08 10:09:25

TSql sp_estimate_data_compression_savings 用法的相关文章

TSql Top 用法

第一部分:TSql Top 有两种用法 1,限制查询结果集返回的行数或总行数的百分比. 当将 TOP 与 ORDER BY 子句结合使用时,结果集限制为前 N 个已排序行:否则,以未定义的顺序返回前 N 个行. 2,限制 INSERT.UPDATE.MERGE 或 DELETE 语句影响的行数. 第二部分:讨论top的第二种用法 1,示例代码如下 create table dbo.FinanceMonth (MonthNum int , quantity int ) ;with cte as (

TSQL Merge 用法

TSQL的Merge语句不仅能够同步数据,而且能够将更新的数据输出. 一,语法 1,when match子句要求Target表中一个数据行只能被更新一次 If UPDATE is specified in the <merge_matched> clause, and more than one row of <table_source>matches a row in target_table based on <merge_search_condition>, SQ

TSql Output 用法

第一部分:TSql Output 关键字有两种应用场景 1,作为存储过程的参数类型,从存储过程中返回数据 2,返回受 INSERT.UPDATE.DELETE 或 MERGE 语句影响的各行中的信息,可以捕获嵌入到 INSERT.UPDATE.DELETE 或 MERGE 语句中 OUTPUT 子句的结果,然后将这些结果插入目标表. 3,语法 <OUTPUT_CLAUSE> ::= { [ OUTPUT <dml_select_list> INTO { @table_variabl

TSql HASHBYTES 用法

HashBytes是比CheckSum精确度更高的函数,用法参考 checksum ,HashBytes 只能有一个输入参数,并且参数的数据类型是varchar.nvarchar 或 varbinary. 第一部分:MSDN上HashBytes的语法介绍如下 语法 HASHBYTES ( '<algorithm>', { @input | 'input' } ) <algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA

T-SQL:CTE用法(十)

CTE 也叫公用表表达式和派生类非常类似 先定义一个USACusts的CTE WITH USACusts AS ( SELECT custid, companyname FROM Sales.Customers WHERE country = N'USA' ) SELECT * FROM USACusts; with  ()  称为内部查询   与派生表相同,一旦外部查询完成后,CTE就自动释放了 CTE内部方式 就是上面代码所表示的方式  其实还有一种外部方式 WITH C(orderyear

T-SQL函数及用法--转

转自http://www.cnblogs.com/qixuejia/archive/2010/07/14/1777105.html 1. 聚合函数 (1) AVG 函数功能返回组中值的平均值.空值将被忽略 语法AVG ( [ ALL | DISTINCT ] expression ) (2) MAX 函数功能返回表达式的最大值 语法MAX ( [ ALL | DISTINCT ] expression ) (3) MIN 函数功能返回表达式的最小值 语法MIN ( [ ALL | DISTINC

T-SQL中的APPLY用法(半翻译)

本文接上文:T-SQL 中的CROSS JOIN用法(半翻译) 同样可用于微软认证70-461: Querying Microsoft SQL Server 2012考试的学习中. ---------------------------------------------------------------------以下为译文----------------------------------------------------------------------- 原文出处:http://w

【SqlServer】SqlServer编程语言T-SQL的简介及基本用法

一.T-SQL概述 SQL Server用于操作数据库的编程语言为Transaction-SQL,简称T-SQL.T-SQL与PL/SQL不同,并没有固定的程序结构.T-SQL包括以下4个部分: DDL:定义和管理数据库及其对象,例如create.alter和drop等.    DML:实现对数据库表各对象的操作,例如insert.update等.    DCL:数据控制语言,实现对数据库进行安全管理和权限管理等控制,例如grant.revoke.deny等.    附加的语言元素.T-SQL的

TSql HierarchyID 数据类型用法(sqlserver2008以上有此数据类型)

TSql HierarchyID 数据类型用法 2017年04月25日 09:47:46 阅读数:110 HierarchyID 数据类型是一种长度可变的系统数据类型.可使用 HierarchyID 表示层次结构中的位置.类型为 HierarchyID 的列不会自动表示树,由应用程序来生成和分配 HierarchyID 值,使行与行之间的所需关系反映在这些值中. 1,字符串表示 必须以"/"开头,以"/"结尾,"/"之间使用数值标识某一个元素,一