我很好奇包含比较语句的oracle SQL查询的最优/高效语法是什么:
WHERE time_stamp + INTERVAL '+1' HOUR
BETWEEN to_date('13-08-2016 17:02', 'dd-mm-yyyy hh24:mi:ss')
AND to_date('21-11-2016 16:02', 'dd-mm-yyyy hh24:mi:ss')或
WHERE time_stamp
BETWEEN to_date('13-08-2016 17:02', 'dd-mm-yyyy hh24:mi:ss') - INTERVAL '+1' HOUR
AND to_date('21-11-2016 16:02', 'dd-mm-yyyy hh24:mi:ss') - INTERVAL '+1' HOURsql解析器会做优化工作吗?
发布于 2016-11-21 23:23:45
我建议将这些内容写成:
WHERE time_stamp BETWEEN TIMESTAMP '2016-08-13 17:02:00' - INTERVAL '1' HOUR AND
TIMESTAMP '2016-11-21 16:02:00' - INTERVAL '1' HOUR对ISO格式的常量使用DATE和TIMESTAMP只是让代码更整洁(在我看来)。
此外,在“常量”上使用日期算法可以使优化器更容易使用索引(如果有合适的索引)。
发布于 2016-11-21 23:22:54
取决于您是否对该time_stamp列有索引。如果有索引,最好不要对该列执行任何表达式或函数。因此,如果该列有索引,则第二个查询的性能会更好。
https://stackoverflow.com/questions/40723523
复制相似问题