C#4.0 +实体框架
在我目前正在处理的数据库项目中,我们有一个非常大的多个表的数据集。它们嵌套得相当深(总共约60个表)。大多数时候我们需要大量的数据。我曾经急于加载所有数据但后来我发现通过生成的SQL语句(大约300列)返回的数据在某些情况下是总数据大小的20倍(有一些大的nvarchar
列)。所以我认为延迟加载是更好的选择(令我惊讶的是快了10倍)。
我仍然试图扼杀一点表现。现在我们的每个表都有一个审计表。此表或多或少是活动审计记录。由于每个表都有对此的引用,当我延迟加载数据时,我看到60个数据调用进行审计。这里有意义加载它附加的活动记录。
因此,是否可以延迟加载关键记录,但是对于子记录(比如层次结构中的2个级别),强制在其中加载子子项。
IDEAL:
另外,应该注意的是,这些对象被序列化并传递给不能直接访问底层数据的不同系统上的其他应用程序(因为我的大学只是说懒惰负载,因为当你在那里时它会在那里需要它。)