【发布时间】:2016-05-17 07:08:16
【问题描述】:
听说在 Sql Server 中 Sequence 比 Identity 快。但是,我认为在实体框架中使用它不是一个好主意。因为,要在实体框架中使用序列,您应该进行额外的调用以获取下一个序列。
int sequence = context.Database.SqlQuery<int>("SELECT NEXT VALUE FOR MySequenceName").FirstOrDefault();
因此,我认为在 Entity Framework 中使用 Sequence 会比较慢。我对吗?有人知道吗?
【问题讨论】:
-
SEQUENCE本身并不比IDENTITY快。您可以控制缓存大小,这在某些情况下可能会带来一点好处,但对于大型多行插入序列实际上更慢dba.stackexchange.com/a/31095/3690 -
一般来说,您不应该对您的代码进行任何更改,“因为您听说 X 比 Y 快”。您需要断言的上下文(很少有 X 总是优于 Y 并且是 Y 的 1-1 替代品的情况 - 特别是因为如果它是真的,他们只会用 X 替换 Y 的实现)。您还需要考虑您是否真的有性能问题开始,以及它是否真的由
Y引起。 -
感谢大家的宝贵cmets
标签: c# sql-server entity-framework sequence