sybase数据库性能调整

数据库性能调优的一些小方面:
1.1 性能指标
数据库性能一般用两个方面的指标来衡量:响应时间和吞吐量。响应越快,吞吐量越大,数据库性能越好。响应时间和吞吐量有些情况下不能一起得到改善。 1.2 调优级别
对Sybase数据库性能调优,可以从四个方面进行:
一) 操作系统级:对网络性能、操作系统参数、硬件性能等作改进。
二) SQL Server级:调整存取方法,改善内存管理和锁管理等。
三) 数据库设计级:采用降范式设计,合理设计索引,分布存放数据等。
四) 应用程序级:采用高效SQL语句,合理安排事务,应用游标,处理锁。
本文对第一、第三、第四方面的内容不做讨论,第二方面提到的概念只适用于Sybase数据库。

1.3 调优工具
在分析Sybase数据库的性能时,要用到一些数据库系统本身提供的性能调优工具,包括几个系统存储过程:
名称 功能简要介绍
sp_sysmon 企业级系统性能报告工具
sp_lock 查看锁的情况
sp_who 查看线程的活动情况
sp_procqmode 存储过程的查询处理模式
sp_configure 配置SQL Server系统级参数
sp_estspace 估计创建一个表需要的空间和时间
sp_spaceused 估计表的总行数及表和索引占用的空间
sp_monitor 监视CPU、I/O的统计活动情况

在利用isql等一些工具时,还可以设置查询会话中的几个选项,来显示SQL语句执行时的各种统计分析结果:
指令 On 的含义
set noexec on/off 分析SQL语句后,还要执行
set statistics io on/off 统计SQL执行所需I/O
set statistics time on/off 统计SQL语句执行耗时
set showplan on/off 显示查询计划

1.4 sp_sysmon 的使用
企业级性能报告工具、系统存储过程 sp_sysmon 的使用方法:
在isql 下,首先输入 sp_sysmon 'begin_sample' 启动一个报告采样过一段时间后,再输入 sp_sysmon 'end_sample' 结束上次报告采样
或者紧跟一参数 sp_sysmon 'end_sample', "dcache" 结束上次报告采样, 但只显示数据缓冲(Data Cache Management)这一部分的情况。
能替换dcache的可选参数如下表所示:
参数 参数全称,内容范围解释
Dcache Data Cache Management,数据缓冲
Kernel Kernel Utilization,有关引擎、网络和I/O等情况
Wpm Worker Process Management
Parallel Parallel Query Management
Taskmgmt Task Management
Appmgmt Application Management
Esp ESP Management
Housekeeper Housekeeper Task Activity
Monaccess Monitor Access to Executing SQL
Xactsum Transaction Profile
Xactmgmt Transaction Management
Indexmgmt Index Management,索引管理
Mdcache Metadata Cache Management
Locks Lock Management,锁管理
Pcache Procedure Cache Management
Memory Memory Management
Recovery Recovery Management
Diskio DiskI/OManagement,磁盘I/O管理
Netio NetworkI/OManagement

1.5
用sp_sysmon可以得到数据库系统的性能基准报告,但要在比较稳定的状态下产生,方可作为参考和对照的依据。

1.6 理解存储方法
只有清楚数据库存储数据的底层细节,如数据页、索引页的物理结构,每一行的大小计算,不同类型列占用的宽度等等问题,才能对各种调优措施有个深入领会。关于这个问题,比较复杂和细致,请自行参阅有关书籍。
一般地,对于更改数据的操作,要尽量促进数据库进行直接更新( Direct Updates ),所以要遵守以下几条原则:
1)除非必要,避免使用允许null值的列和可变长度的列。
2)如果varchar 和 varbinary 列填充得比较满,毫不犹豫转成 char 和 binary 列。对于建表时指定的页填充率(page fillfactor)参数,要权衡确定数值大小。一般:小值,适合于有许多随机插入的表,该表的数据经常被删除,又经常被增加;大值,适合于大多数的数据被增加到表末尾,如客票系统的售票存根和退票存根表。

