Partager via


How to disable SQL Server Enterprise Edition's data compression in preparation for migrating to a lower version of SQL

This has been probably one of the most common issues I have come across in the past as it relates to Tfs data migration and or upgrade. 

Scenario #1: You may be upgrading Tfs on new hardware and don't have the same version of SQL Server Enterprise in production.
Scenario #2: You have done your proof of concept in a testing environment with a Enterprise edition SQL Server, and now need to move to production where you only have SQL Server Standard Edition

Whichever the scenario, here is a quick solution that MUST be executed prior to the database backup, copy, restore steps.

Run the following command against the SQL Server Enterprise instance.

 EXEC [dbo].[prc_EnablePrefixCompression] @online = 0, @disable = 1

 

Please do not hesitate to share you experience.

Cheers!

Comments

  • Anonymous
    December 19, 2013
    The comment has been removed
  • Anonymous
    September 02, 2015
    This procedure can be used only on TFS databases. If you want to disable copmpression for other DB you have to do something like this: SELECT SCHEMA_NAME(sys.objects.schema_id) AS [SchemaName] ,OBJECT_NAME(sys.objects.object_id) AS [ObjectName] ,[rows] ,[data_compression_desc] ,[index_id] as [IndexID_on_Table] into #compr FROM sys.partitions INNER JOIN sys.objects ON sys.partitions.object_id = sys.objects.object_id WHERE data_compression > 0 AND SCHEMA_NAME(sys.objects.schema_id) <> 'SYS' while exists(select 1 from #compr) begin       declare @i varchar(200) = (select top 1 [ObjectName] from #compr)       print @i       exec ('ALTER INDEX ALL ON '+@i + ' REBUILD WITH (DATA_COMPRESSION = None)')       delete from #compr where [ObjectName] = @i end drop table #compr