偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server 2008稀疏列與列集的經驗總結

數(shù)據庫 SQL Server
下面的文章主要介紹的是SQL Server 2008稀疏列與SQL Server 2008列集這兩個新增的特性的經驗總結,以下就是文章的主要內容講解。

此文章主要向大家講述的是SQL Server 2008稀疏列與SQL Server 2008列集這兩個新增的特性的經驗總結的描述,如果你對SQL Server 2008稀疏列與SQL Server 2008列集這兩個新增的特性的經驗有興趣的話,你就可以對以下的文章點擊觀看了。

 

我的總結如下

1. 稀疏列主要是為了提供對可空字段的更好一個存儲機制,它可以節(jié)省空間(具體說它在真正空值的時候就不占空間),但也會帶來一些性能方面的影響。所以要有所權衡。

SQL Server 2008稀疏列主要使用場景:一個實體有很多屬性列,但很多屬性都可能填不滿。這在以前我們稱為屬性集問題。

稀疏列不是一個數(shù)據類型,它是一個列的屬性而已。

2. 列集是可以定義所有稀疏列的集合。這是一個XML數(shù)據類型。如果為多個SQL Server 2008稀疏列定義了一個列集,那么針對這些列的修改,就既可以直接修改這些列,也可以通過一次性通過修改列集字段來完成。列集字段其實是一個計算字段。

下面來看一個例子

首先,看看如何使用稀疏列。這里的關鍵在于定義的時候使用SPARSE關鍵字

 

  1. USE AdventureWorks   
  2. GO   
  3. CREATE TABLE DocumentStore   
  4. (DocID int PRIMARY KEY,   
  5. Title varchar(200) NOT NULL,   
  6. ProductionSpecification varchar(20) SPARSE NULL,   
  7. ProductionLocation smallint SPARSE NULL,   
  8. MarketingSurveyGroup varchar(20) SPARSE NULL ) ;   
  9. GO  

插入數(shù)據是一模一樣的 

  1. INSERT DocumentStore(DocID, Title, ProductionSpecification, ProductionLocation)   
  2. VALUES (1, 'Tire Spec 1', 'AXZZ217', 27)   
  3. GO   
  4. INSERT DocumentStore(DocID, Title, MarketingSurveyGroup)   
  5. VALUES (2, 'Survey 2142', 'Men 25 - 35') 

GO然后,我們看看如何把列集與SQL Server 2008稀疏列進行結合使用

 

 

  1. USE AdventureWorks;   
  2. GO   
  3. CREATE TABLE DocumentStoreWithColumnSet   
  4. (DocID int PRIMARY KEY,   
  5. Title varchar(200) NOT NULL,   
  6. ProductionSpecification varchar(20) SPARSE NULL,   
  7. ProductionLocation smallint SPARSE NULL,   
  8. MarketingSurveyGroup varchar(20) SPARSE NULL,   
  9. MarketingProgramID int SPARSE NULL,   
  10. SpecialPurposeColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS); 

目前這里只是支持ALL_SPARSE_COLUMNS這個關鍵字,也就是說所有的稀疏列 

GO

 

使用列集之后,既可以直接使用列集插入數(shù)據,也可以使用SQL Server 2008稀疏列本身插入數(shù)據

 

  1. INSERT DocumentStoreWithColumnSet (DocID, Title, ProductionSpecification, ProductionLocation)   
  2. VALUES (1, 'Tire Spec 1', 'AXZZ217', 27)   
  3. GO   
  4. INSERT DocumentStoreWithColumnSet (DocID, Title, MarketingSurveyGroup)   
  5. VALUES (2, 'Survey 2142', 'Men 25 - 35')   
  6. GO  
  7. INSERT DocumentStoreWithColumnSet (DocID, Title, SpecialPurposeColumns)   
  8. VALUES  (3, 'Tire Spec 2','<ProductionSpecification>AXW9R411</ProductionSpecification><ProductionLocation>38</ProductionLocation>')    

GO有意思的是,此時如果再以SELECT *的語法查詢該表的話,那些稀疏列默認是不會被返回的,而只是返回列集

 

當然啦,如果還是想返回SQL Server 2008稀疏列本身的內容,我們可以通過下面的語法

 

  1. SELECT  DocID, Title, ProductionSpecification, ProductionLocation FROM    
  2. DocumentStoreWithColumnSet WHERE ProductionSpecification IS NOT NULL ;  

 

 

至于更新,和插入一樣,兩種方式都是可以的,且效果一樣

 

【編輯推薦】

  1. SQL Server DateTime數(shù)據類型的另類解讀
  2. SQL Server identity列,美中不足之處
  3. SQL Server實例中對另個實例的調用
  4. SQL Server 2008數(shù)據庫中正確的對驗證數(shù)據挖掘模型
  5. SQL Server2000連接錯誤的緣由有哪些?

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-06 12:27:32

SQL Server

2010-07-26 13:47:11

SQL Server

2011-03-28 17:12:36

sql server數(shù)優(yōu)化

2009-03-11 15:40:20

2009-09-16 17:44:54

LINQ to SQL

2010-11-11 09:51:46

SQL Server添

2010-07-14 09:17:17

SQL Server數(shù)

2009-10-15 09:27:00

2010-05-19 16:57:49

SVN與CVS的區(qū)別

2011-07-21 13:40:17

java

2010-07-16 15:53:19

SQL Server數(shù)

2010-10-19 17:09:27

sql server標

2009-09-16 17:13:54

學習Linq

2009-08-19 09:24:43

AJAX引擎經驗總結

2009-09-29 16:32:11

OJB Hiberna

2010-06-17 16:06:07

SQL Server數(shù)

2018-06-07 09:29:34

數(shù)據庫MySQL慢SQL

2017-11-09 17:35:21

數(shù)據庫OracleSQL優(yōu)化

2010-05-17 13:34:47

2010-03-25 13:42:14

云計算
點贊
收藏

51CTO技術棧公眾號