SQL Server 2008 引入了“稀疏列”
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-01-09 18:51:21 閱讀次數(shù):3387次
(稀疏列)一種可能的用途是——在聯(lián)系人管理系統(tǒng)中,保存一個(gè)聯(lián)系人的大量信息。往往只有很少的用戶(hù)才會(huì)填入所有信息,這就潛在地浪費(fèi)了大量的空間。(以前)通用的解決方案是,創(chuàng)建一個(gè)“實(shí)體-屬性-值”表,這個(gè)表保存了聯(lián)系人編號(hào)、屬性的名稱(chēng)或關(guān)鍵字以及屬性的值。
但“實(shí)體-屬性 -值”表也存在一些問(wèn)題。一個(gè)問(wèn)題是,這種表的大小要比普通表增長(zhǎng)得快,可能會(huì)導(dǎo)致一些嚴(yán)重的性能問(wèn)題。另外,這種表不具有嚴(yán)格的關(guān)系。轉(zhuǎn)化一個(gè)“實(shí)體 -屬性-值”表到一個(gè)普通表需要花費(fèi)大量的時(shí)間,尤其在SQL Server 2005引入PIVOT關(guān)鍵詞之前。
通過(guò)使用稀疏列,列數(shù)量的限制和相關(guān)的空間要求問(wèn)題都被根除了。按照Steve Jones的說(shuō)法,SQL Server 2008理論上能夠支持“成千上萬(wàn)的稀疏列”。不過(guò)目前關(guān)于這個(gè)特性的細(xì)節(jié)還不多。
Bob Beauchemin給出了一個(gè)使用該新語(yǔ)法的例子:
CREATETABLEproducts(product_numint,item_numint,pricedecimal(7,2),...,
colorchar(5)SPARSE,widthfloatSPARSE...)
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)