Java 冬眠';s命名查询与常规查询相比性能更好?

Java 冬眠';s命名查询与常规查询相比性能更好?,java,hibernate-5.x,Java,Hibernate 5.x,与常规查询相比,使用命名Hibernate查询是否有任何性能优势 例如,就性能而言,(1)是否优于(2) 1.: 2.: 其中,queryString与名为queryName的查询内容类似 为了缩小绩效期限的范围,我想列举以下几个方面,这些方面的降低在绩效方面是有益的: 在查询准备(例如编译)上花费的时间 在数据库中实际执行查询所花费的时间 尽管在许多情况下,查询准备时间可以忽略不计,但在某些情况下,它仍然可能是一个瓶颈,我想知道在Hibernate中是否对命名查询和常规查询进行了不同的处理(例

与常规查询相比,使用命名Hibernate查询是否有任何性能优势

例如,就性能而言,(1)是否优于(2)

1.:

2.:

其中,
queryString
与名为
queryName
的查询内容类似

为了缩小绩效期限的范围,我想列举以下几个方面,这些方面的降低在绩效方面是有益的:

  • 在查询准备(例如编译)上花费的时间
  • 在数据库中实际执行查询所花费的时间 尽管在许多情况下,查询准备时间可以忽略不计,但在某些情况下,它仍然可能是一个瓶颈,我想知道在Hibernate中是否对命名查询和常规查询进行了不同的处理(例如,使用不同的缓存)


    因此,将常规查询提取为命名查询实际上会减少准备时间。

    两者都是萨米-希特投票的关键,如果能向我提供读者可能不清楚的内容的详细信息,我将很高兴改进和澄清我的问题。命名查询是预编译的,这意味着它们会稍微快一点。但是,与获取数据所需的时间相比,解析查询通常被认为是可以忽略不计的开销!这是一个相关的问题,但是它的答案并没有详细说明性能。我将澄清我的问题,以强调其重点。
    Query namedQuery = session.getNamedQuery(queryName);
    // ... 
    return namedQuery.list();
    
    Query query = session.createQuery(queryString);
    // ... 
    return query.list();