在 Azure DevOps Server 数据库中禁用 SQL Server 数据压缩

本文介绍如何在 Azure DevOps Server 数据库中禁用 SQL Server 数据压缩。

原始产品版本: Microsoft Azure DevOps Server
原始 KB 数: 2712111

总结

Azure DevOps Server 旨在利用 SQL 企业版功能,例如页面压缩,在其他版本的 SQL Server 中不可用。 将一个或多个 Azure DevOps Server 数据库从 SQL Server 企业版移动到 SQL Server 的非企业版(例如,作为集合分离/附加操作的一部分)时,必须禁用该压缩。

若要在 Azure DevOps Server 数据库上禁用压缩,可以针对它执行 [dbo].[prc_EnablePrefixCompression] 。 此存储过程具有一个参数,@online如果要在继续通过 Azure DevOps Server 部署继续使用集合数据库时禁用压缩,则应将其设置为 true,但可以设置为 false,以便加快操作速度。 在任一情况下,执行此存储过程的步骤将是:

  1. 启动 SQL Server Management Studio。

  2. 找到要移动的 Azure DevOps Server 数据库。 右键单击数据库并选择“ 新建查询”。

  3. 键入下列命令之一:

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

    注意

    根据是否打算在禁用压缩时继续使用数据库。

  4. 运行(执行)查询,并在消息下验证成功。

  5. 对于将移动的所有必需数据库,重复步骤 1 到 4。

禁用压缩需要额外的磁盘空间。 下面的查询可以使用与上述步骤相同的步骤执行,它将提供有关禁用压缩后所需的额外磁盘空间量的估计值。

select sum(used_page_count) * 8 * 2 /1024.0
from sys.partitions p
join sys.dm_db_partition_stats s
on s.partition_id = p.partition_id
and s.object_id = p.object_id
and s.index_id = p.index_id
where p.data_compression_desc = 'page'

注意

  1. 上述查询返回的大小为 MB(MB)。
  2. 建议先针对每个 Azure DevOps Server 数据库运行此查询,然后再禁用数据压缩,然后确保在实际禁用压缩之前有足够的磁盘空间可用。

详细信息

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区