SQL Server 2008数据压缩的正确执行

下面的文章主要介绍的是正确执行SQL Server 2008数据压缩的实际操作流程,在实际操作中我们对SQL Server 2008数据库的新功能进行观察时,我们发现一个叫做数据压缩的可能很有趣的功能,我们可以用这个功能来缩小表,索引或者它们分区的一个子集。

您能给我们提供如何利用这个新功能的详细解释吗?

专家解答

在SQSQL Server 2008数据压缩在SQL Server 2005 的Service Pack 2中已经可以使用了,在Service Pack 2中,引进了存储小数和数字数据。Vardecimal存储格式允许小数和数字数据类型以变长的形式存储。这个概念在SQL Server 2008中被扩展成全部定长的数据类型,比如integer,char和float 数据类型。数据压缩通过减少I/O和提高缓冲区命中率来降低储存成本和提高查询性能。

SQL Server 2008在表级别和索引级别上支持行和页的压缩。以下是两种类型的SQL Server 2008数据压缩的不同之处。

行压缩(ROW Compression) 这种压缩功能考虑到变长数据类型结构来定义一栏。比如,以变长存储的一个CHAR(100)栏只能使用由数据定义的存储空间大小。在栏中存储“SQL Server 2008”只要求存储15个字符而不是完整的100个字符,因此,在存储空间上节省率为85%。

这是在SQL Server 2005 Service Pack 2中可以使用的 vardecimal存储格式的扩展。还要注意到,这个压缩功能没有因为零或者空值而占用磁盘空间。

页级别压缩(PAGE Compression) 这种压缩功能是行压缩的父集,它考虑到给定的页内的一行或多行冗余数据。它也使用前缀和字典压缩。这仅仅意味着对于两种页压缩技术,存储引擎在页内减少重复数据。

比如,如果利用一列前缀把一张表分区,在一个具体分区中的所有数据都会有一样或者相似的前缀。让我们以一些像A1000Q-xxxx的产品代码为开始说一些栏的值,存储引擎存储A1000Q – 一开始在页上接着在相同的页面上从这个值的其他所有的发生的事指到这个值。这也可以说成有已经定义好的默认约束的一栏。页压缩只发生在页已经完全优化性能的时候。

 

虽然表面看来数据压缩会缩小你的表和索引,但是最好首先通过

 

sp_estimate_data_compression_savings系统存储程序或数据压缩Wizard工具在表或索引中评估预计的节省空间。你也可能检查现有数据是否成为碎片,因为你可能可以通过重建它而不是使用压缩来缩小索引。

评估存储节省空间

我们可以使用sp_estimate_data_compression_savings系统存储程序或者SQL Server 2008数据压缩Wizard工具去为索引中的一张表找出预计的存储节省空间。为了使用AdventureWorks数据库中的

sp_estimate_data_compression_savings系统存储程序,

 

 

  1. USE AdventureWorks   
  2. GO   
  3. EXEC sp_estimate_data_compression_savings 'Sales', 'SalesOrderDetail', NULL, NULL, 'ROW' ;   
  4. GO 

 

 

 

在这里,

 

l 第一个参数是模式名,

l 第二个参数是对象名,

l 第三个参数是索引id,

l 第四参数是分区id,

l 最后一个参数是压缩类型。

在以上的例子中,我会考虑在AdventureWorks数据库中的Sales.SalesOrderDetail表上的行压缩。执行这个查询会给你如下显示的结果: 

 

请注意栏size_with_current_compression_setting(KB)和

 

size_with_requested_compression_setting (KB),假设没有碎片,这两个栏会让你对在Sales.SalesOrderDetail表中实现节省空间有个估计。

要使用数据压缩Wizard工具,右键单击Sales.SalesOrderDetail表,选择存储并且单击管理压缩。 

 

这将在Welcome to Data Compression Wizard上启动SQL Server 2008数据压缩Wizard工具,点击下一步。

 

在选择压缩类型页面上,在压缩类型栏里点击下拉菜单,选择你的压缩类型选项。我将选择行,因为这是通过sp_estimate_data_compression_savings系统存储程序使用的选项。点击计算按扭来显示由存储程序提供的相似信息。

这两种方法将会让你获得通过压缩你的表和索引来获得存储节省空间的一个估计。