2 SQL Server级的调优
2.1 管理共享内存
数据库性能优化的首要方面是最优管理内存。数据库占用的共享内存分成数据缓冲(data cache)、存储过程缓冲(Procedure cache)等几块。在isql 下使用 sp_configure 'cache' 可以看到存储过程缓冲所占百分比(procedure cache percent),整个数据缓冲大小(total data cache size) 等参数。

2.1.1 存储过程缓冲(Procedure cache)
存储过程缓冲保持以下对象的查询计划:
Procedures :存储过程
Triggers :触发器
Views :视图
Rules :规则
Defaults :缺省
Cursors :游标
存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。
Procedure, triggers, and views 当它们被装载到procedure cache中时,被查询优化器优化,建立查询计划。如果存储过程在缓冲中,被调用时就不需要重新编译。如果procedure cache太小,存储过程就会经常被其他调入内存的存储过程冲洗掉,当再次被调用时,存储过程又被调入内存,再重新编译,用户请求因此不得不等待。最严重的情况,如果procedure cache不够,存储过程甚至都不能运行。所以在内存足够的情况下,procedure cache percent 参数尽可能大一些。

2.1.2 数据缓冲(Data Cache)
数据缓冲用来缓存数据页和索引页,是除去存储过程缓冲,系统其他占用的缓冲外的剩余内存空间。通过给服务器增加物理内存扩大数据缓冲,是最有效的方法。当然,如果不能加内存,就只能通过减少存储过程缓冲的比例等方法来扩大数据缓冲了。通过 sp_configure "extentI/Obuffers", 20(可调) 命令,在Data Cache中保留一些页专用于创建索引时使用,可以显著提高创建索引的性能。但要注意每开辟一个缓冲占用16K 字节的系统内存。

2.1.3 命名缓冲
通过如下的命令:
1> sp_helpcache
2> go
查看某客票数据库中命名缓冲,得到的结果如下:
Cache Name Config Size Run Size Overhead

------------------------ ------------- ---------- ----------
DS30_Tran_Log 20.00 Mb 20.00 Mb 2.05 Mb
Systemtable 20.00 Mb 20.00 Mb 2.05 Mb
default data cache 0.00 Mb 4462.86 Mb 464.97 Mb
left_base_center 16.00 Mb 16.00 Mb 1.57 Mb
price_cache 8.00 Mb 8.00 Mb 0.85 Mb
可以看出有4个命名缓冲,分别绑定客票系统的应用日志表、一些重要且常用的系统表、余票表、票价系列表,另外1个是缺省数据缓冲。这种配置还不是最合理,应该进一步把Systemtable这个命名缓冲细分成很多个,每一个单独存放一张系统表。

时间: 2016-06-06

sybase数据库性能调整的相关文章

循序渐进讲解MySQL数据库性能调整

INSERT查询的速度: 插入一个记录的时间由下列组成: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1 x 记录大小) 插入索引:(1 x 索引) 关闭:(1) 这里的数字有点与总体时间成正比.这不考虑打开表的初始开销(它为每个并发运行的查询做一次). 表的大小以N log N (B 树)的速度减慢索引的插入. 加快插入的一些方法: 如果你同时从同一客户插入很多行,使用多个值表的INSERT语句.这比使用分开INSERT语句快(在一些情况中几倍). 如果你从不同客户插

SQL Server数据库性能的优化

server|数据|数据库|性能|优化 编者按:数据库性能优化和数据库管理系统密切相关,不同的数据库管理系统在具体操作上有很大不同.继本报连续在2003年第48期.49期上刊登<Sybase数据库性能调优>和<Oracle服务器性能调整攻略>,分别讨论了Sybase和Oracle数据库管理系统以后,本期我们将具体介绍SQL Server数据库的性能优化方法. 数据库是企业信息的核心,其应用水平的高低直接影响到企业管理水平.选择了一个高性能的数据库产品不等于就有一个好的数据库应用系统

Oracle性能调整与优化(二)

