Sybase配置参数.doc

上传人:11****ws 文档编号:2993865 上传时间:2019-05-16 格式:DOC 页数:9 大小:27.44KB
下载 相关 举报
Sybase配置参数.doc_第1页
第1页 / 共9页
Sybase配置参数.doc_第2页
第2页 / 共9页
Sybase配置参数.doc_第3页
第3页 / 共9页
Sybase配置参数.doc_第4页
第4页 / 共9页
Sybase配置参数.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、Sybase 配置参数sp_configure max online engines,4go-配置启动 cpu 个数sp_configure number of engines at startup,4 go-配置最大内存数sp_configure max memory ,2097151go-分配最大存储过程缓存sp_configure procedure cache,102400go-配置高速缓存sp_cacheconfig default data cache , 700Mgo-缺省缓存分配页大小sp_poolconfig default data cache,200M,16Kgo-网络包

2、大小sp_configure max network packet size,1024go-最大连接数sp_configure number of user connections,500go-最大打开对象sp_configure number of open object,9000go-最大索引sp_configure number of open index,10000go-最大锁数sp_configure number of locks,100000go-增加网络内存-sp_configure additional network memory,1024go-锁内存sp_configur

3、e lock shared memory,512go-优化 tempdbselect dbid, name,segmapfrom sysusages, sysdeviceswhere sysdevices.low =sysusages.size+vstart -1and dbid =2and (status=2 or status=3) gouse tempdbgosp_dropsegment default,tempdb,mastergosp_dropsegment logsegment,tempdb,mastergoselect dbid, name,segmapfrom sysusage

4、s, sysdeviceswhere sysdevices.low =sysusages.size+vstart -1and dbid =2and (status=2 or status=3) gosp_cacheconfig tempdb_cache, 100Mgosp_poolconfig tempdb_cache,50M,16Kgosp_bindcache tempdb_cache,tempdbgosp_helpcache tempdb_cacheselect name,id from syscharsets dbcc traceon(3604)dbcc memusage1 数据库安装的

5、优化1.1 应用数据库使用裸设备若在 UNIX(UNIXWARE)操作系统下安装数据库服务器,请将 SYBASE 应用数据库的设备(device)安装成裸设备。即在创建应用数据库设备(如:IVSP,DB160,NAP2000 等)时用裸设备,把文件名指向 /dev/dsk/ 子目录下的相应文件。系统数据库设备(如:master 等)仍然指向文件系统。1.2 补丁程序完成 SYBASE 数据库的安装,请注意原版的 SYBASE 软件都会带有最新的补丁,一定要把补丁打上,否则会出现一些莫名其妙的问题。FOR NT 版的补丁是一个 ZIP 文件,解压至C:SYBASE 子目录即可。1.3 安装 SY

6、BASE 在线帮助在安装好 SYBASE 后,在安装目录下有一文件:./scripts/ins_syn_sql,在服务器上执行该脚本:Sybase for Unix 版: ./isql -Usa -P -i./scripts/ins_syn_sqlSybase for Winnt 版: isql -Usa -P -isybasescriptsins_syn_sql执行完毕后,即可在任意的 SYBASE 客户端上连接上 SQL SERVER ,在线取得任意命令的帮助:sp_syntax “关键字“如: sp_syntax “alter“ 即可列出所有包含“alter“字符的命令2 数据库配置的优

7、化2.1 优化 master 数据库首先加大 master 设备空间,初始默认为 30M,加大为 150M。然后加大 master 数据库空间,默认数据段和日志段各为 5M 大小,建议改为数据段 100M,日志段 50M。alter database master on master=952.2 优化 tempdb 数据库首先创建 tempdb 设备,分配给 tempdb 数据库,默认 tempdb 数据库数据段和日志段各为2M 大小,并创建在 master 设备上,建议改为数据段 200M,日志段 50M,创建在 tempdb设备上。alter database tempdb on temp

