mysql及SQL性能分析工具包.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE

PAGE1

mysql及SQL性能分析工具包

本章介绍可用于主动分析特定SQL语句的分析工具。这些工具收集有关这些SQL语句执行的详细信息。使用这些信息,开发人员可以采取措施提高低效SQL语句的性能。

根据请求的详细程度,此活动分析可能会显著增加服务器上的负载。因此,SQL性能分析工具包旨在进行协调一致的代码分析工作。它不是用来连续监视执行代码的。

分析工具界面

SQL性能分析工具包为开发人员和支持专家提供了分析特定SQL语句或语句组的能力。通过在执行特定SQL语句期间使用这些工具,它们可以收集详细信息,这些信息可用于单独或跨活动工作负载分析有问题的语句。

要记录的细节级别是可配置的,最细粒度的设置在模块级别收集信息,为语句的查询计划中的不同步骤提供信息。

%SYSTEM.SQL.PTools类方法。提供以下方法来收集以下各项的性能统计信息:

整个系统:setSQLStatsFlag()

特定的命名空间:setSQLStatsFlagByNS()

当前进程或JOB:setSQLStatsFlagJob()

指定的进程或JOB:setSQLStatsFlagByPID()`

可以在SELECT、INSERT、UPDATE或DELETE语句中使用%PROFILE关键字(等效于setSQLStatsFlagJob(2))或%PROFILE_ALL关键字(等效于setSQLStatsFlagJob(3))来仅收集该语句的性能分析统计信息。

使用性能分析工具包方法

可以使用%SYSTEM.SQL.PTools类方法执行以下操作:

激活SQL性能统计信息。

获取当前的SQL统计信息设置。

导出收集的SQL性能统计信息。显示或导出到文件。

删除SQL性能统计信息。

本节还包含使用这些方法的程序示例。

注意:%SYSTEM.SQL.PTools类方法是所有新编码的首选类接口。较旧的%SYS.PTools.StatsSQL类方法类似,并将继续受到支持。

激活统计信息收集

可以使用%SYSTEM.SQL.PTools类方法激活统计信息(Stats)代码生成以收集性能统计信息。提供以下方法来收集以下各项的性能统计信息:

整个系统:setSQLStatsFlag()

特定的命名空间:setSQLStatsFlagByNS()

当前进程或JOB:setSQLStatsFlagJob()

指定的进程或JOB:setSQLStatsFlagByPID()。如果第一个参数未指定,或指定为$JOB或空字符串(),则调用setSQLStatsFlagJob()。因此,SETSQLStatsFlag=$SYSTEM.SQL.SetSQLStatsFlagByPID($JOB,3)等同于SETSQLStatsFlag=$SYSTEM.SQL.SetSQLStatsFlagJob(3).

这些方法采用整数操作选项。它们返回一个冒号分隔的字符串,其第一个元素是先前的统计操作选项。可以使用getSQLStatsFlag()或getSQLStatsFlagByPID()方法确定当前设置。

可以从ObjectScript或SQL调用这些方法,如以下示例所示:

从ObjectScript:rtn=##class(%SYSTEM.SQL.PTools).setSQLStatsFlag(2,,8)

从SQL:SELECT%SYSTEM_SQL.PTools_setSQLStatsFlag(2,,8)

操作选项

对于setSQLStatsFlag()和setSQLStatsFlagByNS(),可以指定以下Action选项之一:0关闭统计信息代码生成;1打开所有查询的统计信息代码生成,但不收集统计信息(默认设置);2只记录查询外部循环的统计信息(在查询打开和关闭时收集统计信息);3记录查询的所有模块级别的统计信息。模块可以嵌套。如果是,则主模块统计信息是包含数字,即完整查询的总体结果。

对于setSQLStatsFlagJob()和setSQLStatsFlagByPID(),操作选项略有不同。它们是:-1关闭此job的统计信息;0使用系统设置值。选项1、2和3与setSQLStatsFlag()相同,并覆盖系统设置。默认值为0。

要收集SQLStats数据,需要在启用统计代码生成的情况下编译(准备)查询(选项1,默认设置):

从0到1:更改SQLStats选项后,需要编译包含SQL的例程和类以执行统计代码生成。对于xDBC和动态SQL,必须清除缓存查询以强制重新生成代码。

要从1变为2:只需更改SQLStats选项即可开始收集统计信息。这使可以在运行的生产环境中启用SQL性能分析,并将中断降至最低。

从1到3(或从2到3):更改SQLStats

文档评论(0)

180****2462 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档