gpt4 book ai didi

sql - 是否可以使用 Postgresql 的解释来分析 Grails GORM 生成的查询

转载 作者:行者123 更新时间:2023-11-29 12:06:34 28 4
gpt4 key购买 nike

我发现并使用了一个暂时将 hibernate.SQL 日志记录转换为 Trace 的闭包,以允许我查看生成的确切查询。但是,我希望能够自动运行 PostgresQL 的解释,而不必单独提取查询进行分析。

记录闭包:(在这里找到:http://www.intelligrape.com/blog/2011/10/21/log-sql-in-grails-for-a-piece-of-code/)

 public static def execute(Closure closure) {
Logger sqlLogger = Logger.getLogger("org.hibernate.SQL");
Logger transactionLogger = Logger.getLogger("org.hibernate.transaction");
Level currentLevel = sqlLogger.level
Level transLevel = transactionLogger.level
sqlLogger.setLevel(Level.TRACE)
transactionLogger.setLevel(Level.TRACE)
def result = closure.call()
sqlLogger.setLevel(currentLevel)
transactionLogger.setLevel(transLevel)
result
}

用法:

def result
execute{
result=Dog.createCriteria().list{
eq("breed","Greyhound")
}
}

我想要可以类似方式使用的东西。

我可以用 Criteria 或 Hibernate.Restrictions 的子类来做这件事吗?

或者我在文档中是否缺少有关如何修改从 GORM 发送到数据库的 SQL 语句的内容?

感谢您提供任何信息。

最佳答案

假设您不想要所有 查询,而只想要运行时间较长的查询,您可能会发现 PostgreSQL 的“自动解释”附加组件很有用。

http://www.postgresql.org/docs/9.1/static/auto-explain.html

关于sql - 是否可以使用 Postgresql 的解释来分析 Grails GORM 生成的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7999087/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com