8、db=200SQL SEVRER 所有用户都共享工作表和临时表的 tempdb 数据库,tempdb 主要瓶颈是磁盘I/0。解决办法是把 tempdb 放在更快的设备上。在 UNIX 环境中,把 tempdb 放在文件系统中而不用原始的设备。由于 tempdb 在创建数据时,自动在 master 设备上创建为 2M 的数据库,为了减少冲突,最好的办法是把 tempdb 从 master 设备中移走。为了达到上述目的,可采用如下办法实现:1:在单用户状态下启动 SQL SERVER启动单用户方法:dataserver -dmaster.dat -m2:以 sa 登录3:在文件系统中创建一个哑数据

9、库。4:删除 sysusages 和 sysdatabase 表中对现有 tempdb 数据库的引用5:获取哑数据库的数据库 ID,相应修改 sysusages 和 ysdatabase 表对 tempdb 的引用6:重新启动数据库以在 newdevice 中创建 200M 的 tempdb 数据库为例,执行过程如下:create database newtemp on newdevice=200go /* 创建新的数据库 */begin trango /* 开始事务,防止操作错误时破坏整个 SQL SERVER 的运行*/delete sysusages where dbid = 2dele

10、te sysdatabases where dbid = 2go /*删除系统表对 tempdb 的引用,只能在单用户状态下执行 */select dbid from sysdatabases where name = newtempgo /*获取 newtemp 数据库 ID,假定为 10*/update sysusages set dbid = 2 where dbid=10update sysdatabases set name=tempdb,dbid=2 where name=newtempgo /*修改数据库的引用,对 newtemp 的引用改为对 tempdb 的引用*/selec

11、t name,dbid, from sysdatabases where name = tempdbselect * from sysusages where dbid = 2go /*测试修改是否正确,正确则提交,否则可用 rollback 回退*/commit trango /*修改成功,重新启动系统*/这种方法只对 tempdb 有效,其他数据库不能采用这种方法。因为在 SQL SERVER 启动时,tempdb 每次都重新初始化。2.3 优化系统参数以下参数为标准建议值,可根据实际情况修改。优化系统参数的 SQL 脚本 注释sp_configure total memory, 1000

12、00 优化数据库的内存,应根据不同机器配置设置, 建议为一半的物理内存大小。以 db_block 为单位,即每个单位为 2k,上例为 200M,默认为 24M.sp_configure “lock scheme“ , 1,“datarows“ 系统默认为表级锁,优化为行锁sp_configure “number of locks“ , 10000 加大最大锁进程数 , 默认为 5000。(如果设置一个已经存在的表(tabel)的锁方式为行锁,则执行:alter table table_name lock datarows)sp_configure procedure cache percent

13、 ,30 缺省值:20 建议值:procedure 使用频率高时采用较大的值,不超过 30sp_configure “number of user connections“,100 最大用户连接数,默认为 25,每个连接要占 70k 内存sp_configure number of devices,20 将最大设备文件数据改为 15 个sp_configure number of Open databases,20 最大打开数据库个数,对于需在一台数据库服务上打个多个数据库则需加大此参数,默认为 15Sp_configure max online engines CPU,2 缺省值:1 建议值

14、:采用实际机器的CPU 个数Sp_configure total data cache size,60000 缺省值:0 建议值:使用 SQL SERVER内存的 30%如果上述参数改动后 SYBASE 启动不正常,则可检查 SYBASE 的错误日志,把 SYBASE.cfg 中的相应选项修改为较小的值。附:SYBASE SQL SERVER 内存的分配1. SQL SERVER 可执行代码 3-4M2. SQL SERVER 使用的静态内存 2.2-3.25M3. 用户可配置的参数所占用内存,以下示例(11.9.2 版) :默认值 占用内存用户连接数(user connections) 25

