SQLSERVER 2008的数据表压缩问题请教,谢谢!

weixin_38049770 2018-08-29 02:39:16
1、将表用语句ALTER TABLE tbname REBUILD WITH ( DATA_COMPRESSION = PAGE )将数据表压缩后,怎么判断这个表已经压缩过了?
2、为什么用1中的语句压缩数据表,比先创建压缩表,再插入数据快很多呢,我一个3千多万条的数据表对于无压缩的表插入数据需要9:48,对于压缩的表需要15:16,而用1中的语句压缩表只需要几十秒就可以了,这是为什么呢?
谢谢各位大侠!
...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38145296 2018-09-11
  • 打赏
  • 举报
回复
这个有好几种情况的,你可以参考下这个文档,https://docs.microsoft.com/en-us/sql/relational-databases/data-compression/page-compression-implementation?view=sql-server-2017。
weixin_38108998 2018-09-11
  • 打赏
  • 举报
回复
批量压缩比起单条压缩快不是很正常吗想不想时已是想,不如不想都不想。
weixin_38106414 2018-09-07
  • 打赏
  • 举报
回复

Hi Tim-2009,
你可以试试这个查询:
SELECT st.name, st.object_id, sp.partition_id, sp.partition_number, sp.data_compression, 
sp.data_compression_desc FROM sys.partitions SP
INNER JOIN sys.tables ST ON
st.object_id = sp.object_id
WHERE data_compression <> 0

weixin_38052215 2018-08-29
  • 打赏
  • 举报
回复
Hi Tim-2009,
你可以试试这个查询:
SELECT st.name, st.object_id, sp.partition_id, sp.partition_number, sp.data_compression, 
sp.data_compression_desc FROM sys.partitions SP
INNER JOIN sys.tables ST ON
st.object_id = sp.object_id
WHERE data_compression <> 0

weixin_38098817 2018-08-29
  • 打赏
  • 举报
回复
Hi Tim-2009,
你可以试试这个查询:
SELECT st.name, st.object_id, sp.partition_id, sp.partition_number, sp.data_compression, 
sp.data_compression_desc FROM sys.partitions SP
INNER JOIN sys.tables ST ON
st.object_id = sp.object_id
WHERE data_compression <> 0

weixin_38058377 2018-08-29
  • 打赏
  • 举报
回复
通过 sp_spaceused 对比一下压缩前后的空间占用
如果压缩经高,那么压缩降了IO,这个降低的效果大于压缩/解压需要的性能开销,效率就提升了

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