我和我的同事正处于一个时间不足的项目中。我们找到了一个现有的代码,我们正在讨论有关缓存,数据库和网络流量的性能。
这不是专门从缓存与数据库加载的问题,因为答案显而易见,缓存是唯一的答案。
我在谈论Sql Server 2008中的一个表值函数,它总共从2个表中返回3000行和12个非索引列。
这两个表中的一个已经在缓存中。无论如何,我们需要通过数据库来检索未缓存的表中的数据。
使用从DB专门返回的所有数据进行迭代并映射我们的对象(在这种情况下,我们不需要加载缓存的数据,因为所有内容都是从DB返回)或者应该更好地返回只是来自DB的缓存对象的ID(以减少网络流量)并在3000次迭代期间从缓存加载信息?
提前致谢。
答案 0 :(得分:0)
决定并坚持一个决定或基准两种解决方案。
答案 1 :(得分:0)
如果我正确理解您的问题,您是否在迭代记录时(在加载时或其他情况下)是否应该动态加载表2的数据?如果这就是您所问的问题,我认为答案很可能只是在网络延迟方面会明显变慢。对数据库的每次调用都会导致数据库服务器的往返时间很长。很大程度上取决于延迟是什么......