15、 每个 约 70k打开的数据库数(open database) 12 每个 约 60k打开的对象数(open objects) 500 每个 约1k打开的索引数(open indexs) 500 每个 约1k锁数目(locks) 5000 每个 约 0.1k数据库设备数(data device) 10 每个 约0.5k4. 剩余部份分配给过程缓存 ( 由 procedure cache percent 决定,默认值为 20% )数据缓存 ( 默认值为减去 1、2、3 项的 80% )2.4 优化数据库系统属性在 sybase center 中选择数据库属性,将属性中 options 选项中的下

16、列项目选中。allow select into/bulk copytruncate log on checkpointcheckpoint on recoveryabort transction on full logfree space accountingallow nulls by defaultauto identity column in non-unquie index 方法二:在 SQLPLUS 中执行下列 SQL 脚本如:sp_dboption mydb,“abort tran on log full“,true(设定当数据库的日志空间满时,就终止该进程,使用 sa 用户)sp

17、_dboption mydb,“ select into/bulkcopy “,truesp_dboption mydb,“ trunc log on chkpt “,truesp_dboption mydb,“ no chkpt on recovery“,truesp_dboption mydb,“ no free space acctg “,truesp_dboption mydb,“allow nulls by default“,truesp_dboption mydb,“ auto identity dbo use only “,true2.5 创建阈值存储过程可根据不同的应用修改以下

18、脚本或创建多个阈值存储过程,并在配置阈值时指定相应的存储过程。create procedure sp_thresholdaction dbname varchar(30),segmentname varchar(30), free_space int,status int as dump transaction dbname with no_log print “LOG DUMP: %1! for %2! dumped“,segmentname,dbnamego2.6 配置多个阈值方法一: 打开 Sybase Central,双击相应数据库(database)的段 Segments -; lo

