您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“SQL Server 2011存儲方式是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“SQL Server 2011存儲方式是什么”這篇文章吧。
當使用數據規模為1TB、記錄條數為十四億四千萬的表時,微軟聲稱基于列的查詢在CPU時間上會有16倍的提升,而在使用時間上會有455倍的提高。在真實情況下,這意味著本來要耗費501秒的查詢,現在只需要1.1秒就可以完成了。這項測試是在擁有32個邏輯處理器和256GB內存的計算機上執行的。
微軟把每個列都隔離在自身的一組頁中,從而達到了這種驚人的改善。當執行查詢的時候,只會從磁盤載入位于結果集中的列。而包含其它列的頁會被忽略。
這種方法相當于為每種我們所能想象到的列組合創建替代索引。然而,這種方式不會消耗大量的磁盤空間,它實際上會比傳統的表占用更小的空間。由于SQLServer的壓縮會發生在頁級別上,并且和行相比,列中的數據更容易重復,所以使用列存儲索引的表將會擁有更高的壓縮等級。
但暫時我們還不能輕易決定使用列存儲索引。首先也是最重要的,它們是不可更新的。一旦創建了列存儲的索引,那么就不允許在表上執行插入、更新或者刪除等操作了。微軟期望更多商店每天對數據進行刷新,否則就需要把數據做只讀處理。在刷新周期中,我們會刪除索引,更新數據,然后再重新建立索引。由于這肯定是代價昂貴的操作,所以我們可以使用垂直分區來把操作限制到邏輯表的子集范圍內。
使用列存儲的索引也會導致性能的降低。假如你使用大多數列,那么重新組合行會耗費大量的資源。這意味著OLTP樣式的查詢應該避免這種方式,而對于OLAP形式的查詢,這種方式會比較有利。或者換句話說,假如你在編寫“SELECT*”或者每次抓取一行數據,那么列存儲索引就不適合你。
以上是“SQL Server 2011存儲方式是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。