Кэширование LINQ to SQL DataContext - PullRequest
1 голос
/ 30 июля 2010

Мы находимся в процессе оптимизации производительности для многопользовательского веб-приложения. В настоящее время контекст данных LinqToSql создается в начале каждого веб-запроса. У контекста есть время жизни для веб-запроса, и он внедряется в конструктор любых объектов, которым он нужен, с помощью Castle Windsor.

Мы думали кэшировать контекст (и набор объектов, прикрепленных к нему) в кеше сеанса до нескольких минут, чтобы оптимизировать затраты на настройку последующих веб-запросов. Это хорошая / плохая идея? Какие вопросы необходимо учитывать?

1 Ответ

2 голосов
/ 30 июля 2010

Плохая идея ИМО. Самой большой проблемой будет параллелизм. Благодаря пулу соединений затраты не так велики, если вы используете контекст данных в качестве канала для данных, а не для самого блока данных.

Кэшировать данные ; выбросить контекст данных.

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

Измерили ли вы стоимость установки, чтобы вы знали, стоит ли это учитывать? Я действительно не верю, что это ваше узкое место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...