文档库 最新最全的文档下载
当前位置:文档库 › App的性能分析和监控实践-rickyqiu

App的性能分析和监控实践-rickyqiu

Sybase 12.5以上版本自带性能监控工具的使用方法

Sybase 12.5以上版本自带性能监控工具的使用方法 Sybase 12.5以上版本的性能监控工具使用 对于实现集中管理信息系统的系统管理员来说,挖掘数据库性能是一个技术活也是一个体力活,因为它不仅仅需要具备一定的数据库基础,还需要耐心的分析-你所管理的财务软件,数据库访问的瓶颈在哪里?你珍贵的cache里面,被你放了多少过气鸡蛋在里面?有多少是需要放在这个宝贝蛋里面,但是却被疏忽掉;到底是那几张大而无当的破表总是导致数据库服务卡来开去;有哪几个臃肿的存储过程比较糟糕,或者使用最多,耗费你宝贵的内存或者io最多;那几个设备最繁忙? 这些问题,以前需要一些昂贵的第三方DBMS管理工具来帮助你找到较为合适的优化方案,但是我相信大部分系统管理员都没有接触过这方面的管理工具,现在,sybase工具也收购了一个管理工具进来,用于应付sybase相对欠奉的性能问题(仅限个人意见),但是它并不是免费的,不过对于sybase12.5以上版本用户来说,sybase已经内置了一个小工具在sybase数据库服务里面,你只需要做非常少量的工作,就可以寻找出来一个最适合自己管理的信息系统业务风格的优化方案。 优化自己的数据库性能,基础就是回答上面的几个问题,这些问题的答案现在可以从montables里面找,sybase 12.5提供了一套完备的监控表,它只需要用sp_configure打开一个选项,sybase就会开启监控机制,不就你就可以从master库里面查询出来这一套表里面的内容,分析出来到底需要优化那些tables或者其他。 下面用unix下面的sybase来举例,该例开启了montables这个监控表。 Step 1:跑到unix主机那里,cd到$sybase/ase/scripts目录。 Step 2:isql -Usa -Ppassword -i installmontables Step 3:可以回到你的客户端那里,当然也可以继续用主机执行命令。 Step 4:sp_configure ‘enable monitoring’,1 Step 5:把一个或者多个财务软件用户(如果财务软件用户编号是0001,你的databases名字是cwbase1,那么该财务软件用户实际映射到数据库用户编号是cwbase1_0001,那么你不要操作0001用户,而是要操作cwbase1_0001用户)加入到组里面:mon_role, Step 6:现在sybase已经开始在运作性能监控了,建议最好在业务繁忙的时候打开monitoring选项,这些

sybase性能诊断

文章描述了通过sp_sysmon对Adaptive Server系统运行情况有一个全面系统了解,有利于更好地熟悉系统性能,更为有效地进行系统管理,合理地利用和配置系统资源,达到系统性能调优的目的。 从18个方面了解在用系统性能状况,并在适当的时候利用环境参数进行性能调优: 1、内核管理(kernal) 2、应用管理(appmgmt) 3、数据缓存管理(dcache) 4、ESP管理(esp) 5、索引管理(indexmgmt) 6、锁管理(locks) 7、内存管理(memory) 8、元数据高速缓存管理(mdcache) 9、任务管理(taskmgmt) 10、监视器访问SQL的执行(monaccess) 11、网络I/O管理(netio) 12、并行查询管理(parallel) 13、过程缓存管理(pcache) 14、恢复管理(recovery) 15、事务管理(xactmgmt) 16、事务概要(xactsum) 17、磁盘I/O管理(diskio) 18、工作进程管理(wpm) 括号后英文短词是该模块参数。 环境: 1、用户数据库中有练习所用数据表auths和article 2、数据表各有10万行数据 3、用户具有查询、修改、删除等基本的数据库表操作权限 步骤:执行sp_sysmon “00:10:00”(server级系统存贮过程,不需要打开某个数据库),或者执行如下格式的过程,查看具体操作批命令对应系统性能情况: sp_sysmon begin_sample SQL语句或者存贮过程 sp_sysmon commit_sample 本实验采用sp_sysmon “hh:mm:ss”,性能模块名。 结论:通过此练习,可了解当前系统在各方面的系统运行状况,性能出现什么问题和不平衡不协调之处,学会使用相应的参数和措施进行解决和调优,不断比较对照调整前后的性能状况,最终

