哪个更好:单个全局序列与每个表的序列?

时间:2011-10-14 23:35:15

标签: oracle hibernate jpa

在使用本机Oracle序列的JPA / Hibernate应用程序中,最好是使用单个全局序列(如hibernate_sequence),还是为每个表定义一个单独的序列?

似乎单个序列更易于维护,但通过制作更长的ID可能会使故障排除或即席查询变得更难。

3 个答案:

答案 0 :(得分:13)

虽然缓存可以缓解它,但是当多个会话需要下一个会话时,序列可能会导致争用。 如果有一个序列服务于所有表,那么所有表上的所有插入都将争用相同的序列。如果您在演出之后,每个表的一个序列将减少争用。

答案 1 :(得分:3)

单个序列表示两个表中没有匹配的ID。在实践中,我喜欢这样,因为当你不小心查询错误的表时,你永远无法获得某些东西。删除特别有用。这是一件小事,但我发现它很有用。

答案 2 :(得分:1)

我建议你每桌使用一个序列。在我的书中它只是一点清洁。我目前就业的标准是每桌的顺序。