使压缩在表上可用

 

为了使压缩在现有的非分区表上可用,可以使用有REBUILD选项的ALTER TABLE命令。

 

  1. ALTER TABLE Sales.SalesOrderDetail  
  2. REBUILD WITH (DATA_COMPRESSION = ROW);  

 

上面的语句使行压缩在Sales.SalesOrderDetail表上可用。你也可以继续用数据压缩Wizard去使压缩在表上可用。在点击选择压缩类型页面上的计算按扭之后,点击下一步。在选择一个输出选项的页面上,你可以选择要么创建一个用于评论的脚本要么保存到一个文件中,立即运行或把它当作一个工作。

作为一个数据库管理员,你可能会把这个当作你的数据库日常维护的一部分,所以你可能也会为评论它而创建一个脚本,然后包括一个数据库维护工作。点击下一步按扭来继续。

在点击完成之前,审查SQL Server 2008数据压缩摘要页面。

你可能想要创建一个脚本,这个脚本通过使用sp_estimate_data_compression_savings系统存储程序来遍历所有的表,以此来产生摘要报告,而系统存储程序将会帮助你分析你会压缩哪些表或者索引。

【编辑推荐】

  1. SQL Server获取表的容量很简单!
  2. SQL Server排序遇到NULL,不怕不帕!
  3. SQL Server 2005两种快照隔离机制的不同之处
  4. SQL Server 2008 FileStream支持“真功夫版”
  5. SQL Server 2008稀疏列与列集的经验总结

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/285415.html<

(0)
运维的头像运维
上一篇2025-05-14 21:17
下一篇 2025-05-14 21:18

相关推荐

  • BuyVMVPS测评,实测体验怎么样,BuyVMVPS测评推荐

    BuyVMVPS 在 2026 年依然是性价比极高的入门级选择,特别适合预算有限但追求高 I/O 性能的开发者与小型企业,但在高并发场景下需警惕其单线带宽限制,BuyVMVPS 核心架构与 2026 年市场定位在 2026 年的云计算市场中,BuyVMVPS 凭借独特的“按年付费”模式与高规格硬件配置,成功占据……

    2026-05-02
    0
  • hostsolutionsVPS测评,抗投诉实测表现,hostsolutionsVPS抗投诉能力如何?

    hostsolutions VPS 在 2026 年的抗投诉实测中表现卓越,其独特的“先斩后奏”容错机制配合高防节点,使其成为处理敏感业务(如海外营销、跨境支付)时优于传统廉价 VPS 的首选方案,但需注意其价格略高于行业平均水平,核心性能与抗投诉机制深度解析在 2026 年复杂的网络监管环境下,VPS 服务商……

    2026-05-02
    0
  • BuyVM服务器测评,实测体验好吗,BuyVM服务器怎么样

    BuyVM 服务器在 2026 年依然具备极高的性价比,特别适合需要低成本海外节点、搭建轻量级应用或进行跨境网络测试的用户,但其在高端游戏场景下的延迟表现略逊于顶级独服,在 2026 年的云主机市场,BuyVM 凭借“按需付费”与“固定 IP”的混合模式,依然占据着中小开发者与个人站长的核心生态位,对于寻找Bu……

    2026-05-02
    0
  • AlphaNine美国怎么样?AlphaNine美国官网入口

    AlphaNine 美国作为 2026 年高性能计算与边缘 AI 领域的领军品牌,其核心优势在于通过自研异构计算架构实现了 40% 的能效比提升,是解决企业级数据延迟与算力瓶颈的首选方案,尤其在 2026 年中美科技博弈背景下,其合规性与本土化服务能力成为关键决策点,AlphaNine 美国技术架构与 2026……

    2026-05-02
    0
  • AviarHostVPS测评,实测体验,AviarHostVPS怎么样,AviarHostVPS好用吗

    AviarHostVPS 在 2026 年实测中展现出极高的性价比与网络稳定性,是中小型企业搭建海外业务及开发者进行轻量级应用部署的理想选择,尤其适合关注AviarHostVPS 价格与海外服务器免备案场景的用户,在云计算市场高度内卷的 2026 年,VPS 服务商的筛选标准已从单纯的“低价”转向“性能密度”与……

    2026-05-02
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注