sybase性能优化的建议

最近优化了两个单位的数据库,通过跟踪后SYBASE都建议将命名Cache的cache replacement policy改为relaxed LRU replacement。 经过在这两个数据库的表现来看,的确获得了一定的效果,我觉得可能目前使用CACHE 的单位都会存在这么个问题,现将有关过程写一下与大家共享: 1、通过sp_sysmon ’00:05:00’得到连续5分钟内SYBASE 性能监控信息,分析SYBASE给出的 建议; 2、若有对命名Cache的优化建议,多数会建议使用relaxed LRU replacement;再有某些会 要求使用大I/O;修改方法可以是直接修改SYBASE.cfg文件中的相关内容,以ACCBJE_cache为例如下: [Named Cache:ACCBJE_cache] cache size = 16M cache status = mixed cache cache replacement policy = relaxed LRU replacement //直接将DEFAULT或其他任何内容为改为relaxed LRU replacement 即可 local cache partition number = DEFAULT 3、检查某些number of xxxx参数,有些设置的太大,可能没必要,比如锁,我认为几万可 能就能满足了,太大可能会占用太多内存(当然也可能是只有真正有那么多锁时才会占用,这点我没有确认),我所优化的这几个数据库开始都是几十万,可能完全没有必要。 另外,对于性能问题来说,通过sp_sysmon会得到很多信息,大家可以通过自己分析查找问题原因。 通过在wisql中,先执行dbcc traceon(3604)后,再执行dbcc sqltext(进程ID)可以得到该进程正在执行的SQL语句,对于查找问题也会有帮助,不过这个有时得到的SQL不全,不过可以作为参考了。

sybase基本操作

SYBASE基本操作 一、启动数据库 1、ps -ef | grep dataserver 查看sybase进程, Sybase有数据库进程和备份进程, 若都没看到则需要手动启动,进入sybase安装目录$sybase/ASE-15_0/install 启动数据库和备份进程 # ./startserver -f RUN_LINUXMZC --启动数据库RUN_”SYBASENAME”#./startserver -f RUN_LINUXMZC_BS --启动备份服务“RUN_backupserve” 启动后也可用#showserver查看 2、登录数据库 数据库启动后使用#isql -Usa -P -S 登录数据库, 注:sybase默认只有一个用户sa,默认密码NULL

二、sybase基本操作 1、查询数据库版本 >select @@version >go 注:isql中的命令都需要go来执行,如果发现写错了,可以用reset重新输入 2、查询数据库信息 >sp_helpdb 显示所有数据库和基本信息 3、查寻空间使用情况 >use basename >go >sp_spaceused >go

4、性能监控 使用指令sp_sysmon 格式:>sp_sysmon “hh:mm:ss”,model_name,表示监控指定时间指定模块,缺省为所有模块 1、内核管理(kernal ) 10、任务管理(taskmgmt) 2、应用管理(appmgmt) 11、监视器访问SQL的执行(monaccess) 3、数据缓存管理(dcache) 12、并行查询管理(parallel) 4、ESP管理(esp) 13、过程缓存管理(pcache) 5、索引管理(indexmgmt) 14、恢复管理(recovery) 6、锁管理(locks) 15、事务管理(xactmgmt) 7、内存管理(memory) 16、磁盘I/O管理(diskio) 8、元数据高速缓存管理(mdcache ) 17、工作进程管理(wpm) 9、事务概要(xactsum) 18、网络I/O管理(netio)

最新Sybase数据库性能调优

S y b a s e数据库性能调 优

