You administer a SQL Server 2008 infrastructure. 
You partition the largest table in a database into four equal-sized parts. The first two partitions are rarely queried. The  third partition  is  frequently queried by several  reports. The  last partition  is heavily queried and frequently modified. 
You need to minimize the disk space of the table and ensure that this has minimum effect on the query 
performance. 
Which two actions should you perform? (Each correct answer presents part of the solution. Choose two.)
你管理一个SQL Server2008基础设施。
你在数据库中最大的表分为四个大小相等的分区。前两个分区都很少查询。第三个分区是频繁查询的几份报告。最后一个分区是大量查询,并经常修改。
您需要尽量减少表的磁盘空间,并确保这对查询性能的影响最小。
你应该执行哪两个动作? (每个正确的答案,提出解决方案的一部分,选择两个。) 
A. Enable ROW compression for the last partition. 
B. Enable ROW compression for the third partition. 
C. Enable ROW compression for the first two partitions. 
D. Enable PAGE compression for the last partition. 
E. Enable PAGE compression for the third partition. 
F. Enable PAGE compression for the first two partitions. 
标准答案是BF我想弄清楚的是到底什么情况下用行压缩,什么情况下用页压缩?

解决方案 »

  1.   

    注意 
    如果现有数据的零碎程度很高,则可能需要重新生成索引(而不是使用压缩)来减小索引的大小。 重新生成索引的过程中将应用索引的填充因子,这可能会增加索引的大小。 有关详细信息,请参阅填充因子。
       使用行压缩和页压缩时的注意事项 
    使用行压缩和页压缩时,应注意以下事项:只有在 SQL Server 2008 Enterprise Edition 和 Developer Edition 中才能使用压缩。通过压缩可在一页上存储更多的行,但不会更改表或索引的最大行大小。当最大行大小加上压缩开销超过最大行大小 8060 个字节时,不能对表启用压缩功能。 例如,不能压缩具有 c1char(8000) 和 c2char(53) 列的表,因为存在额外的压缩开销。 当使用 vardecimal 存储格式时,会在启用此格式时执行行大小检查。 对于行压缩和页压缩,在最初压缩对象时会执行行大小检查,以后在每插入或修改一行时也都会执行这一检查。 压缩功能要求遵循下面两条规则:固定长度类型的更新必须总是成功。禁用数据压缩必须总是成功。 即使已压缩的行可以容纳在页面中(意味着它小于 8060 个字节),SQL Server 也不允许对哪些在未压缩时无法容纳在行中的更新。当指定分区列表时,可以将各个分区的压缩类型设置为 ROW、PAGE 或 NONE。 如果未指定分区列表,将使用语句中指定的数据压缩属性来设置所有分区。 创建表或索引时,除非指定了其他压缩设置,否则数据压缩将设置为 NONE。 修改表时,除非指定了其他压缩设置,否则将保留现有压缩设置。如果指定的分区列表或分区超出范围,将生成错误。非聚集索引不继承表的压缩属性。 若要压缩索引,必须显式设置索引的压缩属性。 默认情况下,在创建索引时,索引的压缩设置将设置为 NONE。对堆创建聚集索引时,除非指定了另一压缩状态,否则聚集索引会继承该堆的压缩状态。如果堆配置为页级压缩,则只有在以下情况下,页才会进行页级压缩:在启用大容量优化的情况下进行大容量数据导入。数据是使用 INSERT INTO ... WITH (TABLOCK) 语法插入的。表是通过执行带 PAGE 压缩选项的 ALTER TABLE ... REBUILD 语句重新生成的。通过 DML 操作被分配到堆中的新页面将不会使用 PAGE 压缩,除非重新生成该堆。 重新生成堆的方法有:删除压缩然后重新应用压缩,或者创建聚集索引然后再删除聚集索引。若要更改堆的压缩设置,要求对表重新生成所有非聚集索引,以便它们具有指向堆中的新行位置的指针。可以联机或脱机启用或禁用 ROW 或 PAGE 压缩功能。 当执行联机操作时,对堆启用压缩功能是单线程的。启用或禁用行压缩或页压缩的磁盘空间要求与创建或重新生成索引时的磁盘空间要求相同。 对于已分区数据,可以通过每次对一个分区启用或禁用压缩功能来减少所需的空间。若要确定已分区表中分区的压缩状态,请查询 sys.partitions 目录视图的 data_compression 列。压缩索引时,可以使用行压缩和页压缩来压缩叶级页。 非叶级页不接收页压缩。由于大小的关系,大值数据类型有时不与普通行数据存储在一起,而是存储在特殊用途的页上。 对于单独存储的数据,数据压缩不可用。SQL Server 2005 中实现 vardecimal 存储格式的表在升级后会保留该设置。 可以向具有 vardecimal 存储格式的表应用行压缩。 但是,因为行压缩是 vardecimal 存储格式的超集,所以不必保留 vardecimal 存储格式。 将 vardecimal 存储格式与行压缩一起使用时,十进制值不会进一步压缩。 可以向具有 vardecimal 存储格式的表应用页压缩;但是,vardecimal 存储格式列可能不会实现进一步的压缩。
    参照以下连接
    http://technet.microsoft.com/zh-cn/library/cc280449(SQL.100).aspx
      

  2.   

    我想可以這麼解釋,
    B --> 第3個分區只做大型查詢(報表)而不變更數據,所以可以啟用行壓縮.使得IO的處理量(頁面數)變小,
          提高大型查詢的效率.
    F --> 前2個分區的數據基本不使用, 可以啟用頁壓縮. 以減少磁盤空間的使用.
      

  3.   

    行压缩,用于以DML为主的工作负载环境;页压缩,用于以读为主的工作负载环境。