暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【译】SQL SERVER – 用于估算压缩的脚本

原创 沐言倾心 2022-04-30
1376

原文地址:https://blog.sqlauthority.com/2021/12/15/sql-server-script-to-estimate-compression/
原文作者:Pinal Dave

今天,我们将看到一些简单的事儿也可以对性能产生巨大影响。最近,我在客户端综合数据库性能运行状况检查中实现了数据压缩。让我们讨论一下如何在SQLServer中估算压缩。
SQLServer中有两种不同类型的压缩广受欢迎,(1)页面压缩 (2)行压缩。
图片.png

两种压缩

如果一张表的数据读取量大,但更新次数较少,可以选择页面压缩。如果表更新频繁,则推荐使用行压缩。通常,我曾经见到的页面压缩比行压缩效率更高,不过,这也取决于数据是怎样的以及系统是怎样设置的。

数据压缩–该不该使用?

我经常收到的问题答案是应该选择压缩。好吧,答案很简单。如果需要节省空间,可以继续进行数据和索引压缩。与写入磁盘的非压缩数据相比,压缩表和索引占用的CPU周期更多。这意味着,如果有CPU压力,压缩将进一步降低性能。

估算压缩

我们可以使用以下脚本轻松估算数据表或索引的压缩。

1. 页面压缩估算

EXEC sp_estimate_data_compression_savings
@schema_name = 'Production',
@object_name = 'WorkOrder',
@index_id = NULL,
@partition_number = NULL,
@data_compression = 'PAGE';

2. 行压缩估算

EXEC sp_estimate_data_compression_savings
@schema_name = 'Production',
@object_name = 'WorkOrder',
@index_id = NULL,
@partition_number = NULL,
@data_compression = 'ROW';

当你检查估算值以后,且没有CPU压力问题的情况下,则可以通过运行以下脚本轻松启用压缩。

启用压缩

1. 启用页面压缩

ALTER TABLE Production.WorkOrder REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = PAGE);
GO

2. 启用行压缩

ALTER TABLE Production.WorkOrder REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = ROW);
GO

3. 禁用数据压缩

ALTER TABLE Production.WorkOrder REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = NONE);
GO

请记住你可以为数据表或索引选择任何一种压缩。但不能同时用这两种压缩。

让我知道你对这篇博客的看法。如果你们想继续关注,我也可以在YouTube频道上创建一个关于此主题的视频-SQL在六十秒以内

相关可参考作者个人主页:皮纳尔·戴夫

最后修改时间:2022-04-30 15:03:28
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
2人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论