表每条记录的大小是一个性能参数。这意味着如果记录大小很小,SQL Server 会在每次读取时从物理硬盘获取更多记录。
在大多数查询中,我们不会使用表的所有列,并且可能仅在特定查询中使用某些列。我们是否可以对每个表的列进行分区以获得更好的性能。
我使用 SQL Server 2008 R2。
谢谢。
最佳答案
真正的列级分区带有面向列的存储,请参阅Inside the SQL Server 2012 Columnstore Indexes ,但这仅在 SQL Server 2012 中可用,并且解决特定的 BI 工作负载,而不是一般的 SQL Server 应用程序。
在面向行的存储中,垂直分区实际上是设计适当的覆盖索引的另一个名称。如果引擎有替代的窄索引,它会在可能的情况下使用它而不是基表。
最后一种选择,手动固定表格并在查询中连接垂直“分片”(或定义连接 View ,同样的事情)通常是不明智的,而且很少有返回。
关于sql - SQL Server 是否可以进行列分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10931731/