Sybase数据库性能调优

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 datacache size)等参数。 2.1.1 存储过程缓冲(Procedure cache) 存储过程缓冲保持以下对象的查询计划: Procedures :存储过程 Triggers :触发器 Views :视图 Rules :规则 Defaults :缺省 Cursors :游标 存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。Procedure, triggers, and views 当它们被装载到procedure cache中时,被查询优化器优化,建立查询计划。如果存储过程在缓冲中,被调用时就不需要重新编译。如果procedure cache太小,存储过程就会经常被其他调入内存的存储过程冲洗掉,当再次被调用时,存储过程又被调入内存,再重新编译,用户

Sybase数据库性能优化的具体过程

Sybase数据库性能优化的具体过程 用一个实例讲解了Sybase数据库性能优化的具体过程,具体内容请参考下文:共享锁 sp_getapplock 锁定应用程序资源 sp_releaseapplock 为应用程序资源解锁 SET LOCK_TIMEOUT 1800 锁超时期限设置 sp_configure 'deadlock checking period',5000 设置锁检测周期 sp_configure 'lock wait period',5000 设置锁的等待时间 sp_setrowlockpromote 设置基本个表的最大行锁升级数(锁数) sp_setrowlockpromote 'TABLE',TREECODE,500,500,100 sp_setrowlockpromote 'TABLE',LCD05,500,500,100 [Lock Manager] number of locks = 50000 #锁数 deadlock checking period = DEFAULT freelock transfer block size = DEFAULT max engine freelocks = DEFAULT lock spinlock ratio = DEFAULT lock hashtable size = DEFAULT lock scheme = DEFAULT lock wait period = DEFAULT

read committed with lock = DEFAULT 当很多事务同时访问同一个数据库时,会加剧锁资源争夺,严重时事务之间会发生死锁。可用sp_object_stats查明死锁位置。该过程报告资源争夺最激烈的10张表、一个数据库中资源争夺的表和单个表的争夺情况。语法为sp_object_stats interval [, top_n [, dbname [, objname [, rpt_option ]]]],查看锁争夺情况只需设置interval为“hh:mm:ss”。如果显示每种锁的争夺程度超过15%,应该改变加锁方式,比如表的全页锁改成数据页锁,数据页锁改成数据行锁等。 Parameter Name Default Memory Used Config V alue Run V alue -------------- ------- ----------- ------------ --------- allow remote access 1 0 1 1 print recovery information 0 0 0 0 recovery interval in minutes 5 0 5 5 tape retention in days 0 0 0 0 Parameter Name Default Memory Used Config V alue Run V alue -------------- ------- ----------- ------------ --------- global async prefetch limit 10 0 10 10 global cache partition number 1 0 1 1 memory alignment boundary 2048 0 2048 2048 number of index trips 0 0 0 0 number of oam trips 0 0 0 0 procedure cache percent 20 22426 20 20 total data cache size 0 89698 0 89698 total memory 47104 196608 98304 98304

sybase系统配置祥解

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时才分配内存。 三.参数设定:(分组并只对常用参数进行说明) 1.Physical Memory: allocate max shared memory (指定是否分配由max memory指定的最大内存,缺省不分配最大内存) dynamic allocation on demand (指定是否在请求时立即分配资源还是仅需要时分配,缺省是需要时分配)

Sybase与sql server的优缺点

SQL Server与Sybase数据库的优缺点 一、数据库服务器 Sybase是一个面向联机事务处理,具有高性能,高可靠性的功能强大的关系型数据库管理系统(RDBMS)。SYBASE数据库的多库,多设备,多用户,多线索等特点极大地丰富和增强了数据库功能。因为SYBASE数据库系统是这样一个复杂的, 多功能的系统,所以对SYBASE数据库系统的管理就变得十分重要,管理的好坏与数据库系统的性能息息相关。 Sybase System 11.5的服务器端和新产品是Adaptive Server。它集成了原有的服务器系列,如SQL Server, SQL Anywhere, Sybase IQ, Sybase MPP等。它具有多处理处理多种数据源的能力,包括遗留的非关系数据和分布是的事务;提供了优化的数据存储与访问方法;提供了单一的编程模型。 SQL Server的新版本是SQL Server 7,SQL Server具有单进程愈多线索的体系结构。及SQL Server只有一个服务器进程,所有的客户都连接多这个进程上。但是,改进程有细分为多个并发的线索,他们共享数据缓冲区和CPU时间,能及时捕捉各用户进程发出的存取数据的请求,然后,按一定的调度算法处理这些请求,比操作系统直接对这些请求进行调度高效的多。 Microsoft 提供了一个数据库引擎,应用范围可以从运行 Microsoft Windows? 95/98 操作系统的移动膝上型电脑,到运行 Windows NT Server 操作系统企业版的兆兆字节对称多处理器群集。所有这些系统都能保证关键任务业务系统要求的安全性和可靠性。 SQL Server的事务处理量大,响应速度快,并能为数百或更多用户维持这种高性能。SQL Server首先在核心层实现了数据完整性控制,包括建表时申明完整性和用触发器机制定义与应用有关的完整性,支持分布式查询与更新。 二、开放性 SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows 平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理

