您的位置:首页 > 数据库

关于SQL Server 2005 SP2中提供的Vardecimal存储格式

2009-06-12 01:02 381 查看
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!

陈希章

原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/04/13/1434817.html

原文标题:关于SQL Server 2005 SP2中提供的Vardecimal存储格式

原文发表:2009/4/13 7:39:00

这个新的存储格式的主要目的是将decimalh和numberic的长度可变长。这样就可以节省一些存储空间。关于它的一些介绍,可以参考微软官方的文档 ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/udb9/html/b4a37f9c-3b71-43bd-b64e-2bfb5c5817ba.htm   decimalnumeric 数据类型在磁盘上通常存储为固定长度数据。numeric 数据类型的功能等效于 decimal 数据类型。在 SQL Server 2005 Service Pack 2 (SP2) 和更高版本中,可以使用 vardecimal 存储格式将 decimalnumeric 数据类型存储为可变长度列。vardecimal 存储格式仅在 SQL Server 2005 Enterprise Edition、Developer Edition 和 Evaluation Edition 中可用。 Vardecimal 是一种存储格式,而不是数据类型。 vardecimal 存储格式可以大大减少数据的存储大小,但确实增加了少量 CPU 开销vardecimal 存储格式应用于表级别。也就是说,不能只将表中的某些 decimal 列存储为 vardecimal 存储格式而不将其他列存储为该格式。decimal 数据将保持为本身的数据类型。 对表启用 vardecimal 存储格式时,将采用 vardecimal 存储格式将 decimal 数据存储在数据、索引和日志页中。更改存储格式的操作是离线进行的。要修改的表在操作过程中以独占方式锁定,因而无法进行并发读写访问。  

怎么样来理解这个问题呢? 例如某个字段的类型是decimal,然后精度设置为了28.那么,在传统的情况下,不管真正存储的值得精度是多少,那么都将占用13个字节。但是在vardecimal这种存储格式下,如果精度更小一些,则可以使用更少的字节数。 有关启用或者禁用vardecimal的一些脚本,请参考这里 http://blogs.msdn.com/benjones/archive/2006/11/10/using-vardecimal-storage-in-sql-server-2005-sp2-ctp2.aspx
作者:陈希章

出处:http://blog.csdn.net/chen_xizhang

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