一、 ASE15概述
1、 SYBASE ASE 包括的服务
Adaptive server:是整个SYBASE的核心数据库,用于管理整个数据库资源
Backup server:用于备份与恢复数据用的服务
XP server:用于执行扩展存储过程的服务(扩展存储过程,它们是以C语言等编写的外部程序,以动态链接库(Dll)形式存储在服务器上,SQL Server可以动态装载并执行它们。编写好扩展存储过程后,固定服务器角色(sysadamin)成员即可在Sql Server服务器上注册该扩展存储过程,并将它们的执行权限授权其他用户。扩展存储过程只能添加到Master数据库。)
Monitor server:用于性能调优采集数据的服务
Historical server:用于保存monitor server的数据,用于将来分析用
2、 SYBASE ASE包括的数据库
Master、tempdb、model、sybsystemdb、sybsystemprocs、sybsecurity、sybsyntax、dbccdb、pubs1..等 Sqlclub学习社区
必备数据库:
Master:包含主要的系统表,用来管理adaptive server服务,不需要太大,一般在180M左右就可以了
Tempdb:主要处理临时操作
Model:数据库模板,用来创建新的数据库
Sybsystemprocs:存放系统存储过程
Sybsystemdb:主要处理分布式事务管理功能
附加功能数据库:
Sybsyntax:包括SQL关键词的语法帮助,可用sp_syntax创建
Sybsecurity:审计用数据库
Dbccdb:检查数据库的一致性
例子数据库:
Pubs1、pubs2:主要做测试用
应用数据库:客户自己根据需要创建的数据库
3、 系统表与系统存储过程
系统表:如sysdatabases、sysobjects
系统存储过程
当用户执行存储过程时,系统按以下顺序进行查找:
首先在当前数据库查找
如果不在,到sybsystemprocs数据库查找
如果不在,到master数据库查找
如果不在,返回错误信息
4、 客户端与运用程序
客户端工具有以下几种:
Isql
Interactive sql
Sybase central
Jisql
Sql advantage
5、 接口文件
存放于%sybase%/sql.ini目录下,主要记录客户端与服务器的连接信息。
6、 系统全局变量
请参考SYBASE快速参考手册
7、 启动与停止SYBASE服务
启动SYBASE服务:
UNIX语法:Startserver [[-f runserver_file][-m]]
NT语法:net start sybsql_servername
停止SYBASE服务:
Shutdown [server_name] [with {wait|nowait}]
Wait:让正在执行的事务完成后再shutdown
No wait:立即shutdown,会造成下次启动比较慢
关闭数据库服务器前,先关闭备份服务器
可以利用SET dsquery=servername 设置缺省服务名,下次用ISQL登录时就可以不用指定服务名了copyright Sqlclub
二、 常用参数配置
1、 Server级参数设置
常用的SERVER参数:
Max memory:最大内存,一般为系统内存的60-70%
Max online engines:引擎数,一般为CPU个数减1,1个CPU配1个,2个CPU可为1或2,考滤双核的情况。
Number of engines of startup:
Number of user connections:用户连接数
Number of lock:锁的数量,小型企业一般为5-10万,中型企业一般为20-30万
Number of devices:允许最多设备数
Number of open database:同一时间打开数据库最大数
Number of open indexes:同一时间打开索引最大数
Number of open objects:同一时间打开对象最大数 Sqlclub.cn
Procedure cache size:存储过程缓存,一般为100M-200M
Default data cache:默认数据缓存,一般为max memory的一半
Default network packet size:默认网络包大小,一般为512的倍数
Max network packet size:最大网络包大小
Stack size:为每个进程使用的执行堆栈的大小
目前我们系统里也用到了部分参数设置,如下图:
以上参数都存放在配置文件 $sybase/servername.cfg 中,记录服务器参数的所有信息。分为动态参数与静态参数两种:
动态参数为修改后立即起作用的参数
静态参数为修改后需要重新启动服务才起作用的参数
SYBASE启动adaptive server时,首先会按照配置文件的设置分配资源,然后备份配置文件为servername.bak,将上次备份的文件复盖掉
2、 Database级参数设置
常用数据库选项如下:
Allow nulls by default:可以将数据库中表的列的缺省值由NOT NULL改为NULL
Auto identity:指定该参数后,可以表中未指定主键、唯一索引、identity列的情况下,自动为表创建一个identity列。
Dbo use only:选中后,只有数据库所有者可以操作数据库,其它用户为只读
Ddl in tran:可指定用户在事务中执行数据操作语言(DDL)
Indentity in nouninque index:可以使在逻辑上表中非唯一的索引在内部唯一,前提是表中必须有identity列,可与auto identity选项结合使用。
Read only:数据库只读选项
Signle user:设置只能单用户访问,tempdb数据库除外。 Sqlclub
Unique auto_indentity index:向表中添加一个具有唯一非聚集索引的identity列
Abort tran on log full:超出阈值时,如何处理正在运行的事务,如果选中,写入日志事务的查询将被注销,直到日志中的空间被释放,如果不选,则只能等到日志空间释放。
No chkpt on recovery:保留数据库最新副本
No free space acctg:禁止对非日志段执行可用空间计数与阈值操作
Select into/bulkcopy/pllsort:是否允许此操作。
Trunk log on chkpt:控制事务日志在执行checkpoint操作时,是否截断日志。
3、 内存管理
内存管理中的几个概念:
数据缓存:属于adaptive server 内存的一部分,用于存放正在执行的数据页、索引、日志页
过程缓存:属于adaptive server 内存的一部分,用于存放正在使用的查询计划
MRU-LRU链:缓存中的页横穿MRU-LRU链,从最近最多被使用的页(MRU)到最近最少被使用的页(LRU)转储
自旋锁竞争:当adaptive server配置多个引擎时,自旋锁对缓存散列表的同步访问,对于高吞吐量的OLTP操作,会严重影响性能
可通过自定义命名缓存提升系统性能,好处如下:
使用命名缓存,可以绑定热点对象到专用的内存区,可降低物料I/0和使对象驻留在内存中,不太频繁使用的对象可保存在缺省的数据缓存中,因为里面已经不包含热点表了
使用命名缓存,可减少对缺省数据缓存的自旋锁竞争,因为每个命名缓存都有自己的缓存散列表,
创建命名缓存:
Sp_cacheconfig cachename ,20M
检查命名缓存的配置与绑定:
Sp_helpcache
修改命名缓存为只适用于日志的缓存:
Sp_cacheconfig cacehname,logonly
绑定和解绑对象到命名缓存:
Sp_bindcache “cachename”,”dbname”,”tbname”
Sp_unbindcache “dbname”,”tbname”
Sp_unbindcache_all “cachename”
删除命名缓存:
Sp_cacheconfig “cachename”,”0”
Log io 的设置可以提高吞吐量
Sp_logiosize
创建缓冲池:
Sp_poolconfig cachename,”4M”,”4K”
修改缓冲池:
Sp_poolconfig cachename,”5M”,”4K”,”16K”
删除缓冲池:
Sp_poolconfig cachename,”0”,”16K”