Sql 使用1个引用合并表或使用';链';参考文献的数量?

Sql 使用1个引用合并表或使用';链';参考文献的数量?,sql,oracle,Sql,Oracle,我正在查询使用OPC存储的过程历史记录数据。querys跑得很慢。我应该期望哪种表合并方法更快,为什么在查询数据时更快 这: 或者这个: and a1.TS >'15-MAR-18 07:00' and a1.TS = a2.TS and a1.TS = a3.TS and a1.TS = a4.TS

我正在查询使用OPC存储的过程历史记录数据。querys跑得很慢。我应该期望哪种表合并方法更快,为什么在查询数据时更快

这:

或者这个:

and a1.TS >'15-MAR-18 07:00'                                             
and a1.TS = a2.TS                                                   
and a1.TS = a3.TS
and a1.TS = a4.TS
and a1.TS = a5.TS
and a1.TS = a6.TS
and a1.TS = a7.TS 
and a1.TS = a8.TS
and a1.TS = a9.TS
and a1.TS = a10.TS
and a1.TS = a11.TS

我认为第二个更好。为什么?第一种方法对
连接
s施加特定的顺序。优化器可能认识到这两个结构是相同的,但我不认为这是真的

优化的步骤之一是选择联接操作的顺序。这会产生很大的影响,特别是在索引和减少数据大小方面


在一个结构良好的数据库中,您可能看不到性能有多大差异。您可以检查查询计划,查看它们是否相同。特别是,您希望
TS
成为所有表的索引中的第一个键。

好吧,试试看!告诉我们有没有什么不同,我怎么计算时间?(不使用我手机上的秒表lol)应该是一样的。无论如何,您可以使用以下方法进行测试:如果两者都有相同的计划,那么对于db也是相同的optimizer@VinceMiller我以前从未与甲骨文合作过,但我在谷歌上不到5秒钟就找到了你“我如何计算时间”问题的答案。@VinceMiller贴上了标签。
and a1.TS >'15-MAR-18 07:00'                                             
and a1.TS = a2.TS                                                   
and a1.TS = a3.TS
and a1.TS = a4.TS
and a1.TS = a5.TS
and a1.TS = a6.TS
and a1.TS = a7.TS 
and a1.TS = a8.TS
and a1.TS = a9.TS
and a1.TS = a10.TS
and a1.TS = a11.TS