e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> Sybase教程 >> SYBASE内存和缓冲区管理(rekcah0) >> 教程正文
 
教程搜索
 
 
相关教程
  • Sybase数据库简介
  • 为什么有时候数据库事务日
  • 在LINUX下安装 Sybase AS
  • Dealing with identity g
  • 关于sybase数据库的锁
  • SYBASE内存和缓冲区管理(
  • sybase 临时数据库tempdb
  • SYBASE dbccdb的安装配置
  • 从数据库应用系统查找解决
  • Sybase数据库的碎片整理(
  • SYBASE数据库用户管理基本
  • sybase 珍藏系列之三(fr
  • sybase 珍藏系列之四(fr
  • SYBASE补丁安装指南
  • 解决 Error 605 错误的方
  • Sybase TraceFlag 定义
 
 
赞 助 商
 
 
SYBASE内存和缓冲区管理(rekcah0)
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

内存和缓冲区管理

-------------------------------------

为SQL SERVER提供的可用内存越多,SQL SERVER就有越多的资源使用于缓冲区,即可减少服务器

从磁盘读取数据以获取静态信息或编译过程计划的次数。调整SQL SERVER所占内存可通过在服务器配

置文件中设置total memory参数进行,该参数的值指定了SQL SERVER在启动时所需的内存总量,如若

该值为10000页,则SQL SERVER在启动时就将试图获得10000*2K=19.5M的内存,若不能满足则启动失败。

注意,若操作系统在进程的整个生命周期中支持动态内存分配,则可在SQL SERVER启动后为其分配额

外的内存。

SQL SERVER启动时将内存分配给SQL SERVER可执行代码,SQL SERVER使用的静态内存,用户可配

置参数占用的内存及不驻留在缓存上的数据结构,剩余的内存分配给两种SQL SERVER缓冲区即:数据

缓冲区和过程缓冲区。两缓冲区的大小对整个系统的性能影响很大,在一个开发系统上可能要增加过多端

程缓冲区的专用内存,而在一生产系统上则需减少过程缓冲区大小以便获得更大的数据缓冲区。

1。 确定缓冲区大小

在total memory配置的总空间中,首先要除去可爱执行代码所占空间,其大小因平台和版本

不同而异,可使用sp_configure查询executable codesize参数的值得知,一般为3-4MB;其次需

除去内部结构所占空间,内部结构分成内核结构和服务器结构,亦可将此部分内存看成静态开销

和用户配置参数占用两个部分,前者大小不受用户可配置参数的影响,一般为2-3MB,而后者即用

户可配置参数的大小则取决于配置参数的类型及其值的大小,包括number of user connections,

number of open databases,number of devices,number of open objects,number of locks等,

要得到这些用户配置参数使用内存大小的精确估计,可调用不带选项的sp_configure以显示所有

参数和每个参数使用的内存量,其和即是用户配置参数所占用内存。

除去上述占用,剩余内存将以procedure cache percent配置参数的值按比例分配给过程缓冲

区和数据缓冲区,例若值为20,即表示剩余内存的20%分配给过程缓冲区而80%分配给数据缓冲区。

确定缓冲区大小的另一种方法是检查SQL SERVE启动时写入SQL SERVER错误日志的内存信息,

其中准确地说明了分配给过程缓冲区和数据缓冲区的数据量,以及多少个过程或其他编译对象能

同时驻留在缓冲区中,如相关信息为:

server:Number of proc buffers assocated:556

server:Number of blocks left for proc headers:629

server:Memory allocated for the default data cache:4144kb


前两行为过程缓冲区信息,过程缓冲区总大小是分配给过程缓冲区的内存(第一行)及分配给过

程头(即存放编译对象如存储过程的地方,根据被存储对象的大小,可能需要一个或多个过程头)

的内存(第二行)之和,可存储在过程缓冲区中的编译对象受到此二者中较小者的限制。上述信息

中,第一行指明了分配给过程缓冲区的缓冲区数量为556,每个缓冲区大小为76B,故过程缓冲区

大小即为42256B,合21页;第二行则指明了分配给过程头的空间为629页,由此可以得出,过程

缓冲区总大小为629+21=650页,合1.27M。

信息中第三行则指明了分配给默认数据库缓冲区的空间大小。此外,若配置了命名缓冲区,则

相关信息还将包含每个命名缓冲区的信息,再加上这些命名缓冲区所占内存大小即得到总的数据

缓冲区大小。欲知数据缓冲区大小还可通过sp_helpcache过程得到每个缓冲区和捆绑到这些缓冲

区中的对象以及与不同缓冲区大小相关的开销的详细信息。

2。 缓冲区管理

数据缓冲区保存SQL SERVER当前使用和最近使用过的数据页,索引页和日志页.初装SQL SERVER

时,会产生一个默认的数据缓冲区.SQL SERVER允许系统管理员把数据缓冲区分成独立的命名数据

缓冲区,然后可把数据库或数据库对象捆绑到这些命名缓冲区上,以对缓冲区空间进行更合理的组

织,控制数据库,表和索引在内存的驻留.另外,系统管理员还可在缓冲区内创建缓冲池,用于执行

大块的磁盘I/O,改善数据查询性能,减少磁盘I/O.有关数据库缓冲区的指令有:

sp_cacheconfig 创建或删除命名缓冲区,改变缓冲区的大小或类型

sp_poolconfig 创建或删除I/O缓冲池,并改变其大小

sp_bindeache 将数据库或数据库对象捆绑到缓冲区

sp_unbindcache 从一个缓冲区中取消对指定对象或数据库的捆绑

sp_unbindcache_all 从一个缓冲区中取消所有对象的捆绑

sp_helpcache 报告有关数据缓冲区的小结信息,并显示捆绑于缓冲区的数据库和对象

sp_cachestrategy 报告有关为表,索引设置的缓冲区策略,禁止或重新允许先提或MRU策略

sp_logiosize 为日志改变默认的I/O大小

sp_spaceused 估计表和索引大小或有关数据库使用的空间量的信息

sp_estspace 估计表和索引的大小,给出表包含的行的数目

sp_help 报告表将捆绑于哪个缓冲区

sp_helpindex 报告索引将捆绑于哪个缓冲区

sp_helpdb 报告数据库将捆绑于哪个缓冲区

setshowplanon 报告有关用于查询的I/O大小和缓冲区的应用策略

setstatisticsioon 报告为查询进行的读操作数量

setprefetch on/off 允许或禁止某个会话的预先提取

(1) 查询数据库缓冲区的信息


查看默认数据缓冲区的大小,可使用指令sp_cacheconfig "default data cache",显示

结果如下,由两部分构成,上部分报告每个缓冲区中的内存池配置信息并总计了所有配置缓

冲区的大小;下部分提供了每个缓冲区中的其他详细信息.

第一部分输出各列含义为:cache name为缓冲区名;status指示该缓冲区是否激活(值为

pend/act时表示该缓冲区刚建立,重启后将被激活;值为active时表示该缓冲区目前正处于

激活状态;值为pend/del时表示该缓冲区处于激活状态,但在服务器重启后将被删除);type

指示缓冲区是否可以存储数据("mixed")和日志页("logonly"),只有默认缓冲区才会有

"default"类型,且默认的数据缓冲区类型不能改变,其他类型缓冲区也不能改为"default";

config value显示下次SQL SERVER重启后缓冲区的大小,在此情况下,默认缓冲区不能显式

配置,故信息中其大小为0;run value显示SQL SERVER目前使用的大小,对于默认数据缓冲

区,该值将作为未显示配置到其他缓冲区中的所有数据缓冲区空间.

第二部分输出各列含义为:IO size显示缓冲池中的缓存大小,所有缓冲池缺省都分配2K

空间(有效空间大小为2K,4K,8K,16K);wash size指示缓冲池的刷洗区大小;config size和

run size显示配置大小和目前使用的大小,该两值在2K的缓冲池中是不同的(因为不能显式

配置其大小),而对于其他缓冲池,若试图在缓冲池间移动空间而一些空间又不能被释放时,

上述两值也不同.

Cache Name Status Type Config value Run value

---------------- ------ ------ ---------------- -------------

default data cache Active Default 0.00MB 59.36MB

-------------------------------

Total 0.00MB 59.36MB

===================================================================

Cache:default data cache, status:Active, Typeefault

Config Size:0.00MB, Run size:59.36MB

IO Size Wash Size Config Size Run Size

------- --------- ----------- --------

2KB 512KB 0.00MB 59.36MB

(2) 配置数据缓冲区

配置数据缓冲区有两种途径:一是使用过程sp_cacheconfig和sp_poolconfig进行交互

式配置,二

[1] [2] [3] [4] 下一页

  • 上一篇教程: sybase 临时数据库tempdb (Arnold)
  • 下一篇教程: 关于sybase数据库的锁
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.