3.5.4-SYBASE数据库系统内存分配(参考模板)
- 格式:doc
- 大小:21.50 KB
- 文档页数:8
SYBASE系统参数调整1. max memory:此参数用于指定SYBASE数据库服务器在计算机中使用的最大内存量。
通过将此参数设置为较大的值,可以提高该数据库服务器的性能。
如果可用的内存较少,则应适当减小此值。
2. number of engines:此参数用于指定SYBASE数据库服务器使用的引擎数量。
增加此参数的值可以提高并发访问性能。
然而,将该值设置得太高可能会浪费资源。
一般来说,使用与服务器CPU数量相同的值是安全的做法。
3. max scan parallel degree:此参数用于指定SYBASE数据库服务器执行并行扫描时使用的最大并行度。
通过将此参数设置为较大的值,可以提高并行扫描的性能。
4. sys statistics:此参数用于指定数据库服务器在自动生成查询计划时使用的统计信息的有效期限。
适当设置此参数的值可以提高查询性能。
默认情况下,此参数的值设置为30天。
5. max degree of parallelism:此参数用于指定SYBASE数据库服务器在执行并行查询时使用的最大并行度。
增加此参数的值可以提高查询性能。
然而,将该值设置得太高可能会增加系统负载。
6. max worker processes:此参数用于指定SYBASE数据库服务器使用的最大工作进程数量。
适当增加此参数的值可以提高并发性能。
默认情况下,此参数的值设置为255,但在大型服务器上,可能需要适当增加此值。
7. tempdb设备数:tempdb是SYBASE数据库服务器用于处理临时数据的数据库。
将tempdb数据库分配到多个设备上可以提高临时数据处理的性能。
8. prefetch parallel degree:此参数用于指定SYBASE数据库服务器在执行预取操作时使用的并行度。
适当增加此参数的值可以提高查询性能。
9. max rows per stack:此参数用于指定SYBASE数据库服务器在语句执行期间允许的最大行数。
1.安装sybase时选择自定义方式配置sybase server,将页大小设置为大于4k2.服务器端:/opt/sybase/shared/sybcentral43/scjview.sh3.安装完毕后配置sybase sever,右健选择Properties,在打开的窗口中选择ServerCorfiguration,将lock scheme修改为datarows,如下图所示4.新建数据库,右健选择“新建-Database”,输入数据库名称,如下图5.点击下一步,点击Add,勾选Data后选择data_dev,并在界面的下方设置库的大小,确定保存6.然后勾选TransactiomLog后,选择log_dev,并在下方设置日志的大小,7.点击“下一步”后,点击完成,数据库创建成功8.新建完成后,修改该库属性的allow null by default和selectinto/balkcopy/pllsort为选中状态9.10.选择Logins,右健新建Logins,在打开的窗口中,输入用户名和密码,注意不要在createnew user页中选择任何数据库,如下图11.连续点击下一步后,在如下图的窗口中,去掉所有的勾选项,点击“完成”12.选择刚建成的用户,右健选择“Properties”后,在弹出窗口中选择Users,点击Add,将新建数据库的dbo添加到新的login中,并选择数据库,确定保存13.如果连接该数据库的用户比较多,比如用连接池连接,可以在配置数据库时将number ofremote connections和number of remote logins设置大一些,如果使用索引可以将number of open indexes设置大一些。
Sybase 数据库空间扩容配置手册版本<V1.0>目 录1 扩容概述 ................................................................................................................ 1 2 Sybase 数据库备份 ............................................................................................. 1 3 Sybase 数据库扩容 (2)3.1 新增系统设备扩容数据库 ........................................................................................ 2 3.2数据库增加设备 (2)2Sybase 数据库备份错误!未定义书签。
3Sybase 数据库扩容错误!未定义书签。
3.1新增系统设备扩容数据库错误!未定义书签。
3.2数据库增加设备错误!未定义书签。
1 扩容概述该文档根据当前sybase 数据库设备对应的裸设备使用情况.(即:裸设备Unused 为0,可扩容的空间已不足),而定制一份扩容方案,扩容步骤即重新规划裸设备,初始化数据库裸设备,指定裸设备设备大小,为每个数据库指定新的设备,从而扩容该数据库空间。
2 Sybase 数据库备份master 数据库的备份与恢复.备注:需要在备份前启动sybase 的备份服务.主机操作编号 任务内容命令执行结果1启动SYBASE 服务与备份服务#startserver -f 服务名#startserver -f 备份服务名2 Master 数据库备份 dump database master to “D:/backup/xxx.dmp”3Master 数据库恢复load database master from “D:/backup/xxx.dmp”拟制 日期 审核 日期 批准日期3 Sybase数据库扩容3.1 新增系统设备扩容数据库1.外置存储方面,需要先在磁盘柜上划分对应的LUN设备。
Sybase配置参数1Sybase配置参数1.1配置cpu个数sp_configure 'max online engines',4go1.2配置启动cpu个数sp_configure 'number of engines at startup',4go1.3配置最大内存数sp_configure 'max memory' ,2097151(拟分配内存/2K) go 1.4分配最大存储过程缓存sp_configure 'procedure cache',102400go1.5配置高速缓存sp_cacheconfig 'default data cache' , '700M'go1.6缺省缓存分配页大小sp_poolconfig 'default data cache','200M','16K'go1.7网络包大小sp_configure 'max network packet size',1024go1.8最大连接数sp_configure 'number of user connections',500go1.9最大打开对象sp_configure 'number of open object',9000go1.10最大索引sp_configure 'number of open index',10000go1.11最大锁数sp_configure 'number of locks',100000go1.12增加网络内存--sp_configure 'additional network memory',1024 go1.13锁内存sp_configure 'lock shared memory',512go1.14优化tempdbselect dbid, name,segmapfrom sysusages, sysdeviceswhere sysdevices.low <= sysusages.size +vstart and sysdevices.high >=sysusages.size+vstart -1 and dbid =2 and (status=2 or status=3)gouse tempdbgosp_dropsegment 'default',tempdb,mastergosp_dropsegment 'logsegment',tempdb,mastergoselect dbid, name,segmapfrom sysusages, sysdeviceswhere sysdevices.low <= sysusages.size +vstart and sysdevices.high >=sysusages.size+vstart -1 and dbid =2 and (status=2 or status=3)gosp_cacheconfig tempdb_cache, '100M'gosp_poolconfig tempdb_cache,'50M','16K'gosp_bindcache 'tempdb_cache',tempdbgosp_helpcache tempdb_cacheselect name,id from syscharsetsdbcc traceon(3604)dbcc memusage2数据库安装的优化2.1应用数据库使用裸设备若在UNIX(UNIXWARE)操作系统下安装数据库服务器,请将SYBASE应用数据库的设备(device)安装成裸设备。
Sybase 安装及系统管理之上篇RAW Device(裸分区) VS Filesystem Device裸分区是指磁盘的一块物理分区,没有用作操作系统,其读写不通过操作系统缓冲。
传统的Unix安装ASE推荐使用RAW Device确保资料的完整性和较好的IO性能。
但在新版的Unix和Linux中UFS和JFS在资料完整性和读写性能的差距相较于裸设备已经非常微弱。
还有就是裸设备的管理比较复杂。
从ASE12.0开始Sybase提供dsync的属性对数据库设备禁止write-cache(写回缓冲)以确保资料的完整性和可恢复性。
裸设备的使用出于安全和资料完整性方面的考虑比性能考虑多。
Async I/O (异步I/O)异步IO是在一个IO动作未完成时同时可进行另外的动作。
异步IO对于数据库的IO性能有较大的影响。
在AIX和HP中都需要通过重新编译内核来支持。
二.关于内存:首先确定可用的总的物理内存然后减去操作系统,Backup, Monitor等Sybase相关软件的开销即为Sybase总的可用内存。
(建议服务器只做单纯的ASE服务器并要删除不必要的服务以减少开销,例如xwindow)在Unix及Linux中需要调整一些核心参数以支持较大的物理内存。
以下列出一些可能需要调整的参数: shmmax(最大共享内存段大小,单位为字节),shmall(可用内存的总数量,如果是字节同shmmax一样)。
其余的像shmmin等参数请参考操作系统手册。
Sybase利用max memory确定最大可用内存量,具体内存的分配方式取决于以下两个参数allocate max shared memory和dynamic allocation on demand。
Allocate max shared memory指定是否分配由max memory指定的最大内存,缺省不分配最大内存。
Dynamic allocation on demand指定是否在请求时立即分配资源还是仅需要时分配,缺省是需要时分配。
Sybase数据库优化建议书修改记录主要针对sybase12.0和sybase sybase12.5一、操作系统核心参数Sybase12.0下面以使用操作系统管理员root用户身份,运行sam管理工具调整共享内存参数及共享内存段选择Kernel Configuration → Configurable Parameters→使用File菜单下的Search功能搜寻shmmax 参数,调整参数值为1024×1024×1400=1468006400(约1.4G),shmseg 参数使用默认值120 →退出返回sam上一级界面,在弹出的提示框中选择Defer Kernel Creation Until Later调整操作系统异步IO参数Kernel Configuration → Configurable Parameters→将swapmem_on参数设置为0 Kernel Configuration →选择Drivers项目→找到asyndsk →选择菜单上Action项目下的Add Driver(s) to Kernel,这是能够看到asyndsk 驱动程序Pending Status由out 变成了in。
重新启动HP主机,并在启动完毕后确认所配置参数已经生效。
设置操作系统异步IO使用root用户发出如下命令:/etc/mknod /dev/async c 101 4chmod 0660 /dev/asyncchown sybase:sybase /dev/async在操作系统/sbin/rc3.d目录下建立名为S700dsync脚本文件,或者在双机切换脚本的start.sh(/etc/cmcluster/pkg1/start.sh、/etc/cmcluster/pkg2/start.sh)中加入,内容如下/etc/setprivgrp sybase RTPRIO MLOCK CHOWN这个命令使操作系统重新启动后sybase用户仍然能够正常拥有async文件使用权限,确保数据库设备能够使用异步IO。
Sybase数据库配置说明一、安装sybase服务器端二、配置服务1、运行server config2、添上要创建的服务名3、选择页大小,柳州目前运行的库大小为8k,老系统中的页大小可能是2k,如果导老系统的数据要根据实际情况设置。
4、设置master设备和库的大小,可以先默认,库建好后,可以修改。
5、设置系统存储过程大小和位置6、设置系统数据库大小和位置7、设置网络地址8、点击“网络地址”――》“增加”,9、在连接信息中输入本级ip地址+’,’+端口号(一般为5000)。
“确定”――》“确定”,返回到10、点击“配置缺省xp server”,添加网络地址,在连接信息中输入本级ip地址+’,’+端口号(一般为5002),确定,返回到11、再点击“继续”,开始创建服务。
此过程速度可能比较慢。
12、配置备份服务点击“创建backup server”,开始创建备份服务。
步骤同创建服务相同,只是在设置网络地址时将端口设置为5001(可以任意设置,只要不与别的端口冲突即可)三、建数据库设备打开sybase central,数据库设备添加数据库设备,柳州目前为80g 的设备,可以按照以上图形设置。
四、建库添加数据库,首先选择“日志”,再选择“数据”。
将创建的log的设备设为日志,其他的设置为数据。
五、导数据1、创建远程服务器,远程服务器的网络名称选择创建的备份服务器。
2、创建段,操作如下图所示:3、创建gxyd的用户、登陆4、开始导数据。
LOAD DATABASE DATABASE_NAME FROM ‘(路径)’5、ONLINE DATABASE DATABASE_NAME6、更新索引六、重建索引。
SYBASE SQL Server内存分配我们知道,在isql中,可以用sp_configure"memory"去看SQLServer目前使用的内存,这个数字单位为page,每一page为2k。
当memory的值被修改后,重新启动SQL Server 时,新的值才能生效当然,SQL Server内存与机器内存有一定的比例关系,Server的内存太小,会影响Server性能,甚至无法启动,内存太大,SQL Server也不能启动所以,了解SQL Server内存是如何分配的,对于正确地调整SQL Server内存的数值,保证Server最有效地运行会有很大的帮助。
一、内存使用:操作系统及其他运行程序所占内存SOL Server执行代码所占内存Kernl&Server 结构所占内存。
如:user connections,devices,open databases,open objects,locks,network packet buffers,extent i/o buffers等Procedure cacheData Cache二、内存分配举例:(以SQL SERVER 10.01 版本为参考)由上表可知,机器内存中去掉操作系统及其他程序所需的内存,剩下的内存就可以分配给SQL Server。
假设SQL Server内存值为5120 page,即5120 *2k=10MB SQL Server。
执行代码所占内存:对于不同平台,不同版本SQL Server执行代码大小不同,但对某种固定的平台及版本大小是固定的。
大约在2.5MB~3.0MB。
用dbcc memusage可以观察到执行代码的大小。
我们假设为2.72MB。
则剩下内存(10.0 -2.72)=7.28MB。
此外,静态SQL Server额外还需要一些保留内存(此值不因用户修改configure参数值而改变),大概在1.20~2.25MB。
sybase建库sybase数据库使用教程contents •Sybase数据库简介•Sybase数据库安装与配置•Sybase数据库基本操作•Sybase数据库高级功能•Sybase数据库性能优化•Sybase数据库备份与恢复•Sybase数据库安全管理目录01Sybase数据库简介Sybase 数据库提供了高性能的数据处理能力,支持大量并发用户和数据操作。
高性能Sybase 数据库具有良好的可伸缩性,可以根据业务需求进行扩展或缩减。
可伸缩性Sybase 数据库提供了多种安全机制,包括身份验证、访问控制、数据加密等,确保数据的安全性和完整性。
安全性Sybase 数据库提供了丰富的开发和管理工具,使得数据库的开发、部署和维护变得更加容易。
易用性Sybase 数据库特点03互联网应用Sybase 数据库也适用于互联网应用,如电商、社交等,能够应对高并发、大数据量的挑战。
01企业级应用Sybase 数据库适用于大型企业级应用,如ERP 、CRM 等,能够满足复杂业务流程和数据处理需求。
02移动应用Sybase 数据库支持移动应用的后端数据库,为移动应用提供高效、稳定的数据存储和处理能力。
早期阶段发展壮大被收购与整合Sybase数据库最早由Sybase公司开发,是一款基于关系型数据库的管理系统。
随着市场需求的不断增长,Sybase数据库不断进行技术创新和产品升级,逐渐发展成为一款功能强大的企业级数据库产品。
后来,Sybase公司被SAP公司收购,Sybase数据库也成为了SAP产品线中的重要组成部分,与SAP的其他产品进行了深度整合和优化。
02Sybase数据库安装与配置安装Sybase 数据库软件按照安装向导的指示完成软件的安装过程,选择适当的安装选项和配置设置。
验证安装安装完成后,可以通过命令行界面或图形用户界面验证Sybase 数据库软件是否成功安装。
下载Sybase 数据库软件安装包从官方网站或可信赖的下载站点获取适用于您的操作系统的Sybase 数据库软件安装包。
关于sybase的配置-(数据库慢的请留意)说明:数据库性能慢的主要原因有两个1)数据库服务配置不合理2)应用程序不合理遇到数据库性能下降时通常先检查数据库服务配置方面有没有可以改善的,修改之后再观察一段时间,如果性能没有改善的话就要分析应用程序上有没有可以调整的地方:索引是否合理,sql语句是否优化等。
本篇主要分析数据库服务的配置:问题分析:小型机硬件:rp2470双机、CPU700M*2、内存512M*6以下是现场发过来的主要配置情况:lock scheme datapages //datapages锁模式是性能最差的锁,一般不用number of locks 300000 //通常不需要配置太多的锁10万就够了max memory 500000 //物理内存3G,配给sybase的为1G明显不合理number of open indexes 4000 //通常2000number of open objects 4000 //通常2000number of user connections 300 //number of worker processes 0 //多cpu要打开相应工作进程数procedure cache size 154800 //存储过程缓存不要超过100Mtotal data cache size 453699 //明显该值太小allocate max shared memory 0 //打开sybase占用内存的开关max online engines 2number of engines at startup 2问题处理:建议先调整以下配置sp_configure "max memory",1150000 //sybase占用2.3G内存sp_configure "allocate max shared memory",1sp_configure "user log cache size",4096 //用户日志缓存用来缓存客户段信息sp_configure "procedure cache size",50000 //100M存储过程缓存sp_configure "number of worker processes",2备份sybase主目录下的***.cfgsp_cacheconfig "default data cache","1G" //配置缺省数据缓存1Gsp_cacheconfig "default data cache", "cache_partition = 2"reboot sybase服务备份sybase主目录下的***.cfgsp_cacheconfig "tempdb_cache","400M" //由于内存较充裕,通常会分配一部分内存给tempdb,提高查询的速度sp_bindcache "tempdb_cache","tempdb" //绑定400M的内存给tempdbreboot sybase服务上述操作如无法启动sybase服务则可以将备份的***.cfg替换当前的配置文件,重新boot sybase服务总结:sybase 11.9.2 & 12.0 & 早期版本的配置通常为以下几项:total memory //定义sybase 服务能够使用的物理内存number of lock //定义锁的数目number of open database //打开的数据库个数,缺省是12个,数据库数目超过12个时要调整该值number of devices //数据库的设备数,缺省是10,通常是不够的,需要调整number of user connections //用户连接数,根据需要设置,通常一个用户数消耗100K的内存这个版本的数据库缓存、日志缓存、过程缓存是不用手工配置的sybase 12.5版本的配置通常为以下几项:lock scheme //锁模式,sybase推荐使用缺省(allpages),但是一些并发操作多的表(temp_telebill)要使用行锁(datarows),减少被锁现象number of locks //通常不需要配置太多的锁10万就够了max memory //sybase服务能够使用的物理内存,通常配置成物理内存的70%~80%,上例内存是3G,配给sybase的为1G明显不合理allocate max shared memory //打开sybase占用内存的开关number of open indexes //通常2000,该值配置过低时会在日志中报该值不够,最终导致性能缓慢number of open objects //通常2000,该值配置过低时会在日志中报该值不够,最终导致性能缓慢number of user connections //用户连接数,根据实际需求来配置,盲目多配会浪费内存procedure cache size //存储过程缓存不要超过100M,用来缓存过程的编译代码。
SYBASE_系统参数调整sybase性能优化个⼈随记sybase 优化总结===========================================================⼀. SYBASE 系统参数调整1.内存LINUX操作系统内存调整:/sbin/sysctl -w kernel.shmmax=3416386150shmmax是最⼤共享内存段,假如服务器上没有别的应⽤并且使⽤raw device可以将此参数调整到物理内存的90%,如果使⽤file system device 的话相应调⼩,因为file system buffer需要开销内存!修改后重新启动系统。
sp_configure "max memory",1500000 重启⽣效(设置为共享内存的75%)sp_configure "allocate max shared mem",1 启动的时候⾃动分配max memory指定的最⼤内存。
(如果sybase是安装在windows 上,在windows任务管理器⾥可以看到占⽤内存确实为3G)sp_cacheconfig "default data cache","1500m" 设置数据缓存(设置为max memory的⼀半)sp_cacheconfig "default data cache","cache_partition=2" 是CPU数量的倍数,对数据缓冲区分区sp_poolconfig "default data cache","64m","16k" 设置16K 数据缓存sp_poolconfig "default data cache","128m","8k" 设置8K 数据缓存sp_configure "procedure cache size",90000 存储过程数据缓存sp_cacheconfig 'tempdb_cache','200m','mixed' 创建命名⾼速缓存sp_poolconfig tempdb_cache,'50M','16K' 可选:若有⼤的I/O,配置内存池sp_bindcache 'tempdb_cache',tempdb 重启⽣效。
3.5.4 SYBASE数据库系统1. 系统内存的整体管理在SYBASE系统中,可以使用下列配置参数,对整个数据库系统的内存空间使用进行设置:(1)MAX MEMORY(最大内存):设定整个数据库系统实例可以使用的最大内存数量,包括缓冲数据、程序代码的内存空间。
(2)TOTAL LOGICAL MEMORY(总逻辑内存):显示整个数据库系统所需内存空间的总和。
该参数是一个只读的配置参数,用户无法更改。
它是数据库系统根据所有和内存分配有关的配置参数的设置,进行计算而得出的系统所需内存空间的总和。
这个配置参数的值必须小于或者等于最大内存,否则数据库系统无法启动。
(3)TOTAL PHYSICAL MEMORY(总物理内存):显示整个数据库系统在特定时刻使用的内存空间总和。
该参数是一个只读的配置参数,用户无法更改。
它显示数据库系统所有内存空间的总和,也即数据库系统实例在某个特定时刻所分配的内存空间总和。
(4)ALLOCATE MAX SHARED MEMORY:设定数据库系统启动时,是否立即为系统分配所要求的最大内存。
如果该参数被设置,在数据库系统启动时,将按照最大内存配置参数的设置,为数据库系统分配内存空间。
在这种情况下,总物理内存就等于最大内存,如果数据库系统需要的总逻辑内存小于最大内存,则为数据库系统分配的部分内存空间不会被使用。
(5)DYNAMIC ALLOCATION ON DEMAND:设定数据库系统启动时或者系统正常运行过程中改变了配置参数之后,是否立即按照配置参数,为系统的各个内存段分配所要求的空间。
如果该参数被设置,将根据配置参数的设置,进行内存空间的分配,不管这些内存是否被用到。
如果该参数没有被设置,将根据数据库系统的需要,为各个内存段分配空间。
在主机内存空间足够的情况下,为避免系统正常运行时动态的内存空间分配,导致内存空间不连续,影响到数据库系统的性能,可以设置配置参数ALLOCATE MAX SHARED MEMORY,从而在数据库系统启动时就为其分配连续的、可使用的最大内存空间。
SYBASE_系统参数调整在SYBASE数据库中,系统参数的调整对于数据库的性能和稳定性非常关键。
合理的设置可以提高数据库的性能,降低系统的负载,防止因为参数不合适而引发的数据库故障。
下面是一些常见的SYBASE系统参数及其调整方法:1. max memory(最大内存):控制SYBASE数据库系统可以使用的最大内存。
可以根据服务器的硬件配置和数据库的负载情况来调整该参数。
一般建议将该参数设置为服务器可用内存的70-80%。
2. number of worker processes(工作进程数量):控制着SYBASE数据库系统并行处理查询的能力。
可以适当增加该参数的值来提高并行处理的能力,进而提高数据库的性能。
一般建议将该参数设置为服务器的逻辑CPU数量的2倍。
3. lock promotion threshold(锁提升阈值):控制着SYBASE数据库系统在锁的级别上升之前可以允许的最大锁的数量。
可以根据数据库的并发需求来调整该参数。
一般建议将该参数设置为每个数据库连接的平均活跃事务数的两倍。
4. tempdb相关参数:SYBASE数据库系统的临时数据库tempdb对于查询的执行计划和排序操作非常重要。
可以调整tempdb相关参数来优化查询的性能。
例如,可以增加tempdb的数据文件的数量和大小,增加tempdb log的大小等。
5. query plan缓存相关参数:SYBASE数据库系统会缓存查询的执行计划,以便在下次查询时可以直接使用缓存的执行计划,提高查询的性能。
可以调整query plan缓存相关参数来优化查询的性能。
例如,可以增加query plan缓存的大小,增加query plan的最大生命周期等。
6. network packet size(网络数据包大小):控制着SYBASE数据库系统在与客户端通信时每个数据包的大小。
可以根据网络带宽和延迟情况来调整该参数。
一般建议将该参数设置为2048字节。
SYBASE参数设置主要修改参数为:[Disk I/O]number of devices=20[Physical Memory]total memory = 512000 ##数据库可用物理内存,以2k为单位[Processors]max online engines=2 ##CPU数[U]HPWG.cfg全文如下:##################################################################### ########### Configuration File for the Sybase SQL Server## Please read the System Administration Guide (SAG)# before changing any of the values in this file.###################################################################### #########[Configuration Options][General Information][Backup/Recovery]recovery interval in minutes = DEFAULTprint recovery information = DEFAULTtape retention in days = DEFAULT[Cache Manager]number of oam trips = DEFAULTnumber of index trips = DEFAULTprocedure cache percent = DEFAULTmemory alignment boundary = DEFAULTglobal async prefetch limit = DEFAULTglobal cache partition number = DEFAULT[Named Cache:default data cache]cache size = DEFAULTcache status = default data cachecache replacement policy = DEFAULTlocal cache partition number = DEFAULT [Meta-Data Caches]number of open databases = DEFAULT number of open objects = DEFAULTopen object spinlock ratio = DEFAULT number of open indexes = DEFAULTopen index hash spinlock ratio = DEFAULT open index spinlock ratio = DEFAULT [Disk I/O]allow sql server async i/o = DEFAULTdisk i/o structures = DEFAULTpage utilization percent = DEFAULT number of devices =20disable disk mirroring = DEFAULTdisable character set conversions = DEFAULT enable unicode conversions = DEFAULT size of unilib cache = DEFAULT [Network Communication]default network packet size = DEFAULT max network packet size = DEFAULT remote server pre-read packets = DEFAULT number of remote connections = DEFAULT allow remote access = DEFAULTnumber of remote logins = DEFAULT number of remote sites = DEFAULTmax number network listeners = 15tcp no delay = DEFAULTallow sendmsg = DEFAULTsyb_sendmsg port number = DEFAULT[O/S Resources]max async i/os per engine = 500max async i/os per server = DEFAULT [Parallel Query]number of worker processes = DEFAULT memory per worker process = DEFAULT max parallel degree = DEFAULTmax scan parallel degree = DEFAULT[Physical Resources][Physical Memory]#数据库可用物理内存,以2k为单位total memory = 512000additional network memory = DEFAULT lock shared memory = DEFAULTshared memory starting address = DEFAULT max SQL text monitored = DEFAULT [Processors]max online engines = 2 #CPU数min online engines = DEFAULT[SQL Server Administration]default database size = DEFAULTidentity burning set factor = DEFAULT allow nested triggers = DEFAULTallow updates to system tables = DEFAULT print deadlock information = DEFAULT default fill factor percent = DEFAULT default exp_row_size percent = DEFAULT number of mailboxes = DEFAULTnumber of messages = DEFAULTnumber of alarms = DEFAULTnumber of pre-allocated extents = DEFAULT event buffers per engine = DEFAULTcpu accounting flush interval = DEFAULT i/o accounting flush interval = DEFAULT sql server clock tick length = DEFAULT runnable process search count = DEFAULT i/o polling process count = DEFAULTtime slice = DEFAULTdeadlock retries = DEFAULTcpu grace time = 200number of sort buffers = DEFAULT number of large i/o buffers = DEFAULT size of auto identity column = DEFAULT identity grab size = DEFAULTpage lock promotion HWM = DEFAULT page lock promotion LWM = DEFAULT page lock promotion PCT = DEFAULT housekeeper free write percent = 10enable housekeeper GC = DEFAULTpartition groups = DEFAULTpartition spinlock ratio = DEFAULTallow resource limits = DEFAULTnumber of aux scan descriptors = DEFAULT SQL Perfmon Integration = DEFAULTallow backward scans = DEFAULTrow lock promotion HWM = DEFAULTrow lock promotion LWM = DEFAULTrow lock promotion PCT = DEFAULTlicense information = DEFAULT[User Environment]number of user connections = 100 ##用户连接数stack size = DEFAULTstack guard size = DEFAULTpermission cache entries = DEFAULTuser log cache size = DEFAULTuser log cache spinlock ratio = DEFAULT [Lock Manager]number of locks = 50000 #锁数deadlock checking period = DEFAULT freelock transfer block size = DEFAULTmax engine freelocks = DEFAULTlock spinlock ratio = DEFAULTlock hashtable size = DEFAULTlock scheme = DEFAULTlock wait period = DEFAULTread committed with lock = DEFAULT [Security Related]systemwide password expiration = DEFAULT audit queue size = DEFAULTcurread change w/ open cursors = DEFAULT allow procedure grouping = DEFAULTselect on syscomments.text = DEFAULT auditing = DEFAULTcurrent audit table = DEFAULTsuspend audit when device full = DEFAULT max roles enabled per user = DEFAULT unified login required = DEFAULTuse security services = DEFAULTmsg confidentiality reqd = DEFAULTmsg integrity reqd = DEFAULTmsg replay detection reqd = DEFAULT msg origin checks reqd = DEFAULT msg out-of-seq checks reqd = DEFAULT secure default login = DEFAULTdump on conditions = DEFAULT[Extended Stored Procedure]esp unload dll = DEFAULTesp execution priority = DEFAULTesp execution stacksize = DEFAULTxp_cmdshell context = DEFAULTstart mail session = DEFAULT[Error Log]event logging = DEFAULTlog audit logon success = DEFAULTlog audit logon failure = DEFAULT event log computer name = DEFAULT[Rep Agent Thread Administration] enable rep agent threads = DEFAULT maximum dump conditions = DEFAULT[Component Integration Services] enable cis = DEFAULTcis connect timeout = DEFAULTcis bulk insert batch size = DEFAULT max cis remote connections = DEFAULT max cis remote servers = DEFAULTcis packet size = DEFAULTcis cursor rows = DEFAULTcis rpc handling = DEFAULT。
3.5.4 SYBASE数据库系统1. 系统内存的整体管理在SYBASE系统中,可以使用下列配置参数,对整个数据库系统的内存空间使用进行设置:(1)MAX MEMORY(最大内存):设定整个数据库系统实例可以使用的最大内存数量,包括缓冲数据、程序代码的内存空间。
(2)TOTAL LOGICAL MEMORY(总逻辑内存):显示整个数据库系统所需内存空间的总和。
该参数是一个只读的配置参数,用户无法更改。
它是数据库系统根据所有和内存分配有关的配置参数的设置,进行计算而得出的系统所需内存空间的总和。
这个配置参数的值必须小于或者等于最大内存,否则数据库系统无法启动。
(3)TOTAL PHYSICAL MEMORY(总物理内存):显示整个数据库系统在特定时刻使用的内存空间总和。
该参数是一个只读的配置参数,用户无法更改。
它显示数据库系统所有内存空间的总和,也即数据库系统实例在某个特定时刻所分配的内存空间总和。
(4)ALLOCATE MAX SHARED MEMORY:设定数据库系统启动时,是否立即为系统分配所要求的最大内存。
如果该参数被设置,在数据库系统启动时,将按照最大内存配置参数的设置,为数据库系统分配内存空间。
在这种情况下,总物理内存就等于最大内存,如果数据库系统需要的总逻辑内存小于最大内存,则为数据库系统分配的部分内存空间不会被使用。
(5)DYNAMIC ALLOCATION ON DEMAND:设定数据库系统启动时或者系统正常运行过程中改变了配置参数之后,是否立即按照配置参数,为系统的各个内存段分配所要求的空间。
如果该参数被设置,将根据配置参数的设置,进行内存空间的分配,不管这些内存是否被用到。
如果该参数没有被设置,将根据数据库系统的需要,为各个内存段分配空间。
在主机内存空间足够的情况下,为避免系统正常运行时动态的内存空间分配,导致内存空间不连续,影响到数据库系统的性能,可以设置配置参数ALLOCATE MAX SHARED MEMORY,从而在数据库系统启动时就为其分配连续的、可使用的最大内存空间。
需要说明的是,由于SYBASE系统在估计内存需求的方式和实际获取内存以供使用的方式上有一些差异,因此理论上在最大内存、总逻辑内存、总物理内存之间应当具有相等关系时,使用系统命令查看,这三个配置参数在数值上会有一些差别。
2. 系统内存的空间结构整个SYBASE系统的内存结构大体上可以分为四个部分:数据高速缓存(data cache)、过程高速缓存(procedure cache)、内核和服务器结构(kernel and server structure)、可执行代码,具体的结构见图1-6。
(1)数据高速缓存数据高速缓存用来存放用户数据、索引和事务日志,就是第3.2.3和第3.2.5两节中讲到的用户数据缓冲区和日志缓冲区。
在缺省情况下,日志缓冲区并没有被设置。
代理线程生成的事务日志存放在自己的私有内存空间中,由代理线程写入磁盘。
为提高数据库系统的性能,可以在数据高速缓存中配置日志缓冲区。
这样代理线程将事务日志写入日志缓冲区,最后由日志写线程统一写入磁盘,可以减少磁盘的I/O操作。
下列配置参数和数据高速缓存有关:TOTAL DATA CACHE SIZE:显示数据高速缓存的大小,是一个只读参数。
用户可以使用命令sp_cacheconfig、sp_poolconfig,配置和管理数据高速缓存。
(2)过程高速缓存过程高速缓存用来存放存储过程、触发器、SQL语句等已编译的执行计划,就是第3.2.4一节中讲到的SQL语句缓冲区。
下列配置参数和过程高速缓存有关:procedure cache size:设定过程高速缓存的空间大小。
(3)可执行代码内存区域可执行代码内存区域用来存放数据库各种线程的执行代码,这部分加上后面的线程控制信息及堆栈缓冲,就是第3.2.1一节中讲到的进程缓冲区。
这部分内存空间的分配,由用户连接数(也即代理线程数)和工作线程决定,有以下相关配置参数:NUMBER OF USER CONNECTIONS:设定数据库系统可以建立的用户连接数目。
该参数也同时决定了数据库系统可以启动的代理线程的数目。
NUMBER OF WORKER PROCESSES:设定数据库系统可以启动的工作线程数目。
(4)内核和服务器结构内存区域内核和服务器结构内存区域是SYBASE系统既关键又复杂的内存空间,除数据高速缓存、过程高速缓存、可执行代码内存区域所存放信息之外,所有其它系统信息都存放在这一内存空间。
SYBASE系统的技术资料中,没有对这部分内存的使用进行详细的描述。
大体上来说,这部分内存空间包括以下的内容:①线程的控制信息及堆栈缓冲线程的控制信息及堆栈缓冲用来存放线程的堆栈、控制信息等,这部分加上前面的可执行代码内存区域,就是第3.2.1一节中讲到的进程缓冲区。
这部分内存空间的分配,由用户连接数(也即代理线程数)和工作线程决定,有以下相关配置参数:NUMBER OF USER CONNECTIONS:设定数据库系统可以建立的用户连接数目。
该参数也同时决定了数据库系统可以启动的代理线程的数目。
NUMBER OF WORKER PROCESSES:设定数据库系统可以启动的工作线程数目。
STACK SIZE:设定每个线程使用的堆栈空间。
线程使用此区域存放线程环境及本地数据。
HEAP MEMORY PER USER:设定每个用户的堆内存量。
需要更多堆栈中内存的任务,可以从这里获取所需内存。
USER LOG CACHE SIZE:设定每个线程的日志高速缓存空间。
②数据字典(元数据)高速缓存数据字典高速缓存用来存放数据库以及表、索引、视图等信息,就是第3.2.2一节中讲到的数据字典缓冲区。
用户可以通过间接的方式,来配置该部分的内存空间。
下列配置参数和数据字典高速缓存有关:NUMBER OF OPEN DATABASES:设置能够同时打开的数据库的最大数量。
NUMBER OF OPEN INDEXES:设置能够同时使用的索引的最大数量。
NUMBER OF OPEN OBJECTS:设置能够同时打开的数据库对象的最大数量。
③锁表高速缓存锁表高速缓存用来存放数据库系统中的所有锁信息,就是第3.2.6一节中讲到的锁表缓冲区。
下列配置参数和锁表缓冲区有关:NUMBER OF LOCKS:设定数据库系统中所有用户可用锁的总数。
3. 用户数据缓冲区的管理在SYBASE系统中,数据高速缓存就是第3.2.3一节中讲到的用户数据缓冲区。
SYBASE 系统采用多缓冲区技术。
在最初的安装、配置完成后,系统中只有一个缺省的数据高速缓存。
随后用户可以根据自己的需要,创建多个数据高速缓存。
可以将经常需要访问的数据库对象绑定到特定的数据高速缓存中,在做了这样的绑定操作之后,该数据高速缓存就只供被绑定的数据库对象使用,从而避免和其它数据库对象的内存竞争。
没有明确进行绑定的数据库对象,就使用系统缺省的数据高速缓存。
用户可以使用以下两种方式,进一步深化对数据高速缓存的管理:(1)分区。
可以将数据高速缓存分区,相当于在系统中建立了多个数据高速缓存,每一个分区都具有相同的内存空间,并独立地进行管理和维护。
(2)划分缓冲池。
一个数据高速缓存可以被划分为多个缓冲池,每一个缓冲池对应不同的I/O读写尺寸。
例如:数据库的逻辑页为2K,可以在一个数据高速缓存中创建页尺寸分别为2K、4K、8K、16K的四个缓冲池。
由于系统一次最大可以从硬盘中将一个扩充(extent,8个数据页)读入内存,如果使用16K缓冲池,则一次可以从硬盘中读取128K的数据。
在SYBASE系统中,使用MRU/LRU链接表管理数据高速缓存中内存页的替换。
正在被访问的内存页被放入MRU的最前端,越靠近LRU端的内存页,就表明有更长的时间没有被访问。
在MRU/LRU链接表的中间有一个清洗标记,清洗标记和LRU端之间的内存页称为清洗区。
在清洗区中已经被更新的内存页,就要由页清除线程写入磁盘。
MRU/LRU链接表的结构见图3-2。
在该图中,整个数据高速缓存包含了21个内存页,数字表示内存页的指针。
代理线程在处理用户请求时,首先在整个数据高速缓存中查找所要处理的数据,有以下两种结果:(1)找到所需数据。
不管该数据存放在数据高速缓存的什么位置,系统把该内存页的指针联接到MRU的最前端,整个数据高速缓存链就相应地由左向右进行移动。
如果有内存页进入清洗区,并且内存页中的数据已经发生了更新,页清除线程开始把此内存页写入磁盘。
(2)没有找到所需数据。
代理线程从磁盘中读入数据。
如果需要一个内存页的空间,系统就取出LRU端的最后一个内存页指针,找到指针所指向内存页的位置,存入刚读入的数据,然后把这个内存页的指针联接到MRU的最前端。
在需要多个内存页时的处理方式,与此类似。
同样,进入清洗区的内存页如果已经被更新,页清除线程开始把此内存页写入磁盘。
以上是数据高速缓存缺省的管理模式,其中包含了数据高速缓存的两种管理策略:内存替换策略和MRU数据存放策略。
用户可以根据需要,改变这种管理方式。
(1)内存替换策略。
数据高速缓存的内存替换策略有两种:严格LRU(strict LRU)和宽松LRU(relaxed LRU),可以通过sp_cacheconfig命令来设置。
严格LRU是缺省模式。
在此模式下,数据库系统严格地维护内存页的MRU/LRU链接表,根据这个链接表分配内存空间。
在维护链接表时,由于内存页的移动而需要改变内存页的指针,从而需要对这个链接表加螺旋锁。
如果系统中有多个引擎时,尽管链接表被锁定的时间很短,仍旧会引起对链接表的竞争。
由于每个数据高速缓存、数据高速缓存中的每个分区、数据高速缓存中的每个内存池都需要建立一个链接表,因此可以通过建立多个数据高速缓存、将数据高速缓存分区、在数据高速缓存中建立多个内存池,来减少对链接表的竞争。
在宽松LRU模式下,系统并不会严格地维护这个链接表,尽可能地减少对MRU/LRU链接表的锁定竞争。
在数据高速缓存中的空间能够满足该数据高速缓存所绑定的对象,或者该数据高速缓存主要用做日志的缓冲时,可以设置数据高速缓存为此模式,从而减少由于维护链接表而需要消耗的开销。
(2)MRU数据存放策略。
通过表扫描、索引扫描访问数据时,系统会使用预读取功能,将随后要处理的数据事先读入内存。
对这些预先读取的数据,可以使用、也可以不使用MRU 数据存放策略。
如果使用MRU数据存放策略,被预先读入内存的数据首先链接在MRU/LRU链接表的MRU一端,被使用时就移动到清洗区。
这种数据使用方式,一方面可以让这些大批量、一次性的数据尽快移出内存,避免影响其它数据的LRU替换管理;另一方面也可以防止预先读入内存的数据,还没有使用就被移出内存。