19、gsegment,在 Thresholds 页面中可设置自动清除日志的阀值。其中有 Last Chance 的一行是系统默认的最后机会阀值,即系统日志空闲空间小于该值时为最后一次自动清除日志的机会。设置时阀值的大小可设为日志总空间大小的 20%左右。另外再增加多个阈值。方法二:1、使用如下指令查出数据库中日志的容量(用页表示)select sum(size) from master.sysusages where dbid=db_id(“database_name“ and (segmap语句 2SELECT dname, deptno FROM dept WHERE NOT EXISTS (

20、SELECT deptno FROM emp WHERE dept.deptno = emp.deptno);明显的,2 要比 1 的执行性能好很多,因为 1 中对 emp 进行了 full table scan,这是很浪费时间的操作。而且 1 中没有用到 emp 的 index,因为没有 where 子句。而 2 中的语句对 emp进行的是 range scan。4.2 海量查询在海量查询时尽量少用格式转换。如用WHERE a.order_no = b.order_no而不用WHERE TO_NUMBER (substr(a.order_no, instr(b.order_no, .) -

21、1)= TO_NUMBER (substr(a.order_no, instr(b.order_no, .) - 1)3)查询海量数据是可以使用 optimizer hints,例如/*+ORDERED */ 如SELECT /*+ FULL(EMP) */ E.ENAME FROM EMP E WHERE E.JOB = CLERK;而不是SELECT E.ENAME FROM EMP E WHERE E.JOB | = CLERK;对于数据量较大和业务功能较复杂的系统,Sybase 的默认参数根本无法满足需要,必须进行优化。系统数据库方面的优化从两方面进行,一个是调整数据库系统的一些性能参

22、数的值,另一个是应用程序的调优。应用程序的调优调整 hsql 和 sql 的写法,配合 sql 合理的建索引,这里主要对 Sybase 系统一些基本的性能参数的调优进行一个小结。1、内存内存是对性能影响最大,也是最需要也是最难调优的地方。内存调优一定要,常用的需要调整的参数有:sp_configure “max memory”,0,”2600M” (设置为共享内存的 75%,重启生效)sp_configure “allocate max shared mem”,1 (启动的时候自动分配 max memory 指定的最大内存)sp_cacheconfig “default data cache”

23、,”1300m”(设置数据缓存为 max memory 的一半)sp_cacheconfig “default data cache”,”cache_partition=2sp_configure “procedure cache size”,102400 (过程高速缓存,通常是 max mem20%-30%,这里是 200M,在大量的执行 sql 的时候这个参数一定要调大)sp_cacheconfig tempdb_cache,100m,mixed (创建一个 100M 命名高速缓存tempdb_cache 给 temdpb 使用)sp_bindcache tempdb_cache,temp

24、db (将 tempdb_cache 绑定到 tempdb)实际中遇到一个很头痛的问题, 32 位 Windows 版本的 Sybase 最大内存只能到搞到 3G左右,“default data cache“的值超过 1500M Sybase 实例就起不来了,导致服务器的 16G 内存形同虚设,所以如果大家的项目和我这个类似,服务器和操作系统由客户提供,还换不了的,内存不妨要求个 4G 就够了,多了也浪费。2、 CPU当服务器的 CPU 个数多于一个时,可以考虑多 CPU。实际上对于 OS 会自动调度,设一下只不过是控制的更精确一点。实际需要根据 CPU 数来修改,若 CPU=N,一般设置为

25、N-1。设置这个参数,比如我的服务器 8 个 CPU, 就像下面这样设置:sp_configure “max online engines”,7sp_configure “number of engines at startup”,7sp_configure “max parallel degree”,1 (并行的度,大于或等于 1)sp_configure “number of worker processes”,7 (并行度并发连接数1.5 倍)3、连接数( 这个没什么说的,数量管够就可以,默认数为 25,可根据应用需要来修改。)sp_configure “number of user c

26、onnections”,600查询数据库死进程select * from master.syslogshold4、锁数据库的锁机制其实是一个比较复杂的话题,这里只能简单说一下。Sybase 数据库系统两个级别的锁机制:所有页锁、数据页锁。所有页锁在当数据库加锁时,既锁数据页,也锁索引页;数据页锁当数据库加锁时,只锁数据页,不锁索引页。Sybase 支持三种类型的锁: 数据表锁、数据页锁、数据行锁。 一些常用的调优命令和策略如下:sp_configure “number of locks“,50000 (设置锁的数量)系统设置时要把锁的数量设大一点,简单说就是要管够;如果需要节省空间,减少维护量

27、,使用所有页锁机制;而如果需要加快速度,空间足够,使用数据页锁机制。sp_sysmon “00:10:00”,locks (检测表的使用情况)当通过监测发现锁竞争超过 15%时,首先修改加锁最重的表的锁机制,然后再把数据页锁设置为数据行锁。如果发现螺旋锁多,则为该表建立单独的命名缓存并对命名缓存进行分区。5、 I/O数据库调优总的思路是尽量减少和分散物理 I/O,尽量减少网络 I/O。减少物理 I/O 的办法有: 在命名缓存中增加大块的 I/O 缓冲池,把数据分散到多个硬盘上, 采用 RAID 技术,建立段,使一个表跨越多个硬盘等等,基本和其他的数据库软件调优一样。减少网络 I/O 的办法是采

28、用大数据包。sp_configure “default network packet size“,2048 设置网络传送包的大小(需要重启动)sp_configure “max network packet size“,20486、设备调整主要调整两块: 一个是业务数据库的数据设备与日志设备必须分开,添加临时数据库设备;另一个是调整 Tempdb,这一条很重要却很容易被大家忽视。Tempdb 是 sybase 数据库当中的临时库,用于存放中间结果和临时表。由于使用很频繁而默认大小又很小,我们需要加大其设备空间和库的大小,尽可能把 tempdb 放置到最快的硬盘上,并建立单独的命名缓存。sp_cacheconfig tempdb_cache,200m,mixed (创建一个 200M 命名高速缓存tempdb_cache 给 temdpb 使用)sp_bindcache tempdb_cache,tempdb (将 tempdb_cache 绑定到 tempdb)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。