AWS RDS性能洞察 - 查看完整查询

15

我正在使用来自AWS RDS的MySQL-Server。我想检查应用程序发出的查询以进行优化。我的问题是,几乎每个查询都超过了1024个字符(这是最大值,如此处所述)。 因此,我无法通过前1024个字符识别查询,因为这只是SELECT部分 - 有趣的部分WHERE,ORDER等被截断了。由于该应用程序使用ORM系统,因此我无法更改查询以使其缩短。 已经尝试将选项performance_schema_max_digest_length 在参数组中增加到4096,但没有效果(在服务器上的选项中直接看不到任何更改)。 我该怎么办?


好的,我理解您的意思了:在您提供的第一个链接中提到了1024的限制。很明显,他们指的是性能洞察仪表板可以设置的最大值。 MySQL日志文件是否有帮助呢?(如general_log、slow_query_log等)如果可以,看一下这些设置:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html#USER_LogAccess.MySQL.Generallog - vjones
日志已激活(超过24小时),但里面没有有趣的内容 :( - cklm
@cklm 你解决了吗?我们也遇到了同样的问题。 - user2449397
不,我无法解决这个问题。 - cklm
同样在这里!有什么新消息吗? - tobidude
没有,我没找到方法... - cklm
2个回答

7

现在,大约三年后,我在文档中发现了一个关于这个主题的页面,它回答了我的问题: 访问性能洞察仪表板中更多的SQL文本

对于我来说,现在的操作如下:

  1. 参数max_digest_lengthperformance_schema_max_digest_length足够高(在我的情况下为8192)
  2. 在性能洞察中,“顶部SQL”标签只显示一般查询的前500个字符。当单击左侧的加号时,会展开一个带有参数的查询。点击第一列中的点可以在下方区域中查看完整的查询。

如果我正确地阅读了那个页面,你只能更改RDS Postgres的最大摘要长度,而不能更改RDS MySQL。 - Nathan Arthur

4
这是一个静态参数,因此重新启动实例可能会解决问题。请参阅AWS文档中的以下说明:
更改静态参数并保存DB参数组时,参数更改将在手动重新启动DB实例后生效。您可以使用RDS控制台或通过显式调用RebootDbInstance API操作(如果DB实例在Multi-AZ部署中,则不进行故障转移)来重新启动DB实例。在更改静态参数后要求重新启动相关DB实例有助于减轻参数配置错误影响API调用的风险,例如调用ModifyDBInstance更改DB实例类或扩展存储。
参考:工作中的参数组

谢谢提示,我也读了并重新启动了实例 - 但没有改变。也许AWS在内部将该值限制为1024(因为他们的性能洞察依赖于此),但公平地在某个地方指出这一点会更好。 - cklm
1
我刚刚在副本上尝试了一下,它可以正常工作而无需重新启动。您可能需要尝试禁用并重新启用性能洞察。 - Tomas Gonzalez
似乎对于MySQL 8引擎,重新启动数据库实例并重新启用性能洞察并不能解决问题,日志仍然受到1024限制的限制。 - Eugene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接