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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Sybase大量并发查询的综合优化

Sybase大量并发查询的优化 摘要: 在单Sybase服务器条件下,从多个方面对并发查询性能的提升进行了研究,并取得了较好的效果。 关键词:Sybase 并发查询 优化 引言 一个业务系统,有20台Sybase客户端需要高频度查询转发地址信息。转发地址信息,每天都有1%~10%的变更。随着业务数据的逐渐增大,Sybase服务器的CPU和IO也逐渐升高,业务高峰期还可能达到100%,导致查询响应缓慢,转发数据出现积压,实时性下降。 为了提高查询的性能,对Sybase大量并发查询的优化方法进行了多方面的研究。 设计优化 设计优化,主要是直接影响服务器和客户端的设计优化。 专用索引 描述: 针对频繁使用的查询操作,设计专用的索引,一般能提高查询性能。 数据量越大,索引发挥的作用约明显。索引能使查询的时间呈几何指数级的下降。原来的全表扫描,在有索引条件下,只需要几次比较和寻址就可以定位,输出最终结果。 实施要点: 统计业务系统的所有查询指令和使用频度,将使用率高的查询条件的字段作为索引。 索引使用的字段,尽可能是取值比较丰富的,查询结果集在5%以下,索引才能发挥优势。 点评: 索引时数据库优化最直接,也是最复杂的方法。索引应该跟着数据和使用情况及时调整。 合并索引 描述: 有时,多个查询操作,每个都创建了专门的索引,以便提高查询性能,但,一个表的索引过多,会导致插入和修改数据性能下降,而且也增加了执行计划解析的时间。因此,应尽量控制索引的数量。 案例: 表(用户user,物品序号oid,信息info)。 由于插入和删除都使用(用户user,物品序号oid)作为条件,因此,这3个字段建了一个索引idx1。 由于查询总是使用(物品序号oid)作为条件,查询返回(用户user,信息info),因此,用这个字段建了一个索引idx2。 其实,idx1已经包含了idx2,但由于字段顺序问题,idx1无法用于查询的优化。调整idx1的字段顺序,形成idx3(物品序号oid,用户user),可以代替idx1和idx2,完成索引合并。合并后,查询也能使用idx3。 点评: 索引太多,不但占用存储空间,而且对插入操作的性能影响很大,应尽量控制索引的数量。 使用簇索引 描述: 如果表的一条记录的数据很小,使用簇索引(Clustered Index),可以减少从索引到数据的寻址过程。 实施要点: 创建索引时,使用关键字CLUSTERED?; 建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页 点评: 一个表的簇索引,至多1个。簇索引不一定总是比非簇索引性能高。 合理使用分区技术 描述: Syabse高版本已经进入了表分区功能,有利于操控大量数据。 实施要点: 根据表的特性,选择适合的字段作为分区字段。通常使用整数区间,日期作为分区字段。 点评: 表分区后,查询指令应尽量在分区内进行。分区后,没有使用分区字段的查询,还是会全表扫描,应该尽量避免。 服务器端的优化 一次性申请共享内存 描述: Sybase使用的最大共享内存可以通过配置修改,但默认是内存不足时,才再申请新的共享内存。 实施要点: 命令: sp_configure allocate max shared mem,1 点评: 一次性申请内存,还可以避免因为其他进程占用内存,导致需要内存时申请失败,可以保证Sybase使用内存的总量。 有名高速Cache绑定到库 描述: Sybase默认有一个cache内存,用于保存近期经常使用的数据。可以给一个库专门开辟cache空间,提高查询性能。 实施要点: 1、创建一个200M命名高速缓存db1_cache: sp_cacheconfig ‘db1_cache’,200m’,mixed 2、将db1_cache绑定到db1: sp_bindcache ‘db1_cache’,db1 点评: 有名Cache能给库提供额外的缓存空间,能提高经常性、近期重复性的查询性能。 使用多个独立的存储设备 描述: 使用多块独立的硬盘,对需要并发读取的表,将存储设备分散到多个磁盘上,可以实现磁盘的并发读写,提高处理性能。 实施要点: 在采购时,选择独立硬盘接口数量足够多服务器型号,并配置多块硬盘。通常一块硬盘安装操作系统和Sybase软件,其他作为设备存储。 点评: 采用多块独立硬盘,系统的数据安全性会比RAID 5差些,需要对硬盘的健康状态进行监控,及时更换硬盘。 使用多个段(Sigment) 描述: 段(Segment)是数据库设备上磁盘空间的逻辑组合,它可以看作是指向一个或多个数据库设备的标签。利用段可以控制数据库对象的存放位置,可以将数据库对象分类存放到不同的段上。 设备与段之间的关系:多对多关系。一个设备上可以创建多个段,一个段也可以覆盖多

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档