新聞中心
此文章主要向大家講述的是SQL Server 2008稀疏列與SQL Server 2008列集這兩個(gè)新增的特性的經(jīng)驗(yàn)總結(jié)的描述,如果你對(duì)SQL Server 2008稀疏列與SQL Server 2008列集這兩個(gè)新增的特性的經(jīng)驗(yàn)有興趣的話(huà),你就可以對(duì)以下的文章點(diǎn)擊觀看了。

在江川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都營(yíng)銷(xiāo)網(wǎng)站建設(shè),外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),江川網(wǎng)站建設(shè)費(fèi)用合理。
我的總結(jié)如下
1. 稀疏列主要是為了提供對(duì)可空字段的更好一個(gè)存儲(chǔ)機(jī)制,它可以節(jié)省空間(具體說(shuō)它在真正空值的時(shí)候就不占空間),但也會(huì)帶來(lái)一些性能方面的影響。所以要有所權(quán)衡。
SQL Server 2008稀疏列主要使用場(chǎng)景:一個(gè)實(shí)體有很多屬性列,但很多屬性都可能填不滿(mǎn)。這在以前我們稱(chēng)為屬性集問(wèn)題。
稀疏列不是一個(gè)數(shù)據(jù)類(lèi)型,它是一個(gè)列的屬性而已。
2. 列集是可以定義所有稀疏列的集合。這是一個(gè)XML數(shù)據(jù)類(lèi)型。如果為多個(gè)SQL Server 2008稀疏列定義了一個(gè)列集,那么針對(duì)這些列的修改,就既可以直接修改這些列,也可以通過(guò)一次性通過(guò)修改列集字段來(lái)完成。列集字段其實(shí)是一個(gè)計(jì)算字段。
下面來(lái)看一個(gè)例子
首先,看看如何使用稀疏列。這里的關(guān)鍵在于定義的時(shí)候使用SPARSE關(guān)鍵字
- USE AdventureWorks
- GO
- CREATE TABLE DocumentStore
- (DocID int PRIMARY KEY,
- Title varchar(200) NOT NULL,
- ProductionSpecification varchar(20) SPARSE NULL,
- ProductionLocation smallint SPARSE NULL,
- MarketingSurveyGroup varchar(20) SPARSE NULL ) ;
- GO
插入數(shù)據(jù)是一模一樣的
- INSERT DocumentStore(DocID, Title, ProductionSpecification, ProductionLocation)
- VALUES (1, 'Tire Spec 1', 'AXZZ217', 27)
- GO
- INSERT DocumentStore(DocID, Title, MarketingSurveyGroup)
- VALUES (2, 'Survey 2142', 'Men 25 - 35')
GO然后,我們看看如何把列集與SQL Server 2008稀疏列進(jìn)行結(jié)合使用
- USE AdventureWorks;
- GO
- CREATE TABLE DocumentStoreWithColumnSet
- (DocID int PRIMARY KEY,
- Title varchar(200) NOT NULL,
- ProductionSpecification varchar(20) SPARSE NULL,
- ProductionLocation smallint SPARSE NULL,
- MarketingSurveyGroup varchar(20) SPARSE NULL,
- MarketingProgramID int SPARSE NULL,
- SpecialPurposeColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS);
目前這里只是支持ALL_SPARSE_COLUMNS這個(gè)關(guān)鍵字,也就是說(shuō)所有的稀疏列
GO
使用列集之后,既可以直接使用列集插入數(shù)據(jù),也可以使用SQL Server 2008稀疏列本身插入數(shù)據(jù)
- INSERT DocumentStoreWithColumnSet (DocID, Title, ProductionSpecification, ProductionLocation)
- VALUES (1, 'Tire Spec 1', 'AXZZ217', 27)
- GO
- INSERT DocumentStoreWithColumnSet (DocID, Title, MarketingSurveyGroup)
- VALUES (2, 'Survey 2142', 'Men 25 - 35')
- GO
- INSERT DocumentStoreWithColumnSet (DocID, Title, SpecialPurposeColumns)
- VALUES (3, 'Tire Spec 2','
AXW9R411 38 ')
GO有意思的是,此時(shí)如果再以SELECT *的語(yǔ)法查詢(xún)?cè)摫淼脑?huà),那些稀疏列默認(rèn)是不會(huì)被返回的,而只是返回列集
當(dāng)然啦,如果還是想返回SQL Server 2008稀疏列本身的內(nèi)容,我們可以通過(guò)下面的語(yǔ)法
- SELECT DocID, Title, ProductionSpecification, ProductionLocation FROM
- DocumentStoreWithColumnSet WHERE ProductionSpecification IS NOT NULL ;
至于更新,和插入一樣,兩種方式都是可以的,且效果一樣
網(wǎng)頁(yè)名稱(chēng):SQLServer2008稀疏列與列集的經(jīng)驗(yàn)總結(jié)
文章位置:http://m.5511xx.com/article/djdgcdc.html


咨詢(xún)
建站咨詢(xún)
