【问题标题】:Spring data and hibernate faster than stored proceduresSpring数据和休眠比存储过程更快
【发布时间】:2015-12-24 08:37:20
【问题描述】:

在存储库接口上定义为方法的 Spring 数据查询在应用程序启动时编译。如果 spring data 与 hibernate 或其他 JPA 供应商结合使用,这是否意味着查询至少与使用存储过程一样快?我在很多地方读到存储过程是查询数据库的最快方法,但是这种方法是否解决了问题以避免使用存储过程?

【问题讨论】:

  • 呃不,事情并没有通过向它扔工具来神奇地变得更快。这完全取决于您对上述工具的了解程度以及您为正确使用它们而投入的资金。诸如 Hibernate 之类的 ORM 尤其需要专业的照顾,以免使您的表现付诸东流。我优化了 JPA 查询,将 SQL 查询从 4000 个减少到 5 个,运行时间从几秒减少到毫秒。

标签: java database hibernate jpa spring-data


【解决方案1】:

没有。

存储过程不仅仅是查询。它们是...过程,在数据库本身中执行,尽可能接近数据。

JPQL 命名查询在启动时经过验证并转换为 SQL 查询。 AFAIK,Spring-data-jpa 查询在启动时进行验证(但我不确定它们是否在启动时转换为 SQL)。无论如何,在运行时,它们仍然作为 SQL 查询执行,就像您使用 JDBC 准备语句自己执行的查询一样。

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多