Sybase大量并发查询的综合优化

Sybase大量并发查询的优化 摘要: 在单Sybase服务器条件下,从多个方面对并发查询性能的提升进行了研究,并取得了较好的效果。 关键词:Sybase 并发查询优化 1引言 一个业务系统,有20台Sybase客户端需要高频度查询转发地址信息。转发地址信息,每天都有1%~10%的变更。随着业务数据的逐渐增大,Sybase服务器的CPU和IO也逐渐升高,业务高峰期还可能达到100%,导致查询响应缓慢,转发数据出现积压,实时性下降。 为了提高查询的性能,对Sybase大量并发查询的优化方法进行了多方面的研究。 2设计优化 设计优化,主要是直接影响服务器和客户端的设计优化。 2.1 专用索引 描述: 针对频繁使用的查询操作,设计专用的索引,一般能提高查询性能。 数据量越大,索引发挥的作用约明显。索引能使查询的时间呈几何指数级的下降。原来的全表扫描,在有索引条件下,只需要几次比较和寻址就可以定位,输出最终结果。 实施要点: 统计业务系统的所有查询指令和使用频度,将使用率高的查询条件的字段作为索引。 索引使用的字段,尽可能是取值比较丰富的,查询结果集在5%以下,索引才能发挥优势。

点评: 索引时数据库优化最直接,也是最复杂的方法。索引应该跟着数据和使用情况及时调整。 2.2 合并索引 描述: 有时,多个查询操作,每个都创建了专门的索引,以便提高查询性能,但,一个表的索引过多,会导致插入和修改数据性能下降,而且也增加了执行计划解析的时间。因此,应尽量控制索引的数量。 案例: 表(用户user,物品序号oid,信息info)。 由于插入和删除都使用(用户user,物品序号oid)作为条件,因此,这3个字段建了一个索引idx1。 由于查询总是使用(物品序号oid)作为条件,查询返回(用户user,信息info),因此,用这个字段建了一个索引idx2。 其实,idx1已经包含了idx2,但由于字段顺序问题,idx1无法用于查询的优化。调整idx1的字段顺序,形成idx3(物品序号oid,用户user),可以代替idx1和idx2,完成索引合并。合并后,查询也能使用idx3。 点评: 索引太多,不但占用存储空间,而且对插入操作的性能影响很大,应尽量控制索引的数量。 2.3 使用簇索引 描述: 如果表的一条记录的数据很小,使用簇索引(C lustered Index),可以减少从索引到数据的寻址过程。 实施要点: 创建索引时,使用关键字CLUSTERED ; 建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页 点评: 一个表的簇索引,至多1个。簇索引不一定总是比非簇索引性能高。 2.4 合理使用分区技术 描述:

sybase参数设置及性能优化解释

Sybase配置参数 sp_configure 'max online engines',4 go --配置启动cpu个数 sp_configure 'number of engines at startup',4 go --配置最大内存数 sp_configure 'max memory' ,2097151 go --分配最大存储过程缓存 sp_configure 'procedure cache',102400 go --配置高速缓存 sp_cacheconfig 'default data cache' , '700M' go --缺省缓存分配页大小 sp_poolconfig 'default data cache','200M','16K' go --网络包大小 sp_configure 'max network packet size',1024 go --最大连接数 sp_configure 'number of user connections',500 go --最大打开对象 sp_configure 'number of open object',9000 go --最大索引 sp_configure 'number of open index',10000 go --最大锁数 sp_configure 'number of locks',100000 go

