perl – 如何让DBI记录所有查询,包括params?

我试图找出遗留应用程序对我们的mysql数据库(复数)做了什么,因为我需要完全重构/替换它的一部分而不关心它是如何做到的.我只对结果感兴趣.

目前我通过添加$ENV {DBI_PROFILE} =“!Statement / DBI :: ProfileDumper”;来处理DBI::ProfileDBI::ProfileDumper.这在命令行上运行dbiprof dbi.prof时显示了一堆查询,但似乎有点奇怪.

我可能会错误地阅读报告.

#####[ 3 ]###########################################################
  Count         : 4
  Total Time    : 0.018930 seconds
  Longest Time  : 0.018881 seconds
  Shortest Time : 0.000005 seconds
  Average Time  : 0.004732 seconds
  Key 1         :

INSERT INTO orders (foo, bar) VALUES (1, 2)

为什么它显示4为Count?它在orders表中创建了两行,而不是4.此外,它显示了它正在执行的第一个插入的值.对于其他一些人,它保持?在查询字符串中.

也许分析是错误的方法.我一直在考虑使用猴子修补DBI来记录查询,但我不知道该去哪里.我可以添加一个日志功能来准备,并执行以获取查询字符串以及参数.

我可以使用类似的东西吗?当然有人想这样做吗?或者另一种方法?

我愿意接受任何建议.

最佳答案
您想在第2级使用跟踪:
https://metacpan.org/pod/DBI#TRACING

转载注明原文:perl – 如何让DBI记录所有查询,包括params? - 代码日志