Sybase数据库性能优化

上传人:M****1 文档编号:489191754 上传时间:2023-03-23 格式:DOC 页数:9 大小:61.50KB
返回 下载 相关 举报
Sybase数据库性能优化_第1页
第1页 / 共9页
Sybase数据库性能优化_第2页
第2页 / 共9页
Sybase数据库性能优化_第3页
第3页 / 共9页
Sybase数据库性能优化_第4页
第4页 / 共9页
Sybase数据库性能优化_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Sybase数据库性能优化》由会员分享,可在线阅读,更多相关《Sybase数据库性能优化(9页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! Sybase数据库性能优化在现有软硬件条件下,充分发挥数据库系统的潜能是DBA追求的最高境界,然而,数据库性能调优是一个非常复杂的问题,不仅需要精通数据库的理论知识,更需要逐渐积累实践经验。这里主要针对Sybase数据库简要介绍一下如何进行调优,及调优时所要注意的事项。Sybase数据库系统的性能的优化,是一项长期且受诸多因素影响的工作,它可划分为以下4个层次: SQL Server级:包括对内存的合理分配,锁操作和临时表的使用,与系统配置关联的磁盘的I/O性能。 数据库设计级:包括数据库对象的设计,索引的创建,表中数据类型的选择,数据库设备的分

2、配及使用。 应用程序级:包括T_SQL查询语句的优化,应用级封锁,事务和游标的使用。 操作系统级:包括硬件、操作系统和网络对总体性能的影响。 在数据库应用系统的管理维护中,运行环境引起的性能劣化只有通过硬件的升级才能得到优化,在系统硬件配置和网络设计确定的情况下,影响系统性能的主要是其他三个层次方面的原因。在此就这三个方面进行简要讨论、总结。1 SQL Server级的调优 1.1 管理共享内存数据库性能优化的首要方面是最优管理内存。数据库占用的共享内存分成数据缓冲(data cache)、存储过程缓冲(Procedure cache)等几块。在isql 下使用 sp_configure ca

3、che 可以看到存储过程缓冲所占百分比(procedure cache percent),整个数据缓冲大小(total data cache size) 等参数。 CQ%SC ( 1.1.1 存储过程缓冲(procedure cache)存储过程缓冲保持以下对象的查询计划: x%mD6Ud 1.1.3 tempdb数据库的优化缺省情况下,tempdb数据库是放置在master设备上,容量为2M,而临时数据库是活动最为平凡的数据库常常被用来排序、创建临时表、重格式化等操作,所以tempdb的优化应该受到特别的关注,缺省情况下,用于tempdb的system、default和logsegment段

4、在主设备上分配了2MB空间。将第二个设备分配给tempdb后,即可在default和logsegment段中将主设备删除。使用这种方式,可以确保tempdb中的工作表和其它临时表不会和主设备上的其它使用相互争用。优化tempdb数据库有以下步骤:第一步:调整临时库的位置tempdb数据库缺省放在master设备上,将临时数据库发在分离的设备上是更可取的。1)初始化一个用来存放临时数据库的设备(在 SQL Advantage中)diskinitname=tempdb_dev,physname=c:sybasetempdb.dat,vdevno=3,size=10240(注意:如果将tempdb数

5、据库放在多个设备上,需初始化多个数据库设备)2)将临时数据库扩展到该一个设备上alterdatabasetempdbontempdb_dev=33)打开tempdb数据库,从段上删除master设备sp_dropsegmentdefault,tempdb,mastersp_dropsegmentlogsegment,tempdb,master4)发出如下命令,检查default段中是否不再包含master设备selectdbid,name,segmapfromsysusages,sysdeviceswheresysdevices.low=sysusages.size+vstart-1anddb

6、id=2and(status=2orstatus=3)说明:若将临时数据库放在多个磁盘设备上,可以更好的利用并行查询特性来提高查询性能。第二步:将临时数据库与高速缓冲进行绑定。由于临时表的创建、使用,临时数据库会频繁地使用数据缓存,所以应为临时数据库创建高速缓存,从而可以使其常驻内存并有助于分散I/O:1、创建命名高速缓存sp_cacheconfig“tempdb_cache”,”10m”,”mixed”2、重新启动server3、捆绑临时数据库到tempdb_cache高速缓存sp_bindcache“tempdb_cache”,tempdb4、若有大的I/O,配置内存池第三步:优化临时表大