--增加网络内存 sp_configure 'additional network memory',1024 go --锁内存 sp_configure 'lock shared memory',512 go --优化tempdb select dbid, name,segmap from sysusages, sysdevices where sysdevices.low <= sysusages.size +vstart and sysdevices.high >=sysusages.size+vstart -1 and dbid =2 and (status=2 or status=3) go use tempdb go sp_dropsegment 'default',tempdb,master go sp_dropsegment 'logsegment',tempdb,master go select dbid, name,segmap from sysusages, sysdevices where sysdevices.low <= sysusages.size +vstart and sysdevices.high >=sysusages.size+vstart -1 and dbid =2 and (status=2 or status=3) go sp_cacheconfig tempdb_cache, '100M' go sp_poolconfig tempdb_cache,'50M','16K' go

SybaseIQ性能调优

目录 1性能监控 (2) 1.1操作系统性能监控 (2) 1.2数据库性能监控例程 (2) 1.3使用Sybase Cenral性能监控器监控 (2) 2数据库参数调优 (3) 2.1SybaseIq 12.7 建议设置选项 (3) 2.2SybaseIq服务参数说明 (3) 2.3文件存放 (4) 3数据加载调优 (5) 3.1推荐办法 (5) 3.2装载数据时提示虚拟内存不足 (5) 3.3使用union all 视图以便更快装载 (5) 3.4单行处理 (5) 4其它调优 (5) 4.1选择合适的数据类型 (5) 4.2无符号数据类型 (6) 4.3性能优化选项 (6)

1性能监控 1.1操作系统性能监控 使用如下命令对操作系统进行性能监控 ●vmstat ●sar ●topas ●ps 1.2数据库性能监控例程 ●sp_iqconnection 显示连接用户和版本 ●sp_iqcontext 显示运行参数 ●sp_iqspaceinfo 输出数据库对象使用空间情况 ●sp_iqstatus 数据库各种信息展现 ●sp_iqtablesize 输出制定表的大小 ●sp_iqgroupsize 输出指定成员 如何获得Sybase IQ系统存储过程呢,我们使用select * from sysobjects where name like 'sp_iq%';返回结果中“name”列中显示为系统存储过程,我们可以研究其它的存储过程的含义 1.3使用Sybase Cenral性能监控器监控 可以按照如下所示使用Sybase Central监控服务器的统计信息。 ●选择服务器 ●在“Statisticcs”选项卡上,右键单击名称并选择“Add to Performance Monitor“ ●单击“Performance Monitor“选项卡。Sybase Central 仅跟踪从一个快照到下一个快 照的差异,因此,在性能监视器中某些所选统计信息可能显示为无活动。若要查看每项统计的说明,请在“Statistics“选项卡上右键单击其名称,并选择”Properties

Sybase数据库性能优化

