自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 2011中基于列的存儲(chǔ)方式

數(shù)據(jù)庫 SQL Server
從SQL Server 2011開始,微軟為我們提供了第三種選擇。SQL Server會(huì)提供一種“列存儲(chǔ)索引”,從而以列而不是行的方式來存儲(chǔ)數(shù)據(jù)。

和大多數(shù)主流數(shù)據(jù)庫一樣,如果表擁有聚集索引,那么SQL Server就會(huì)以B-樹的方式存儲(chǔ),否則就會(huì)使用堆的方式存儲(chǔ)。這兩種方法本質(zhì)上都是基于行的,其中每頁中行的條數(shù)會(huì)根據(jù)總體上行的大小不同而不同。從SQL Server 2011開始,微軟為我們提供了第三種選擇。SQL Server會(huì)提供一種“列存儲(chǔ)索引”,從而以列而不是行的方式來存儲(chǔ)數(shù)據(jù)。

  當(dāng)使用數(shù)據(jù)規(guī)模為1TB、記錄條數(shù)為十四億四千萬的表時(shí),微軟聲稱基于列的查詢?cè)?a class="nounderline" title="CPU" target="_blank">CPU時(shí)間上會(huì)有16倍的提升,而在使用時(shí)間上會(huì)有455倍的提高。在真實(shí)情況下,這意味著本來要耗費(fèi)501秒的查詢,現(xiàn)在只需要1.1秒就可以完成了。這項(xiàng)測(cè)試是在擁有32個(gè)邏輯處理器和256GB內(nèi)存的計(jì)算機(jī)上執(zhí)行的。

  微軟把每個(gè)列都隔離在自身的一組頁中,從而達(dá)到了這種驚人的改善。當(dāng)執(zhí)行查詢的時(shí)候,只會(huì)從磁盤載入位于結(jié)果集中的列。而包含其它列的頁會(huì)被忽略。

  這種方法相當(dāng)于為每種我們所能想象到的列組合創(chuàng)建替代索引。然而,這種方式不會(huì)消耗大量的磁盤空間,它實(shí)際上會(huì)比傳統(tǒng)的表占用更小的空間。由于SQL Server的壓縮會(huì)發(fā)生在頁級(jí)別上,并且和行相比,列中的數(shù)據(jù)更容易重復(fù),所以使用列存儲(chǔ)索引的表將會(huì)擁有更高的壓縮等級(jí)。

  但暫時(shí)我們還不能輕易決定使用列存儲(chǔ)索引。首先也是最重要的,它們是不可更新的。一旦創(chuàng)建了列存儲(chǔ)的索引,那么就不允許在表上執(zhí)行插入、更新或者刪除等操作了。微軟期望更多商店每天對(duì)數(shù)據(jù)進(jìn)行刷新,否則就需要把數(shù)據(jù)做只讀處理。在刷新周期中,我們會(huì)刪除索引,更新數(shù)據(jù),然后再重新建立索引。由于這肯定是代價(jià)昂貴的操作,所以我們可以使用垂直分區(qū)來把操作限制到邏輯表的子集范圍內(nèi)。

  使用列存儲(chǔ)的索引也會(huì)導(dǎo)致性能的降低。如果你使用大多數(shù)列,那么重新組合行會(huì)耗費(fèi)大量的資源。這意味著OLTP樣式的查詢應(yīng)該避免這種方式,而對(duì)于OLAP形式的查詢,這種方式會(huì)比較有利。或者換句話說,如果你在編寫“SELECT *”或者每次抓取一行數(shù)據(jù),那么列存儲(chǔ)索引就不適合你。

【編輯推薦】

  1. 淺析SQL Server 2008中的代碼安全之三:通過PassPhrase加密
  2. 淺析SQL Server 2008中的代碼安全之四:主密鑰
  3. 淺析SQL Server 2008中的代碼安全之五:非對(duì)稱密鑰加密
  4. 淺析SQL Server 2008中的代碼安全之六:對(duì)稱密鑰加密
  5. 淺析SQL Server 2008中的代碼安全之七:證書加密

 

責(zé)任編輯:艾婧 來源: ITPUB
相關(guān)推薦

2010-07-05 15:12:30

SQL Server主

2010-09-06 11:57:33

sql server語句

2010-11-11 09:51:46

SQL Server添

2010-11-12 09:18:13

SQL Server存

2010-10-19 17:09:27

sql server標(biāo)

2010-09-03 10:52:10

SQL刪除

2011-03-24 13:38:47

SQL Server 存儲(chǔ)分頁

2010-07-14 17:37:33

SQL Server

2011-08-15 15:56:31

SQL Server

2010-07-22 10:38:12

SQL Server所

2010-09-06 11:24:32

SQL Server語句

2010-09-03 15:08:03

SQLselect語句

2011-04-08 09:53:45

Accesssql server存儲(chǔ)翻頁

2010-07-13 14:42:02

SQL Server

2011-09-01 16:13:37

Visual StudSQL Server 存儲(chǔ)過程

2010-11-10 13:03:15

SQL Server存

2010-07-15 12:38:14

SQL Server存

2009-08-06 16:44:06

2011-07-25 16:13:34

SQL Server數(shù)據(jù)挖掘

2011-03-29 13:10:56

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)