String myNamedNativeQuery = "select count(*) from tables "+
"where column1 = :nameParameter1 "+
"and column2 = :nameParameter2";
//actually my sentence is much more complex!!
当我在蟾蜍身上执行这个句子时,它在几毫秒内就解决了。但是把这个句子和Hibernate一起使用
SQLQuery query = session.createSQLQuery("myNamedNativeQuery");
query.setParameter(nameParameter1, value1);
query.setParameter(nameParameter2, value2);
query.uniqueResult();
都需要几秒钟才能得到相同的结果。
我意识到,如果我直接在原生查询上替换参数,然后使用Hibernate执行该语句,时间会大大减少。应该是这样的:
String strQuery = session.getNamedQuery("myNamedNativeQuery").getQueryString();
myNamedNativeQuery = myNamedNativeQuery.replace("nameParameter1", value1);
myNamedNativeQuery = myNamedNativeQuery.replace("nameParameter2", value2);
SQLQuery query = session.createSQLQuery("myNamedNativeQuery");
query.uniqueResult();
我想这段代码发生了什么:
SQLQuery query = session.createSQLQuery("myNamedNativeQuery");
query.setParameter(nameParameter1, value1);
query.setParameter(nameParameter2, value2);
query.uniqueResult();
这是:
第1行:根据指定参数的一些期望值创建查询计划。
SQLQueryImpl query = new SQLQueryImpl(
sql,
this,
factory.getQueryPlanCache().getSQLParameterMetadata( sql )
);
在服务器端代码中,一般为了更好的性能,我们不应该使用“从表中选择*”,而应该根据需要查询必要的列(选择名称,从员工中添加)。这是我在数据库性能指南文章中读到的。 现在我用hibernate做了一个查询,我读到在hibernate中最好使用session.load(id)来根据主键检索记录。这将检索与给定“id”(表中的记录)的实体关联的所有列。 现在它是否与通用数据库性能指南相矛盾。使用hiber
我正在运行一个查询,使用聚合打印大约300个结果。 在Robo3t/Mongo shell中执行查询非常快,但在NodeJS中使用mongoose执行查询时非常慢。 尝试寻找答案,登陆到这个链接,尝试设置,但是两个查询的差异仍然是7-8秒
问题内容: 我正在为创建的2个模型的终结点/项目的输出构建REST API: 项目: 参加者: 可以说,我有10个项目:(1个查询) 我遍历了所有10个人,但我也希望所有参与者: 因此,在循环结束时,Phalcon对每个项目进行了额外的查询。 这些查询是通过访问$ result->参与者进行的,同时迭代了10个项目: 题 有没有一种方法可以事先查询关系,因此将是一个查询。 当我使用Phalcon提
我正在处理一个需要JDBC调用Oracle数据库的项目。我已经设置了UCP池化来与SpringJDBC一起工作。我有一个相当简单的查询,我正在执行如下... 我的java代码来设置这个查询看起来像下面... 只要数组中只有一个id,这一切都可以正常运行。当我添加第二个ID时,查询需要将近5分钟的时间运行。如果我获取精确的查询并在SQLDeveloper中执行它,则需要.093秒。 我的代码或配置一
一般来说,原生系统比docker容器快多少?
我遇到了一个奇怪的问题,我向你保证我已经谷歌了很多次。 谢谢