您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > sybase ase15性能调优简易实验指导手册
ASE性能调优简易实验手册1,实验环境准备确定已经安装ASE15.01)安装实验文件;edb553setup.exe解压到目标路径2)进入目标文件夹:cdC:\SybaseCourses\edb553\scripts\windows,查看对应文件:.bat;.bcp,.sql三种类型文件3)执行文件:ptconfig150_setup.bat,初始化相关的设备,创建调优的实验数据库pubtune_db4)登录到server,查看所安装设备,数据库sp_helpdevice,sp_helpdb3,调优工具箱1)建立一个benchmark,熟悉各调优工具同时开两个命令行窗口,在其中一个查看并执行mixed_load.bat,mixed_load.batbench模拟多个客户端同时登录时的操作,同时使用sp_sysmon监控运行状态,各客户端记录和sp_sysmon报告分别输出到对应名称文件。另一个用sa登录到server,使用sp_who查看客户端登录和事务执行情况。等所有客户端都执行完之后,查看所有的输出文件。其中sp_sysmon输出的文件即为调优使用的benchmark.2)熟悉其他的工具--工具类1)Isql–p查看执行时间Usepubtune_dbGoSelect*fromtitlesGo1002)optdiag查看表和索引的统计信息Optdiagstatisticspubtune_db..space_table1-Usa-P---set命令1)setstatisticsioon某个语句的读写操作数目统计Usepubtune_dbGoSelect*fromauthorsGo2)setstatisticstimeon查看执行时间goSelect*fromauthorsgo3)setshowplan,noexecon查看查询计划Select*fromauthorsGo--系统过程类1)进程行为类Sp_who,查看当前进程活动情况Sp_lock查看锁的情况Sp_showplan查看当前在执行进程的查询计划2)空间使用情况Sp_spaceusedauthors对于给定表查看空间使用情况Sp_helppartition对于分区表查看相关信息Sp_estspaceauthors,1000预估表占用的空间Sp_helpsegment产看段的信息Sp_helpcache查看高速缓存结构和绑定的对象信息3)配置情况Sp_configure查看修改系统配置参数Sp_cacheconfig创建命名缓存Sp_poolconfig在数据缓存中创建大的缓冲池4)任务行为Sp_sysmon监控cpu忙碌状态,网络包收发情况,磁盘读写情况Sp_monitor对系统行为按给定时间间隔采样,报告各方面行为指标4,锁机制查看配置的锁数目对事务的影响,以及各种模式的锁对事务的影响查看系统配置的锁个数(缺省5000)sp_configurenumberoflocks.Usepubtune_dbGo1)行锁创建行锁表createtablex(cchar(1))lockdatarowsgo开始事务begintranselect@@trancount(结果返回1证明事务已经开始)go向表中插入值,执行4000次insertxvalues(a)go4000同时在另外窗口查询锁的情况Sp_lock再次插入2000行数据insertxvalues(a)go2000再次在另外窗口查询锁的情况sp_lock锁不够,事务自动回滚。新的事务每次都有commit,则每次commit锁都释放,不存在锁竞争问题begintraninsertxvalues(a)committrango6000查看锁的情况sp_lock最后删除表droptablexgo2)页锁创建页锁表createtablex(cchar(1))lockallpagesgo执行事务,成功begintrangoselect@@trancountgoinsertxvalues(a)go6000sp_lockgo3)其他的调优工具Sp_object_stats查看表或索引的锁统计信息,从而判断是否修改表模式Sp_object_stats“00:20:00”,20查看系统前20个锁竞争最激烈的表5,DataOnlyLocking观察DOL表的行迁移现象1,查看两张不同锁机制的表信息isql-Usa-P-Dpubtune_db登录sp_helpapl_tab1查看表ap1_tab1,全页锁sp_helpdrl_tab1查看表dr1_tab1,数据行锁selectcount(*)fromapl_tab1两张表内容一样goselectcount(*)fromdrl_tab1go打开io统计和显示计划开关setstatisticsioonsetshowplanongo执行查询观察结果,都访问两级索引和数据页,三次I/Oselect*fromapl_tab1wherelname=Flintstonegoselect*fromdrl_tab1wherelname=Flintstonego另外打开一个窗口登录isql-Usa-P-Dpubtune_db执行修改updatedrl_tab1setcomments=replicate(newcomments,20)wherelname=Flintstoneupdateapl_tab1setcomments=replicate(newcomments,20)wherelname=Flintstone在原来窗口中执行select*fromapl_tab1不变wherelname=Flintstoneselect*fromdrl_tab1i/o增加一个,行迁移wherelname=Flintstonego7,DataCache的配置1)配置命名缓存登录到服务器isql-Usa-P–Dmaster查看当前的cache情况sp_helpcachego配置一个2M的命名缓存sp_cacheconfigcache1,2Mgo查看命名缓存状态为activesp_cacheconfigcache1go重启服务器---2)配置缓冲池查看当前的cache的情况sp_helpcachego为cache1创建16k的缓冲池,从而可以使用largei/osp_poolconfigcache1,1M,16Kgo查看一下创建的结果sp_cacheconfigcache1go3)绑定对象到命名缓存将对象cache_table1绑定到cache1命名缓存上usepubtune_dbgosp_bindcachecache1,pubtune_db,cache_table1go查看绑定的结果sp_helpcachecache1go4)查看绑定已经生效查看已经使用cache1sp_sysmonbegin_samplegoselect*fromcache_table1wherec1=1gosp_sysmonend_sample,dcachego5)查看不同的缓冲池的有效利用setshowplan,noexecongoselect*fromcache_table1wherec1=12Kgoselect*fromcache_table116Kgosetshowplan,noexecoffgo9,Datacache和I/O调优1)优化命名缓存I/O的大小1,配置3M的命名缓存titles_cache,并查看相应信息sp_cacheconfigtitles_cache,3Mgosp_helpcachetitles_cachego2将表titles绑定到titles_cache,并查看绑定生效sp_bindcachetitles_cache,pubtune_db,titlesgosp_helpcachetitles_cachego3确定命名缓存足够大可以使titles表做DSS查询时常驻内存。a.检查titles表的大小sp_spaceusedtitlesgob.执行以下查询预热cacheselectcount(*)fromtitlesgoc.开始监控sp_sysmonbegin_samplegod.再次执行查询selectcount(*)fromtitlesgoe.结束监控,查看datacache部分的报告sp_sysmonend_sample,dcachego从结果看,cache命中率为百分百,说明cache对表titles来说足够大。接下来采取的策略是另外绑定一张表做OLTP查询,同时为其配置2k缓冲池,而对于原来表titles配置大的i/o缓冲池。sp_bindcachetitles_cache,pubtune_db,titles_idprgosp_helpcachetitles_cachegosp_poolconfigtitles_cache,1M,16Kgosp_poolconfigtitles_cachegosp_sysmonbegin_samplegoupdatetitles_idprsetcontract=1whereprice=$1.95gosp_sysmonend_sample,dcachego使用2k缓冲池,并且因为没有预存,所以命中率为0将titles表从内存中清除sp_unbindcachepubtune_db,titlesgosp_bindcachetitles_cache,pubtune_db,titlesgoselectcount(*)fromtitlesgosp_sysmonbegin_samplegoselectcount(*)fromtitlesgosp_sysmonend_sample,dcachego使用16K缓冲池,但是没有全部常驻内存,因为缓冲池大小为1M,小于表大小sp_poolconfigtitles_cache,1.5M,16Kgosp_poolconfigtitles_cachegoselectcount(*)fromtitlesgosp_sysmonbegin_samplegoselectcount(*)fromtitlesgosp_sysmonend_sample,dcachego10,procedurecache的配置观察一下过程缓存不够大时的系统运行情况登录到系统isql-Usa-Pgo查看过程缓存的大小sp_configure’procedurecachesize’go转到目标数据库usepubtune_dbgo执行相应的sql,将缓存warmup1:rprocs.sql49go再次执行该sql,并使用sp_sysmon进行采样,观察pcache部分的结果注意其中ProcedureReadsfromDisk和ProcedureRemovals的值sp_sysmonbegin_samplego1:rprocs.sql49gosp_sysmonend_sample,pcachego11,优化设备使用2)观察ULC(userlogcache)的作用观察sysmon_bench.out中的TransactionManagement----------------------ULCFlushestoXactLog3)观察多个设备分散I/O对性能的提高sysmon_bench.out.DiskI/OManagementDeviceActivityDetail新建设备diskinitname=pubtune_data2,physname=’d:\sybase\pt\pubtune_data2.dat’,size=5120,vdevno=7goalterdatabasepubtune_dbonpubtune_data2=10gousepubtune_dbgosp_addsegmentdata_seg,pubtune_db,pubtune_data2gosp_dropsegment’system’,pubtune_db,pubtune_data2gosp_dropsegment’d
本文标题:sybase ase15性能调优简易实验指导手册
链接地址:https://www.777doc.com/doc-3540897 .html