您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

SQL Server 2008中的稀疏列和列集

2024/2/17 16:05:55发布16次查看
这是两个新增的特性。 关于稀疏列的详细介绍,请参考 关于列集的详细介绍,请参考 我的总结如下 1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权
这是两个新增的特性。
关于稀疏列的详细介绍,请参考
关于列集的详细介绍,香港服务器,请参考  
我的总结如下
1. 稀疏列主要是为了提供对可空字段的更好一个存储机制,它可以节省空间(具体说它在真正空值的时候就不占空间),但也会带来一些性能方面的影响。所以要有所权衡。
稀疏列主要使用场景:一个实体有很多属性列,但很多属性都可能填不满。这在以前我们称为属性集问题。
稀疏列不是一个数据类型,它是一个列的属性而已。
2. 列集是可以定义所有稀疏列的集合。这是一个xml数据类型。如果为多个稀疏列定义了一个列集,那么针对这些列的修改,就既可以直接修改这些列,也可以通过一次性通过修改列集字段来完成。列集字段其实是一个计算字段。
下面来看一个例子
首先,看看如何使用稀疏列。这里的关键在于定义的时候使用sparse关键字
use adventureworksgocreate 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)goinsert documentstore(docid, title, marketingsurveygroup)values (2, 'survey 2142', 'men 25 - 35')go 然后,我们看看如何把列集与稀疏列进行结合使用use adventureworks;gocreate 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)goinsert 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 *的语法查询该表的话,那些稀疏列默认是不会被返回的,而只是返回列集
当然啦,如果还是想返回稀疏列本身的内容,我们可以通过下面的语法select docid, title, productionspecification, productionlocation from documentstorewithcolumnsetwhere productionspecification is not null ;
至于更新,和插入一样,两种方式都是可以的,且效果一样
,香港服务器
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product