要启用数据库压缩只需在建表语句后加入WITH(DATA_COMPRESSION=ROW)或是WITH(DATA_COMPRESSION=PAGE)即可。如需将现有的索引修改为启用压缩,可通过ALTERINDEXindexONTableREBUILDWITH(DATA_C0MPRESSION=ROW)或ALTERINDEXindexONTableREBUILDWITH(DATA_C0MPRESSION=PAGE)实现。
最后提供一段简单的用以判断是否需要压缩数据表的脚本,并自动生成压缩脚本供系统管理员执行。这里用到未公开的存储过程sp_MSforeachtable。在这段脚本中@precommand参数用于执行command指令执行前的SQL命令,建立一张临时表用于保存数据表的信息,@command1参数表示需要执行的SQL命令,对每一张表都利用sp_spaceused存储过程获取表的磁盘占用信息并保存到建立的临时表中,@postcommand参数用于执行command指令后的SQL命令,将之前建立的临时表与系统关联,根据设置的条件(数据表占用空间大于10G)生成数据表压缩脚本。
SQLServer2008中数据怎么压缩
execsp_MSforeachtable@precommand=N'createtable##(idintidentity,namesysname,rowsint,reservedNvarchar(50),datavarchar(50),indexdatavarchar(50),unusedvarchar(50))',@command1=N'insertinto##(name,rows,reserved,data,indexdata,unused)execsp_spaceused''''update##setdata=SUBSTRING(data,1,LEN(data)-2)whereid=scope_identity()AND
上一篇:Java移位运算符有哪些
下一篇:Jmeter中怎么添加循环控制器