H2 如何使用右连接减少查询的执行时间?
如果我没有太多数据,我的右连接查询可以正常工作。但当我的表中有500行或更多行时,查询可能需要5分钟甚至更长时间 如何减少或改进此查询的执行时间:H2 如何使用右连接减少查询的执行时间?,h2,H2,如果我没有太多数据,我的右连接查询可以正常工作。但当我的表中有500行或更多行时,查询可能需要5分钟甚至更长时间 如何减少或改进此查询的执行时间: SELECT dlocation.USER_NAME,dtransaction.USER_NAME FROM dlocation RIGHT JOIN dtransaction ON (dtransaction.locationid= dlocation.id) and (dtransaction.isinternational = dlocat
SELECT dlocation.USER_NAME,dtransaction.USER_NAME
FROM dlocation RIGHT JOIN dtransaction
ON (dtransaction.locationid= dlocation.id) and (dtransaction.isinternational =
dlocation.isinternational) and (dtransaction.USER_NAME= dlocation.USER_NAME)
WHERE dtransaction.typeId = 'Charge' and (dtransaction.USER_NAME is null or
dlocation.USER_NAME is null)
您需要请求H2来显示此类查询的执行计划 为此,您需要EXPLAIN命令[http://h2database.com/html/commands.html#explain]. 您只需要将它添加到性能调查下的查询前面
由于这是一个连接,您需要确保您的执行计划中没有剩余的表CAN。在您的情况下,可能需要添加索引。您需要请求H2来显示此类查询的执行计划 为此,您需要EXPLAIN命令[http://h2database.com/html/commands.html#explain]. 您只需要将它添加到性能调查下的查询前面
由于这是一个连接,您需要确保您的执行计划中没有剩余的表CAN。在您的情况下,可能需要添加索引。可以通过添加以下索引来提高查询的性能:
create index ix1 on dtransaction (typeId, USER_NAME);
create index ix2 on dlocation (id, isinternational, USER_NAME);
通过添加以下索引,可以提高查询的性能:
create index ix1 on dtransaction (typeId, USER_NAME);
create index ix2 on dlocation (id, isinternational, USER_NAME);
Oracle还是SQL Server?这是两个完全不同的数据库products@a_horse_with_no_name我正在运行基于Oracle的H2数据库上的查询…H2肯定不是“基于”Oracle,它是一个完全不同的数据库product@a_horse_with_no_name很抱歉,我确信它更像甲骨文。不管怎样,我正在H2数据库上运行查询。Oracle还是SQL Server?这是两个完全不同的数据库products@a_horse_with_no_name我正在运行基于Oracle的H2数据库上的查询…H2肯定不是“基于”Oracle,它是一个完全不同的数据库product@a_horse_with_no_name很抱歉,我确信它更像甲骨文。无论如何,我正在H2数据库上运行查询。