是否可以在 SQL Server 中进行列分区 [英] Is it possible to column partitioning in SQL Server

查看:38
本文介绍了是否可以在 SQL Server 中进行列分区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

The size of each record of table is a performance parameter. that means if size of record was small SQL Server fetch more records in each read from physical hard.

在我们的大多数查询中,我们不会使用表的所有列,并且可能某些列仅在特定查询中使用.我们是否可以对每个表的列进行分区以获得更好的性能.

In most of our queries we not use all column of table, and may be some column use only in specific query. Is it possible for we partitioning columns of each table to have better performance.

我使用 SQL Server 2008 R2.

I use SQL Server 2008 R2.

谢谢.

推荐答案

真正的列级分区带有面向列的存储,参见 在 SQL Server 2012 列存储索引内部,但这仅在 SQL Server 2012 中可用并解决特定的 BI 工作负载,而不是一般的 SQL Server 应用程序.

True column level partitioning comes with column oriented storage, see Inside the SQL Server 2012 Columnstore Indexes, but that is available only in SQL Server 2012 and addresses specific BI workloads, not general SQL Server apps.

在面向行的存储中,垂直分区实际上是设计适当覆盖索引的另一个名称.如果引擎有替代的窄索引,它会在可能的情况下使用它而不是基表.

In row oriented storage the vertical partitioning is actually another name for designing proper covering indexes. If the engine has an alternative narrow index it will use it instead of the base table, when possible.

最后一种选择,手动拆分表并在查询中加入垂直分片"(或定义连接视图,同样的事情)通常是不明智的,很少有回报.

The last alternative, manually splinting the table and joining the vertical 'shards' in queries (or defining joining views, same thing) is usually ill advised and seldom pays off.

这篇关于是否可以在 SQL Server 中进行列分区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