技术资料首页 >> 数据库专栏 >> Sybase专栏 >> SYBASE内存和缓冲区管理

SYBASE内存和缓冲区管理 (3)

2007-03-04 10:18:09作者: 来源:http://www.chinaunix.net/jh/21/15715.html 浏览次数:37 文字大小:【】【】【
sp;    -------      ---------     -----------     --------
          2KB          512KB         0.00MB          10.00MB \
        若要保留一个只用于事务日志的缓冲区的类型,可以将缓冲区的类型设为"logonly",
      如创建"logonly"类型的pubs_log缓冲区为sp_cacheconfig pubs_log,"7M","logonly",
      下示为该缓冲区在重启前的状态.
         Cache   Name       Status    Type    Config Value     Run value
       ----------------     ------   ------ ---------------- -------------
        pubs_cache         pend/act log only  7.00MB            0.00MB 
                                           -------------------------------
                                      Total   7.00MB            0.00MB
        创建命名缓冲区后一般都须将某些对象捆绑到该缓冲区上。若建立命名缓冲区后
      未将任何对象捆绑到该命名缓冲区上,则该命名缓冲区所占内存将被浪费,因为任
      何未指定缓冲区的对象都将缺省使用默认数据缓冲区default data cache.
    >;   将数据缓冲区划分为缓冲池
        建立数据缓冲区后,可将其划分成缓冲池,各不同的缓冲池具有不同的I/O大小,当
      SQL SERVER进行大I/O操作时,可将许多页一次读入缓冲区中,故可提高I/O效率.这些
      页总是被当作一个单元进行处理,它们共存于缓冲区中,作为一个单元被写到磁盘中.
      缓冲池的页大小可为2K,4K,8K,16K,缓冲池的总大小不能低于512K.所有关于缓冲池
      的配置都是动态的,无需重启SQL SERVER即可生效.SQL SERVER内2K页缓冲池的个数
      必须保持一个合理的值,否则将会影响SQL SERVER性能,因为某些命令只能使用2K
      的I/O块如disk init及某些dbcc命令。  
        在pubs_cache数据缓冲区中创建一个每页16K,总空间为7MB的缓冲池,指令如下.通
      常,创建命名数据缓冲区时,其空间总是被默认划分为每页2K的缓冲池,创建其它页大
      小的缓冲池时,该2K页缓冲池空间被部分分配给新缓冲池.下例中2K页大小的缓冲池
      原共有10M空间,分配给7M给16K页的新缓冲池后,2K页缓冲池还剩3M空间.
        >;sp_poolconfig pubs_cache,"7M","16K"
        >;go
        >;sp_cacheconfig pubs_cache
         Cache   Name       Status    Type    Config Value     Run value
       ----------------     ------   ------ ---------------- -------------
        pubs_cache          Active   mixed   10.00MB           10.00MB
                                           -------------------------------
                                      Total  10.00MB           10.00MB
       ===================================================================
       Cache:pubs_cache,           status:Active,    Type:mixed  
       Config Size:10.00MB,        Run size:10.00MB
          IO Size      Wash Size     Config Size     Run Size
          -------      ---------     -----------     --------
          2KB          512KB         0.00MB           3.00MB 
          16KB         1424KB        7.00MB           7.00MB
        在默认数据缓冲区中也可创建缓冲池,如创建16K缓冲池,空间大小为8M,则指令为:
      sp_poolconfig "default data cache","8M","16K".
        若要为一个数据库的事务日志创建缓冲区,应配置缓冲区中大部分空间来匹配日志  
      I/O的大小.默认值为4K,若没有4K的可用缓冲池,SQL SERVER就为日志使用2K的I/O.
      日志I/O的大小可通过系统过程sp_logiosize来改变,每个数据库的日志I/O大小会在 
      SQL SERVER启动后的错误日志中报告,也可通过使用数据库和执行不带参数的过程
      sp_logiosize来检查一个数据库的日志I/O大小.如为pubs_log缓冲区配置4K页大小
      的缓冲池指令为sp_poolconfig pubs_log,"3M","4K",也可在默认数据缓冲区中创
      建一个4K页缓冲池,以供未被捆绑至其它缓冲区的任何数据库的事务日志来使用:
      sp_poolconfig "default data cache","2.5M","4K".
        此外,可修改缓冲池大小,如从16K页I/O的缓冲池中取出1M空间增加到4K页I/O缓
      冲池中:sp_poolconifg pub_cache,"1M","4K","16K"
    >;   缓冲区悃绑操作
        系统管理员把数据缓冲区分成独立的命名数据缓冲区后,可将数据库对象捆绑到这
      些缓冲区上,以控制数据库,表和索引在内存的驻留.若建立命名缓冲区后未将任何对
      象捆绑到该命名缓冲区上,则该命名缓冲区所占内存将被浪费,因为任何未指定缓
      冲区的对象都将缺省使用默认数据缓冲区default data cache.为了将任何系统表,
      包括事务日志syslogs捆绑至缓冲区中,数据库须处于单用户模式.对象被捆绑后立即
      生效而无需重启SQL SERVER.注意,进行捆绑或删除捆绑操作时,SQL SERVER需锁定相
      应对象,故
[1] [2] [3] [4] [5]

相关文章