昨晚去吃了顿日本料理

虽然本人比较讨厌小鬼子,不过领导做东。就去奢侈了一下。
座着吃不觉得,等我想站起来时,就发现吃的太多。有点撑

只好转了几圈消化一下  ,呵呵。

不过小鬼子的东西第一次吃感觉还是蛮奇特的。

开始寿司吃的太多,占了地方 .搞的后来好东西没吃多少。失败

在 SQL Server 中,**重建索引(REBUILD)之后可以通过启用数据压缩来减小索引的存储空间、提高 I/O 性能**。你可以在 `REBUILD` 时直接指定压缩选项,或者对已存在的索引重新应用压缩。 --- ### ✅ 如何在 `REBUILD INDEX` 后压缩索引? 使用 `DATA_COMPRESSION` 选项即可实现索引压缩。SQL Server 提供两种主要压缩方式: | 压缩类型 | 说明 | |--------|------| | `ROW` | 行压缩:除未使用的空间(如 NULL/VARCHAR 变长列优化) | | `PAGE` | 页压缩:基于行压缩 + 页级重复数据消除(前缀/字典压缩),压缩率更高 | --- ### 🔧 语法:在重建索引时启用压缩 #### 1. 为 **所有索引** 启用行压缩 ```sql ALTER INDEX ALL ON dbo.YourTable REBUILD WITH (DATA_COMPRESSION = ROW); ``` #### 2. 为特定索引启用 **页压缩** ```sql ALTER INDEX IX_YourIndex ON dbo.YourTable REBUILD WITH (DATA_COMPRESSION = PAGE); ``` #### 3. 对聚集索引(通常是主键)进行压缩(它会压缩整个表数据) > 聚集索引的压缩会影响整个表的数据页。 ```sql ALTER INDEX PK_Employees ON dbo.Employees REBUILD WITH (DATA_COMPRESSION = PAGE); ``` --- ### 📦 示例:完整带压缩的重建语句 ```sql ALTER INDEX ALL ON dbo.Orders REBUILD WITH ( DATA_COMPRESSION = PAGE, FILLFACTOR = 90, SORT_IN_TEMPDB = ON, ONLINE = OFF ); ``` 这将: - 重建 `Orders` 表的所有索引; - 使用页压缩减少空间占用; - 设置填充因子为 90%; - 在 `tempdb` 排序以提升性能。 --- ### 🔍 查看当前索引是否已压缩 ```sql SELECT OBJECT_NAME(object_id) AS TableName, name AS IndexName, type_desc AS IndexType, data_compression_desc AS CompressionType FROM sys.indexes WHERE object_id = OBJECT_ID('dbo.YourTable'); ``` --- ### 💡 注意事项 1. **版本要求**: - 数据压缩功能仅在 **SQL Server 企业版、标准版(从 2016 SP1 开始)及以上版本支持**。 - 早期版本的标准版不支持压缩。 2. **性能影响**: - 压缩会增加 CPU 使用率(因需实时解压); - 但减少了 I/O 和内存使用,总体性能可能更优。 3. **压缩效果评估工具**: 使用以下语句预估压缩节省的空间: ```sql EXEC sp_estimate_data_compression_savings 'dbo', -- schema 'YourTable', -- table name NULL, -- index ID (NULL = all) NULL, -- partition number 'PAGE'; -- compression type ('ROW' or 'PAGE') ``` 4. **ONLINE 选项**: - 若使用 `ONLINE = ON`,用户可继续访问表(推荐生产环境使用,仅企业版完全支持)。 --- ### ✅ 总结:压缩索引的最佳实践 | 步骤 | 操作 | |------|------| | 1 | 检查当前碎片和压缩状态 | | 2 | 使用 `sp_estimate_data_compression_savings` 预估收益 | | 3 | 在 `REBUILD` 时添加 `DATA_COMPRESSION = ROW/PAGE` | | 4 | 定期监控压缩后的空间与性能变化 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值