2016-11-29 57 views
0

我和我的同事正處於一個耗時的項目中。我們發現了一個現有的代碼,我們正在討論有關緩存,數據庫和網絡流量的性能。性能高速緩存vs數據庫vs網絡流量

這不是一個專門從緩存與數據庫加載的問題,因爲答案顯而易見,緩存是唯一的答案。

我說的是Sql Server 2008中的一個表值函數,它總共從2個表中返回3000行和12個非索引列。

這兩個表中的一個已經在緩存中。無論如何,我們需要通過數據庫來檢索未緩存的表中的數據。

是否更好地迭代所有從數據庫返回的數據並映射我們的對象(在這種情況下,我們不需要加載緩存數據,因爲所有數據都是從數據庫返回的),或者最好只返回來自緩存對象數據庫的ID(以減少網絡流量)並在3000次迭代期間從緩存中加載信息?

在此先感謝。

回答

0

決定並堅持一個決定或基準這兩個解決方案。

0

如果我正確理解你的問題,你問你是否應該在迭代通過記錄(加載或以其他方式)時動態加載表2的數據?如果這就是你所問的問題,我認爲答案很可能就是網絡延遲而言,它會明顯變慢。對數據庫的每次調用都可能會在數據庫服務器的往返時間中產生大量成本。很大程度上取決於潛伏期是什麼...