SQL Server 2008 引入了“稀疏列”

iSQlServer發表於2008-12-17
SQL Server 2008 消除了每個表只能有1024個列的限制,這是通過一個名叫“稀疏列(sparse columns)”的選項來實現的。雖然不限制列的個數看起來似乎沒有多大用處,但確實曾經有開發人員反對過這種限制。
 
(稀疏列)一種可能的用途是——在聯絡人管理系統中,儲存一個聯絡人的大量資訊。往往只有很少的使用者才會填入所有資訊,這就潛在地浪費了大量的空間。(以前)通用的解決方案是,建立一個“實體-屬性-值”表,這個表儲存了聯絡人編號、屬性的名稱或關鍵字以及屬性的值。
 
但“實體-屬性 -值”表也存在一些問題。一個問題是,這種表的大小要比普通表增長得快,可能會導致一些嚴重的效能問題。另外,這種表不具有嚴格的關係。轉化一個“實體 -屬性-值”表到一個普通表需要花費大量的時間,尤其在SQL Server 2005引入PIVOT關鍵詞之前。
 
通過使用稀疏列,列數量的限制和相關的空間要求問題都被根除了。按照Steve Jones的說法,SQL Server 2008理論上能夠支援“成千上萬的稀疏列”。不過目前關於這個特性的細節還不多。
 
Bob Beauchemin給出了一個使用該新語法的例子 :
 
CREATE TABLE products (product_num int, item_num int, price decimal(7,2), ...,
color char(5) SPARSE, width float SPARSE...)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-513655/,如需轉載,請註明出處,否則將追究法律責任。

相關文章