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

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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