Кэшируется ли сущность в Query Caching? - PullRequest
0 голосов
/ 26 августа 2009

Я использовал nhibernate для своей реализации. Для этого требуется много выборок из базы данных, и чтобы сократить время обработки, я включил кэширование запросов и загружал полные данные таблиц в приложении при запуске. Затем сделал Линк против этого. Кэширование на вторичном уровне и кеширование запросов включено. Это работает, но когда я делаю обработку несколько раз, в моих файлах журнала я вижу запросы к кэшированным таблицам с их первичным ключом, и он делает это для каждой строки в этой таблице. Я думаю, что это происходит, потому что мой запрос против полной таблицы без каких-либо условий. Я не знаю, это из-за любой проблемы в моем коде или любой другой проблемы. Когда я делаю это с меньшим количеством объектов, это, кажется, работает. Кто-нибудь знает что-нибудь об этой проблеме? Кэширование запросов - это только первичные ключи строк?

1 Ответ

2 голосов
/ 19 января 2010

Кэширование запроса будет кэшировать только первичный ключ результатов запроса. Из документации кеша запросов :

Обратите внимание, что кеш запросов не кэшировать состояние любых объектов в набор результатов; кеширует только идентификатор значения и результаты типа значения. Так кеш запросов всегда должен использоваться в сочетании со вторым уровнем кэш.

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