从 mybatis xml 查询生成 sql 查询
generating sql queries from mybatis xml queries
我有一个 mybatis 映射器文件 xml,其中有很多带有条件的 where 子句的复杂查询。
有什么方法可以创建可能的查询组合吗?
我想 运行 解释所有这些查询,因为我计划对所有查询添加 NOT IN
。
无吸引力的应用程序
在你的地方,我会使用某种负载生成器,例如在 Selenium 上记录一个宏,在任何地方点击一些可以点击你的应用程序的输入,以便触发目标 SQLs。然后我会放一个记录器来记录和转储所有 SQL 查询。我将分析日志,挑选所有不同的样本,并 运行 它们与带有解释计划的数据库进行对比。
这是一个变通解决方案,但我相信它会成功。
对于非交互式应用程序,其中 UI 或 SOAP 或 REST 记录不是一个选项。例如某种基于网络的应用程序或批处理应用程序或其他...。如果我们假设它是批处理,我会让它播放记录 SQLs 并再次解释。实际上,很多数据库都可以动态地做到这一点。例如,如果您在 DB2 上使用 "Query monitor",它会记录特定时间范围内的所有查询,然后您可以看到最重的查询,或者只是最常出现的查询并进行解释。我的期望是,如果您不只是在应用程序端转储 sql,其他数据库可能具有类似的功能。有很多选择 http://www.rgagnon.com/javadetails/java-0602.html
我有一个 mybatis 映射器文件 xml,其中有很多带有条件的 where 子句的复杂查询。
有什么方法可以创建可能的查询组合吗?
我想 运行 解释所有这些查询,因为我计划对所有查询添加 NOT IN
。
无吸引力的应用程序 在你的地方,我会使用某种负载生成器,例如在 Selenium 上记录一个宏,在任何地方点击一些可以点击你的应用程序的输入,以便触发目标 SQLs。然后我会放一个记录器来记录和转储所有 SQL 查询。我将分析日志,挑选所有不同的样本,并 运行 它们与带有解释计划的数据库进行对比。
这是一个变通解决方案,但我相信它会成功。
对于非交互式应用程序,其中 UI 或 SOAP 或 REST 记录不是一个选项。例如某种基于网络的应用程序或批处理应用程序或其他...。如果我们假设它是批处理,我会让它播放记录 SQLs 并再次解释。实际上,很多数据库都可以动态地做到这一点。例如,如果您在 DB2 上使用 "Query monitor",它会记录特定时间范围内的所有查询,然后您可以看到最重的查询,或者只是最常出现的查询并进行解释。我的期望是,如果您不只是在应用程序端转储 sql,其他数据库可能具有类似的功能。有很多选择 http://www.rgagnon.com/javadetails/java-0602.html