欢迎来到天天文库
浏览记录
ID:50111584
大小:473.50 KB
页数:105页
时间:2020-03-05
《SYBASE内部培训_数据库应用调优.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Sybase数据库性能调优第二十六章数据库应用调优本章内容查询优化器的使用事务处理调优游标使用调优优化问题的症状查询基于索引和表大小运行,比预期慢很多比类似查询运行慢得多的查询突然比平常查询慢得多的查询存储过程运行时间比将其处理为adhoc语句的时间长查询计划预期使用索引却使用了表扫描优化问题的来源统计信息近期没有更新给定事务所引用的行不适合由索引统计信息所反映的模式使用一个索引访问一个表的大部分Where子句已不可优化的方式写入没有用于关键查询的适当索引存储过程在基础表有效变更生效前编译26.1查询优化器的使用SQL
2、Server的优化器showplan的输出信息说明搜索变量(SARGs)策略or与in子句的优化索引覆盖集函数的优化orderby优化连接操作的优化子查询的优化存储过程的优化修改操作的优化26.1.1ASE的优化器ASE处理一个查询语句的全过程如下:1.首先对SQL语句进行语法分析,确保SQL语句的语法正确2.对查询进行优化,生成最优的查询计划。主要考虑的问题有:·表和它的大小(行数,数据页)·表上索引类型和它是否能覆盖查询的搜索变量(SARGs)·连接的顺序(包括子查询)·是否有集函数·索引中关键字的密度和分布·逻辑
3、和物理读写的开销·数据缓冲区的大小、I/O的大小和缓冲策略3.对查询计划进行编译。4.执行查询,并把结果返回给用户。给优化器提供合适的索引优化器的目标是选择正确的执行计划来降低执行查询所用的时间,其依据是查询的表的内容以及缓冲策略、缓冲区大小和I/O大小等因素。磁盘存取是开销最大的操作,因此优化查询的基本任务是给优化器提供合适的索引。SQLServer提供了以下工具来查看查询优化的结果:setshowplanon可以列出执行查询的每一步骤,对返回大结果集的查询,它通常与setnoexecon一起使用。setstatis
4、ticsinon可以列出查询所需要的逻辑和物理读写次数。setstatisticssubquerycacheon列出了对每一子查询在缓冲区中的数据行数和缓冲命中的次数。setstatisticstimeon列出执行查询的每一步骤所用的时间。dbcctraceon(302)提供了选择一特殊计划的原因的信息,它通常在当优化器选择的执行计划看起来不正确时使用。26.1.2showplan的输出信息说明showplan基本信息QueryPlanforStatementN(atlineN)第一个N是批命令中的语句号,第二个N是行
5、号,STEPN该语句来表示每步的情况Thetypeofqueryisquerytype给出每一步查询的类型FROMTABLEtablename说明了查询的数据来源,tablename有可能是一工作表。在表的连接查询中,”FROMTABLE”信息的顺序也说明了查询优化器在做表连接时选择的表的顺序例:setshowplanonselectauthors.au_id,au_fname,au_lnamefromtitles,titleauthors,authorswhereauthors.au_id=titleauthor.a
6、u_idandtitleauthor.title_id=titles.title_idandauthors.au_lname="Bloom"QUERYPLANFORSTATEMENT1(atline1)STEP1ThetypeofqueryisSELECT.FROMTABLEauthors/*数据来源表*/Nestediteration./*嵌套循环扫描*/Index:au_lname_ix/*使用索引au_lname_ix*/Ascendingscan./*升序扫描*/Positioningbykey/*利用key定
7、位*/Keysare:au_lname/*key是au_lnameUsingI/OSize2Kbytes./*I/O块大小为*/WithLRUBufferReplacementStrategy./*使用LRU缓冲交换策略*/FROMTABLEtitleauthorNestediteration.Index:ta_au_tit_ixAscendingscan.PositioningbykeyIndexcontainsallneededcolumns.Basetablewillnotberead./*IndexCoveri
8、ng*/Keysare:au_idUsingI/OSize2Kbytes.WithLRUBufferReplacementStrategy.FROMTABLEtitlesNestediteration.UsingClusteredIndex.Index:au_lname_ixAscendingscan.Positioningbyk
此文档下载收益归作者所有