zoukankan      html  css  js  c++  java
  • 关于SQL Server 2005 SP2中提供的Vardecimal存储格式

    这个新的存储格式的主要目的是将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 数据存储在数据、索引和日志页中。更改存储格式的操作是离线进行的。要修改的表在操作过程中以独占方式锁定,因而无法进行并发读写访问。

     

    image

    怎么样来理解这个问题呢?

    例如某个字段的类型是decimal,然后精度设置为了28.那么,在传统的情况下,不管真正存储的值得精度是多少,那么都将占用13个字节。但是在vardecimal这种存储格式下,如果精度更小一些,则可以使用更少的字节数。

    有关启用或者禁用vardecimal的一些脚本,请参考这里

    http://blogs.msdn.com/benjones/archive/2006/11/10/using-vardecimal-storage-in-sql-server-2005-sp2-ctp2.aspx

  • 相关阅读:
    《将博客搬至CSDN》
    2015-05-01 至 2015-07-30错误总结
    2015-01-01至2015-04-30错误积累
    2015-07-30 至 2016-03-16错误Note
    2014-11-21错误总结
    Spring 和 SpringMVC 的区别
    spring 容器加载
    Spring注解
    自定义拦截器
    Js闭包
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1434817.html
Copyright © 2011-2022 走看看