7、多数临时表的使用是简单的,很少需要优化。但需要对临时表进行复杂的访问则应通过使用多个过程或批处理来把表的创建和索引分开。以下两种技术可以改善临时表的优化(系统中有auths和article表)1 在临时表上创建索引 1)临时表必须存在 2)统计页必须存在(即不能在空表上创建索引)2 把对临时表的复杂的使用分散到多个批处理或过程中,以便为优化器提供信息下面的这个过程需要进行优化:createprocbase_procasselect*into#huge_resultfromauthsselect*fromarticle,#huge_resultwherearticle.author_code=#

8、huge_result.author_codeandsex=”0”使用两个过程可以得到更好的性能1)createprocbase_procasselect*into#huge_resultfromauthsexecselect_proc2)createprocselect_procasselect*fromarticle,#huge_resultwherearticle.author_code=#huge_result.author_codeandsex=”0” 说明:在同一个存储过程或批处理中,创建并使用一个表时,查询优化器无法决定这个表的大小。2 数据库设计级的调优实现Sybase数据库的

9、优化,首先要有一个好的数据库设计方案。在实际工作中,许多Sybase方案往往是由于数据库设计得不好导致性能很差。实现良好的数据库设计必须考虑这些问题: 2.1 逻辑数据库规范化问题一般来说,逻辑数据库设计会满足规范化的前3级标准:第1规范:没有重复的组或多值的列;第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分;第3规范: 一个非关键字段不能依赖于另一个非关键字段。 遵守这些规则的设计会产生较少的列和更多的表,因而就减少了数据冗余,也减少了用于存储数据的页。但表关系也许需要通过复杂的合并来处理,这样会降低系统的性能。某种程度上的非规范化可以改善系统的性能

10、,非规范化过程可以根据性能方面不同的考虑用多种不同的方法进行,通常使用以下方法来提高性能。1.如果规范化设计产生了4路或更多路合并关系,就可以考虑在数据库实体(表)中加入重复属性(列)。2.常用的计算字段(如总计、最大值等)可以考虑存储到数据库实体中。比如某一个项目的计划管理系统中有计划表,其字段为:项目编号、年初计划、二次计划、调整计划、补列计划,而计划总数(年初计划+二次计划+调整计划+补列计划)是用户经常需要在查询和报表中用到的,在表的记录量很大时,有必要把计划总数作为1个独立的字段加入到表中。这里可以采用触发器以在客户端保持数据的一致性。3.重新定义实体以减少外部属性数据或行数据的开支

11、。相应的非规范化类型是:(1)把1个实体(表)分割成2个表(把所有的属性分成2组)。这样就把频繁被访问的数据同较少被访问的数据分开了。这种方法要求在每个表中复制首要关键字。这样产生的设计有利于并行处理,并将产生列数较少的表。(2)把1个实体(表)分割成2个表(把所有的行分成2组)。这种方法适用于那些将包含大量数据的实体(表)。在应用中常要保留历史记录,但是历史记录很少用到。因此可以把频繁被访问的数据同较少被访问的历史数据分开。而且如果数据行是作为子集被逻辑工作组(部门、销售分区、地理区域等)访问的,那么这种方法也是很有好处的。2.2 生成物理数据库要想正确选择基本物理实现策略,必须了解和利用好

12、数据库访问格式和硬件资源的操作特点,特别是内存和磁盘子系统i/o。以下是一些常用技巧:与每个表列相关的数据类型应该反映数据所需的最小存储空间,特别是对于被索引的列更是如此。比如能使用smallint类型就不要用integer类型,这样索引字段可以被更快地读取,而且可以在一个数据页上放置更多的数据行,因而也就减少了i/o操作。把一个表放在某个物理设备上,再通过sql server的段把它的部分簇索引放在一个不同的物理设备上,这样能提高性能。尤其是系统采用了多个智能型磁盘控制器和数据分离技术的情况下,这样做的好处更加明显。用sql server段把一个频繁使用的大表分割开,并放在多个单独的智能型磁

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号