为了能取得圆满成功,我将涉及到一些预备步骤,它们将在查看发生了什么时需要,这些步骤包括运 行plustrce SQL脚本.创建一个"EXPLAIN_PLAN"表.授予角色.配置sql*plus环境查看执行计划.所有 这些步骤都包括在"Oracle 9i R2数据库性能调整指南和参考"中"在sql*plus中使用自动跟踪",对于 Oracle 10g,这些步骤包括在"sql*plus用户指南和参考10.2版"中"调整s

Oracle性能调整的三把利剑--ASH,AWR,ADDM

Oracle性能调整的三把利剑--ASH,AWR,ADDM ASH (Active Session History)ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件.不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成.ASH buffers 的最小值为1MB,最大值不超过30MB.内存中记录数据.期望值是记录一小时的内容. 生成ASH报告:SQLPLUS>@?/rdbms/ashrpt.sql ASH内存记录数据始终是有限的,为了保存历史数据,引入了自动负载信息

数据库性能分析及调整一例

数据|数据库|性能 故障现象2004年6月8日上午10:00,内蒙古巴盟网通用户反映在OSS系统界面"话单查询"里查询单个用户五天的话单特别慢,查询很长时间无结果. 例如:在OSS系统界面"综合查询"内点击"收费"-〉"话单查询",键入"用户号码,起始时间:2004-01-01 00:00:00,结束时间:2004-06-01 23:00:00",点击查询后,IE进度条缓慢,很长时间不返回结果.故障分析经过

oracle数据库的性能调整

oracle|数据|数据库|性能     oracle是一个高性能数据库软件.用户可以通过参数的调整,达到性能的优化.性能优化主要分为两部分:一是数据库管理员通过对系统参数的调整达到优化的目的,二是开发人员通过对应用程序的优化达到调整的目的. 在此,仅就系统参数的调整进行探讨,而不涉及应用程序的优化.对系统参数的调整,可以分为以下几个部分: (1)调整内存分配 系统全局区(SGA)是一个分配给ORACLE 包含ORACLE 数据库实例控制信息的内存段.SGA的大小对系统性能的影响极大,其缺省参数

Sybase数据库的性能优化

在一个大型的数据库中,性能成为人们关注的焦点之一,如何让数据库高效有效的运行成为广大数据库管理人员和开发人员必须要考虑的问题. 性能是一个应用或多个应用在相同的环境下运行时对效率的衡量.性能常用响应时间和工作效率来表示.响应时间是指完成一个任务花费的时间,可以从以下三方面来减少响应时间: · 减少竞争和等待的次数,尤其是磁盘读写等待次数 · 利用更快的部件 · 减少利用资源所需的时间 绝大多数性能的获得来自于优秀的数据库设计.精确的查询分析和适当的索引.最好性能的获得能够通过确立优秀的数据库设计

Oracle数据库的性能调整与优化方法探析

1 引言 Oracle数据库作为一种具有高可靠性.高安全性.高兼容性的大型关系型数据库,在金融.通信.医 疗.生产制造等行业得到了广泛的应用,已逐渐成为企业信息化建设的重要基础平台.在航天领域中, Oracle数据库应用在人力资源.型号物资.财务及研制过程管理等管理信息系统的同时,还用来存储和管 理大量星上数据.要使Oracle数据库适应应用需求,有效管理和利用信息时代不断产生并急剧膨胀的数据 ,从而更好地支撑业务应用,对Oracle数据库优化显得尤为重要. 在实际应用中,常常会遇到Oracle

MySQL数据库的性能调整

MySQL的性能调整: insert查询的速度: 插入一个记录的时间由下列组成: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1 x 记录大小) 插入索引:(1 x 索引) 关闭:(1) 这里的数字有点与总体时间成正比.这不考虑打开表的初始开销(它为每个并发运行的查询做一次). 表的大小以N log N (B 树)的速度减慢索引的插入. 加快插入的一些方法: 如果你同时从同一客户插入很多行,使用多个值表的insert语句.这比使用分开insert语句快(在一些情况中几倍