Sybase数据库性能优化 在现有软硬件条件下,充分发挥数据库系统的潜能是DBA追求的最高境界,然而,数据库性能调优是一个非常复杂的问题,不仅需要精通数据库的理论知识,更需要逐渐积累实践经验。这里主要针对Sybase 数据库简要介绍一下如何进行调优,及调优时所要注意的事项。 Sybase数据库系统的性能的优化,是一项长期且受诸多因素影响的工作,它可划分为以下4个层次: ?SQL Server级:包括对内存的合理分配,锁操作和临时表的使用,与系统配置关联的磁盘的 I/O性能。 ?数据库设计级:包括数据库对象的设计,索引的创建,表中数据类型的选择,数据库设备的分 配及使用。 ?应用程序级:包括T_SQL查询语句的优化,应用级封锁,事务和游标的使用。 ?操作系统级:包括硬件、操作系统和网络对总体性能的影响。 在数据库应用系统的管理维护中,运行环境引起的性能劣化只有通过硬件的升级才能得到优化,在系统硬件配置和网络设计确定的情况下,影响系统性能的主要是其他三个层次方面的原因。在此就这三个方面进行简要讨论、总结。 1 SQL Server级的调优 1.1 管理共享内存 数据库性能优化的首要方面是最优管理内存。数据库占用的共享内存分成数据缓冲(data cache)、存储过程缓冲(Procedure cache)等几块。在isql 下使用sp_configure 'cache' 可以看到存储过程缓冲所占百分比(procedure cache percent),整个数据缓冲大小(total data cache size)等参数。 1.1.1 存储过程缓冲(procedure cache) 存储过程缓冲保持以下对象的查询计划: Procedures :存储过程 Triggers :触发器 Views :视图 Rules :规则 Defaults :缺省 Cursors :游标 存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。Procedure,triggers,and views 当它们被装载到存储过程缓冲中时,被查询优化器优化,建立查询计划。如果存储过程在缓冲中,被调用时就不需要重新编译。如果存储过程缓冲太小,存储过程就会经常被其他调入内存的存储过程冲洗

用一个案例讲解Sybase的性能优化

用一个案例讲解Sybase的性能优化 提要 为了提高数据库系统的性能,本文针对资料入库,资料检索速度的提高进行了研究和探讨,并提出了相应的的技术措施。 关键词:性能提高入库检索 1.问题的提出 使用SYBASE商用数据库管理系统,但在应用中也发现一些性能问题,例如用户反映常规资料入库较慢、探空资料检索不够快等。针对这些情况,我们进行了分析、试验和探讨,在目前运行平台的环境下找到一些改进方法,取得了较好的效果。 2.库生成慢的原因分析和技术措施 2.1库生成慢的原因分析 在常规资料入库的整个过程中主要包括对报文的解码和数据插表两个大的步骤,因此应先分清究竟是解码过程慢还是数据插表过程慢。为此在主站的调试环境IBM RS6000-59H的平台上做了测试,发现对一天常规资料只解码不入库只需4分钟,但整个库生成却需要4小时11分;显然绝大多数时间是花在数据入库上。而进入数据库的报类多种多样,插入的时间也有长有短。因此有必要在这所有的资料中,找出是哪几种资料入库的时间长。用一个时间统计程序分别对各类报的插入时间做了统计,结果发现地面要素报的插入时间最长,在总共4小时11分的插入时间中占1小时56分钟。 于是我们在测试库(IBMRS6000-H50 B系平台)中用SYBASE提供的监测程序过程sp_sysmon监测插入一天的地面要素(28239条记录,即28239个事务)的运行情况。在sp_sysmon的输出结果(见表1)中, 表1 插一天地面要素的运行情况 每秒收到客户端的字节数 5681.9 每个事务所占用网包数 3.0 每秒收到客户端的网包数

