Liton Uddin Asked: 2013-03-01 13:14:40 +0800 CST2013-03-01 13:14:40 +0800 CST 2013-03-01 13:14:40 +0800 CST 压缩与缩小数据库 772 SQL Server 中的压缩和收缩数据库是否相同?如果我压缩一个表,它会降低查询性能和 DML 吗? sql-server-2008 shrink 1 个回答 Voted Best Answer Mike Fal 2013-03-01T13:40:04+08:002013-03-01T13:40:04+08:00 在 SQL Server 中,收缩数据库/数据文件和压缩是不一样的。缩小文件(顺便说一句,不建议这样做)是从数据库中的数据文件中删除未使用空间的过程。创建文件时,SQL Server 通过调整文件大小来“保留”空间(取决于文件的创建方式),即使它实际上没有数据来填充该空间。这个想法是你最终会在那里放一些东西(但并非总是如此)。 收缩会移除这个空白空间。 另一方面,数据压缩压缩对象以减少它们占用的数据文件中的空间。有几种不同类型的压缩,但它们最终都会减少表和索引所需的物理空间。 假设您有一个 1 GB 的数据文件,其中包含 600 MB 的实际数据。这两个操作将产生以下影响: 缩小:您将数据文件的大小调整为 600 MB。这是限制,因为您仍然需要数据容量。 压缩:您会将数据的大小从 600 MB 调整到更少(取决于算法可以压缩它的程度),但您的数据文件将保持 1 GB。 对于你的第二个问题,压缩是 CPU 密集型的(它必须解压缩数据才能使用它),但使用更少的磁盘 IO(更少的位来拉出磁盘)。如果您的 CPU 受限,它可能会影响您的查询性能。正确评估的唯一方法是测试。
在 SQL Server 中,收缩数据库/数据文件和压缩是不一样的。缩小文件(顺便说一句,不建议这样做)是从数据库中的数据文件中删除未使用空间的过程。创建文件时,SQL Server 通过调整文件大小来“保留”空间(取决于文件的创建方式),即使它实际上没有数据来填充该空间。这个想法是你最终会在那里放一些东西(但并非总是如此)。 收缩会移除这个空白空间。
另一方面,数据压缩压缩对象以减少它们占用的数据文件中的空间。有几种不同类型的压缩,但它们最终都会减少表和索引所需的物理空间。
假设您有一个 1 GB 的数据文件,其中包含 600 MB 的实际数据。这两个操作将产生以下影响:
对于你的第二个问题,压缩是 CPU 密集型的(它必须解压缩数据才能使用它),但使用更少的磁盘 IO(更少的位来拉出磁盘)。如果您的 CPU 受限,它可能会影响您的查询性能。正确评估的唯一方法是测试。