sql server 2008中使用稀疏列和列集的方法

sql server 2008中使用稀疏列和列集的方法

ID:14202549

大小:68.50 KB

页数:7页

时间:2018-07-26

sql server 2008中使用稀疏列和列集的方法_第1页
sql server 2008中使用稀疏列和列集的方法_第2页
sql server 2008中使用稀疏列和列集的方法_第3页
sql server 2008中使用稀疏列和列集的方法_第4页
sql server 2008中使用稀疏列和列集的方法_第5页
资源描述:

《sql server 2008中使用稀疏列和列集的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQLServer2008中使用稀疏列和列集的方法尽管存储的成本已经很低了,但是我们仍然需要考虑使用多种技术(例如压缩和存档)来节省空间。当你思考怎样节省空间时,你第一个想到的是文件系统,但是空间节省也可以用在数据库。当我们创建一个数据库时,我们确保数据文件具有合适的大小和增长速度。我们定期分析我们的数据库规模并执行缩小操作。我们可能执行这些任务用于不同的目的,但是有一个方面是相同的,这些任务帮助我们确保我们的数据库具有最佳的存储。MicrosoftSQLServer为我们提供了用于降低数据库所用空间的各种技术。SQLServer2008推出

2、了一个用于定位可为空字段的技术,它为可为空字段提供了最佳的存储。在SQLServer2008中的这个新特性就是稀疏列。这篇文章不会讲述很多关于稀疏列的特性,它介绍了具有列集的稀疏列的使用,以及在使用它们时你需要了解和考虑的事情。这篇文章描述:◆什么是稀疏列?◆什么是列集?◆在一个列集中插入和更新数据。◆使用触发器跟踪变更。◆对列集实施安全。什么是稀疏列?稀疏列是一个普通字段,就像其它字段一样,但是它降低了对空值的存储要求。一个可为空字段可以在表创建或修改时添加SPARSE关键字来成为稀疏列。如果一个列是稀疏列,那么SQLServer不会为空值

3、分配空间。注意,在使用这个特性时它会增加对非空值数据提取的花费。因此你需要计算可以节省的空间来仔细地对字段应用这个特性。推荐只在空间至少可以节省20%至40%时使字段成为稀疏列。BLO提供了一个包含字段中每个数据类型所需空值百分比的表,以便使这些字段成为稀疏列。什么是列集?列集是一个显示所有稀疏列的字段,它作为一个XML类型的字段添加到表中。它不是物理上存在于这个表中的,它只像是一个计算出来的字段,但是它允许你对它进行修改。推荐你只在有很多稀疏列时使用列集,因为如果使用了列集而不是使用各个稀疏列,那么它会加快修改和提取。下面的代码显示了为一个

4、表创建一个列集的方法。代码1:创建一个具有稀疏列和一个列集的表。CREATETABLE[dbo].[Customers]([Id]intPRIMARYKEY,[FirstName]varchar(50)NOTNULL,[LastName]varchar(50)NOTNULL,[Gender]bitSPARSENULL,--1=male,2=female[Telephone]varchar(15)SPARSENULL,[MonthlyIncome]moneySPARSENULL,[Comments]varchar(1000)SPARSENULL

5、[AllSparseColumns]xmlCOLUMN_SETFORALL_SPARSE_COLUMNS) 我为所有可为空字段添加了SPARSE关键字,但是如同我前面提到的,应该在使它们成为稀疏列之前分析空值所占百分比。注意,当你创建这个表时你需要添加这个字段。SQLServer不允许你没有稀疏列的情况下拥有列集字段。之后添加为稀疏列的字段可以使用添加的列集,看下面的代码:代码2:创建具有一个列集的表,不使任何字段成为稀疏列。--addingcolumnsetwithoutsparsecolumnsCREATETABLE[dbo].[Cust

6、omers_1]([Id]intPRIMARYKEY,[FirstName]varchar(50)NOTNULL,[LastName]varchar(50)NOTNULL,[Gender]bitNULL,--1=male,2=female[Telephone]varchar(15)NULL,[MonthlyIncome]moneyNULL,[Comments]varchar(1000)NULL,[AllSparseColumns]xmlCOLUMN_SETFORALL_SPARSE_COLUMNS)--insertingarecordINSE

7、RTINTOdbo.Customers_1([Id],[FirstName],[LastName],[Gender],[Telephone],[MonthlyIncome],[Comments])VALUES(1,'Dinesh','Priyankara',1,'777395871',20000,'nocomments')--thisreturnsnullSELECTAllSparseColumnsFROMdbo.Customers_1--MaketheGendercolumnasasparsecolumnALTERTABLE[dbo].[C

8、ustomers_1]ALTERCOLUMN[Gender]bitSPARSENULLGO--MaketheTelephonecolumnasasparsecolu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。