SQL Server 2012容量管理:列存儲索引

SQL Server 2012引入列存储索引以提高大规模数据集的处理能力,尤其针对数据仓库、商业智能及决策支持应用程序。这种索引将每一列的数据独立打包到磁盘页中,相较于传统行存储方式,能显著提升查询性能并减少磁盘访问时间。
 【TechTarget中國原創】由於在大數據集中常常會出現擴展問題,微軟公司即將推出的SQL Server 2012中大部分針對擴展性和容量管理的新功能都定位專門處理大負載:數據倉庫,商業智能(BI)和决策支持應用程序。把這样一些應用程序整合到一起是相當辛苦的,而維護它們的數據結構就更困難了。

  列存儲索引

  列存儲索引被標榜为SQL Server 2012中最大的可擴展性改進,現在社區技術預覽(CTP)中已經可用了。列存儲索引为每個列把數據打包到磁盤頁的獨立集合中。這是相對於傳統的每頁存儲多行的方法而言的。

  微軟公司宣稱使用這種新的索引方法有幾個優勢。舉例來說,存儲列這種方式使得計算特殊查詢需要的列能輕松快速地提取。這是因为該索引壓縮了數據,平均來看列比整個行更冗餘,因此可壓縮性也更高。磁盤訪問模式和緩沖允許數據被更加快速地提取和保留。在给定表中存在的列越多,或者你計劃添加到给定表中的列越多,列索引给表帶來的擴展效果就越好。

  從擴展性的角度來看,優點是很明顯的。你可以给數據庫擴充容量,而無需擔心這會對BI查詢(查詢的數據可能達到數十億行)性能造成影響。微軟公司自己前期工作發現,請求巨量行數據的各種查詢訂單程數量級激增,這跟你手頭的數據類型有關。

  需要說明的一點是,一旦你给表增加了列存儲索引,它就變成只讀的了。具體來說,你不能使用“Insert,Update,Delete”或者“Merge”語句,也不能使用批量操作添加數據。我猜這是避免列存儲索引被重复更新的一種手段,進而避免損失擺在首位的性能優勢。

  如果你需要在沒有列存儲索引的情況下運行查詢(例如,判斷净性能增益),你可以在T-SQL查詢中使用“IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX”選項,從該選項的名稱也可以看出,微軟公司已經計劃推出集群的列存儲索引。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值