是否有可能列分区在SQL Server(Is it possible to column parti

2019-09-17 20:38发布

表中的每个记录的大小是一个性能参数。 这意味着,如果记录的大小是小的SQL Server获取每个从物理硬盘读取更多的记录。

在我们大多数的查询,我们不能用表的所有列,并可能只有在特定查询的一些列使用。 是否有可能,我们将每个表的列有更好的表现。

我使用SQL Server 2008 R2。

谢谢。

Answer 1:

真正的列级分区带有面向列的存储,看到了SQL Server 2012的列存储索引内 ,但只有在SQL Server 2012和地址特定的BI工作负载,而不是一般的SQL Server应用程序可用。

在行面向存储的垂直分区实际上是对设计恰当的覆盖索引的另一个名字。 如果发动机具有一个替代窄索引它将用它代替基本表中,可能的时。

最后的选择,手动夹板的表,并在查询加入垂直“碎片”(或限定接合视图,同样的事情)通常不明智和很少回报。



Answer 2:

在SQL Server 2008中的那一刻,你不能水平分区表。 如果你有大量的列,你就需要把它切成共享一个共同的关键水平块表,然后用更新能够查看皮肤他们给一个非常宽的表的错觉。

如果只有几个大列(如VARCHAR(1000)就可以标准化数据为唯一值表。



Answer 3:

唯一例外的无柱分区规则被声明为最大字符列(VARCHAR(最大值),例如)。

这些存储在单独的数据页上。 我相信,除非列在查询中引用本页面的读入。 如果我错了,我'肯定更多的知识的人会指正。



文章来源: Is it possible to column partitioning in SQL Server