2016-11-29 3 views
0

Мой коллега и я, находимся в середине проекта, истекающего из времени. Мы нашли существующий код, где обсуждались производительность кэша, db и сетевого трафика.Кэш производительности против DB против сетевого трафика

Это не вопрос исключительно для загрузки из кеша vs db, так как ответ очевиден, что кеш является единственным ответом.

Я говорю о табличной функции в Sql Server 2008, которая возвращает 3000 строк и 12 неиндексированных столбцов из 2 таблиц.

Одна из этих двух таблиц уже находится в кеше. В любом случае нам нужно пройти через базу данных, чтобы получить данные из таблицы, которая не кэшируется.

Лучше итерации со всеми данными, которые были исключительно возвращены из БД и отображены наши объекты (в этом случае нам не нужно будет загружать кэшированные данные, потому что все было возвращено из БД), или лучше вернуться только идентификатор из БД для кэшированного объекта (для уменьшения сетевого трафика) и загрузка информации из кеша во время 3000 итераций?

Заранее спасибо.

ответ

0

Решите и придерживайтесь одного решения или теста обоих решений.

0

Если я правильно понимаю ваш вопрос, спрашиваете, следует ли вам загружать данные для таблицы 2 «на лету», когда вы перебираете записи (при загрузке или иным образом)? Если это то, о чем вы просите, я думаю, что ответ очень вероятен, что он будет значительно медленнее с точки зрения сетевой латентности. Каждый звонок в вашу базу данных может повлечь за собой значительную стоимость всего за время в оба конца до сервера БД. Многое зависит от того, что такое задержка ...

Смежные вопросы