14.7 插入时间(秒) 5837 发现描述每个事务所占用网包数的参数(Total TDS Packets Received per xact)等于3,也就是说一条插入命令要分三次才能送到服务器端。这引起我们的深思,业务上已将Server的缺省网络包大小(default network packet size)、最大网络包大小(max network packet size)由512字节改为1024字节,为何一条插入命令要分三个网包,我们立即查证一条地面要素插入命令的长度,大部分在1100字节左右,最长的是 1174字节,超过了1024的长度,但仍然让人不解的是:一条长为1136字节插入语句用1024字节的网包发送,应该使用两个网包就够了,为什么会用到3个呢?除非512字节的网包才要用到这个数。这是什么原因呢?向SYBASE 公司咨询,得到的答案是不仅要在Server端修改参数,还必须在客户端程序中用DBSETLPACKET()函数显式指定和default network packet size一样大小的网包值,改动才起作用。而以前并未在程序中作指定,因此服务器与客户端之间的通信仍采用SYBASE的缺省网包长度512字节。 在SYBASE的处理中是需接收一条完整的命令后才能进行处理。如果一条命令跨网包传送,Server在收到第一个网包时并不能立即对它进行处理,还必须等待下一个网包将完整的命令送过来,这就涉及到TCP协议的延迟确认问题。它的主要内容是:面向连接的传输协议要求对发送的每一个包都要进行确认,通常对所收到数据进行确认的包都很小,为了避免在网络上产生过多的短包,接收端在收到数据之后并不立即给发送方发送确认信息,而是要延迟一段时间,看本方是否有数据需要发送至对方,如果有则将数据连同对上次收到数据的确认消息一起发送给对方,这中间就有延迟时间。关于延迟时间的长短,不同的机器有不同的设置,TCP 协议规定不超过500毫秒,有的机器取200毫秒,这是个相当长的时间。 我们从sp_sysmon的输出结果的另一参数,即 Server端每秒收到客户端的字节数的参数Total Bytes Received per sec的值仅为5681.9,这说明平均一秒中只有5 个事务送到服务器端等待处理,即使忽略掉处理时间,一秒中也最多只能处理5个事务。实际的情况是插 28239个事务用了5837秒,平均每秒处理4.87个事务。当将网包长度改为1536后,同样的资料全部入库只需285秒的时间。可见网包长度不当是影响库生成的一个原因。 2.2 网包长度的试验和对比分析 SYBASE是基于客户机服务器体系结构的数据库系统,客户机和服务器之间的是网络通信,因此网包长度是SYBASE性能调优的一个重要参数,是一个很重要也很值得探讨的问题。不同的应用对网包大小有不同的需求,9210数据库接收

sybase数据库查询索引优化

Sybase 数据库查询索引优化 一、实验目的 (2) 二、实验环境 (2) 三、实验内容 (2) 1、书写脚本在课程-学生表上插入100条记录,在学生表上插入10000条记录。 (2) 2、索引对查询的影响 (3) 3. 索引代价: (8) 4.对相同查询功能不同查询语句的执行比较分析: (10) (1)查询至少选修了三门课程的学生的学号和姓名; (10) ◆对于无索引的表格 (10) ◇两者比较结果 (12) ◆对于非聚集索引的表格 (13) ◇两者比较结果 (15) ◆对于聚集索引的表格 (15) ◇两者比较结果 (17) ◆最终比较结果 (18) (2)查询优化 (18) 1:查询选修了课程编号为“dep04_s002”且成绩高于85分的学生信息 (18) ◆对于无索引的表格 (18) ◇得出初步结论 (22) 2:查询所有学生的学号、姓名、选修的课程名称和成绩; (23) ◇得出初步结论 (27) 3:查询计算机科学系林红同学选修的课程名称、学分和成绩 (28) ◇得出初步结论 (34) ◆缓存区优化 (34) 最后结论: (38) 四、实验中遇到的其他问题和解决方案 (38) 五、实验心得 (45)

一、实验目的 熟悉了解Sybase中查询分析器的使用,理解数据库查询优化的基本概念。 通过对不同情况下查询语句的执行情况的对比分析,巩固加深查询优化的理解,并进行书写优化SQL语句的初步训练,提高编写高效SQL语句进行数据查询的能力。 二、实验环境 在Win7系统中安装sybase。 三、实验内容 实验中要进行表中记录数多少、结果集大小、有无索引、不同书写方式的等效SQL、多表连接查询等情况进行查询计划分析,并比较各种查询计划的效率优劣。 1、书写脚本在课程-学生表上插入100条记录,在学生表上插入10000条记录。 在实验中,创建了STU10000的学生表和STU_COU10000课程-学生表 向课程-学生表上插入100条记录

Sybase常用操作维护

