最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

SQLServer2008中的稀疏列和列集

来源:懂视网 责编:小采 时间:2020-11-09 10:18:56
文档

SQLServer2008中的稀疏列和列集

SQLServer2008中的稀疏列和列集:这是两个新增的特性。 关于稀疏列的详细介绍,请参考 关于列集的详细介绍,请参考 我的总结如下 1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权
推荐度:
导读SQLServer2008中的稀疏列和列集:这是两个新增的特性。 关于稀疏列的详细介绍,请参考 关于列集的详细介绍,请参考 我的总结如下 1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权

这是两个新增的特性。 关于稀疏列的详细介绍,请参考 关于列集的详细介绍,请参考 我的总结如下 1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权

这是两个新增的特性。

关于稀疏列的详细介绍,请参考

关于列集的详细介绍,香港服务器,请参考

我的总结如下

1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权衡。

稀疏列主要使用场景:一个实体有很多属性列,但很多属性都可能填不满。这在以前我们称为属性集问题。

稀疏列不是一个数据类型,它是一个列的属性而已。

2. 列集是可以定义所有稀疏列的集合。这是一个XML数据类型。如果为多个稀疏列定义了一个列集,那么针对这些列的修改,就既可以直接修改这些列,也可以通过一次性通过修改列集字段来完成。列集字段其实是一个计算字段。

下面来看一个例子

首先,看看如何使用稀疏列。这里的关键在于定义的时候使用SPARSE关键字

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 --插入数据是一模一样的 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 然后,我们看看如何把列集与稀疏列进行结合使用 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这个关键字,也就是说所有的稀疏列 GO --使用列集之后,服务器空间,既可以直接使用列集插入数据,也可以使用稀疏列本身插入数据 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', 'AXW9R41138') GO 有意思的是,此时如果再以SELECT *的语法查询该表的话,那些稀疏列默认是不会被返回的,而只是返回列集

image

当然啦,如果还是想返回稀疏列本身的内容,我们可以通过下面的语法 SELECT DocID, Title, ProductionSpecification, ProductionLocation FROM DocumentStoreWithColumnSet WHERE ProductionSpecification IS NOT NULL ;

image

至于更新,和插入一样,两种方式都是可以的,且效果一样

,香港服务器

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

SQLServer2008中的稀疏列和列集

SQLServer2008中的稀疏列和列集:这是两个新增的特性。 关于稀疏列的详细介绍,请参考 关于列集的详细介绍,请参考 我的总结如下 1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权
推荐度:
标签: 中的 2008 server
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top