一、新建用户 1、用sa登录 2、sp_addlogin 用户名,密码[,缺省数据库][,缺省语言][,"用户全称"][,密码有效期][,最小密码长度][,最大登录失败次数] sp_addlogin admin,admin123 sp_password "当前用户密码","新密码" 二、如何让新建好的用户有SA的全部权限? 1、sa登录 2、用sp_displaylogin显示sa的角色 3、把显示的角色grant给你自己的用户就可以了(一行一行执行) sp_role 'grant',sa_role,admin sp_role 'grant',sso_role,admin sp_role 'grant',oper_role,admin sp_role 'grant',sybase_ts_role,admin sp_role 'grant',mon_role,admin spotlight监控要 三、常用命令 use newcyxt(库) 打开库 sp_who 查看服务器所有用户连接 sp_who 'sa' 查看被'sa'用户使用的连接 sp_help 显示当前用户拥有的对象 sp_helpindex tblUserProfile 显示tblUserProfile表格所有索引 select @@version 查版本 四、启动停Sybase服务 1、停 在isql环境下:shutdown 在dos状态下:net start sybase服务名 在"服务"下:选中sybase服务后,停止 2、启动 四、性能 定期进行性能检查 使用sp_sysmon存贮过程(所有ASE版本),定期检查数据库运行性能。也可以使用MDA(也称mon表,要求ASE版本为12.5.0.3以上),或者配合相关工具,如DB X-ray、Spotlight、Sybase DB Expert等。 有关sp_sysmon 存贮过程的详细信息,请参考Sybase ASE手册之《Reference Manual: procedures》。 有关MDA的详细信息,请参考Sybase ASE手册之《Performance and Tuning: Monitoring and Analyzing》中的Monitoring Tables 一节,或参考ASE MDA 常见问与答。 建议的频度为每周一次,尤其是在业务高峰期。 1.sybase锁阻塞的例子,环境维护发现锁阻塞,发现很慢,检查到有问题的sql 1.1 sp_lock看到死锁 1.2 查看阻塞进程信息(master库) select * from sysprocesses where ipaddr = 'XXXX'

sybase优化总结

一. SYBASE 系统参数调整 1.内存 sp_configure "max memory",1500000 重启生效(设置为共享内存的75%) sp_configure "allocate max shared mem",1 启动的时候自动分配max memory 指定的最大内存 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_bindcache 'tempdb_cache',tempdb 捆绑临时数据库到tempdb_cache高速缓存 2.cpu sp_configure "max online engines",2 设置使用的CPU数量 sp_configure "number of engines at startup",2 启动时使用CPU数量 3. 网络 sp_configure "default network packet size",2048 设置网络传送包的大小(重启动生效) sp_configure "max network packet size",2048 4. 其他资源使用 sp_configure "number of locks",100000 锁使用数量 sp_configure "number of open indexes",5000 打开索引 sp_configure "number of open objects",5000 打开对象 sp_configure "number of user connections",1000 用户连接数 sp_configure "number of device",100 新建设备最大数量 二. sybase 设备调整 数据设备与日志设备必须分开,添加临时数据库设备 1. 数据设备 sp_deviceattr devname,"dsync",true 2. 日志设备 sp_deviceattr devname,"dsync",false 3. 临时数据库设备 sp_deviceattr devname,"dsync",false

Sybase数据库性能调优

Sybase数据库性能调优

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 datacache size)等参数。 2.1.1 存储过程缓冲(Procedure cache) 存储过程缓冲保持以下对象的查询计划: Procedures :存储过程 Triggers :触发器 Views :视图 Rules :规则 Defaults :缺省 Cursors :游标 存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。 Procedure, triggers, and views 当它们被装载到procedure cache中时,被查询优化器优化,建立查询计划。如果存储过程在缓冲中,被调用时就不需要重新编译。如果procedure cache太小,存储过程就会经常被其他调入内存的存储过程冲洗掉,当再次被调用时,存储过程又被调入内存,再重新编译,用户请求因此不得不等待。最严重的情况,如果procedure cache不够,存储过程甚至都不能运行。所以在内存足够的情况下,procedurecache percent 参数尽可能大一些。 2.1.2 数据缓冲(Data Cache) 数据缓冲用来缓存数据页和索引页,是除去存储过程缓冲,系统其他占用的缓冲外的剩余内存空间。通过给服务器增加物理内存扩大数据缓冲,是最有效的方法。当然,如果不能加内存,就只能通过减少存储过程缓冲的比例等方法来扩大数据缓冲了。

相关文档