2010-07-22 3 views
0

Мы используем зависимость SQLCache в нашем приложении asp.net. Мы сохраняем, как 100000 записей в кеше, это хорошая практика или нам нужно найти альтернативное решение, потому что иногда наш серверный процессор ударяет на 100% из-за него, и нам приходится сбросить пулы приложений.SQLCacheDependency с записями 100000

Любая помощь будет принята с благодарностью.

+6

звучит так, как будто вы ответили на свой вопрос ... –

ответ

3

Это зависит от того, как вы его реализовали; но это звучит как плохая идея. Вы не даете много деталей.

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

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

Я не знаю, насколько этот ответ вам поможет, но вы не задаете очень много деталей в вопросе. Не стесняйтесь обновлять свой вопрос, и вы можете получить более качественные ответы.

+1

Что вы имеете в виду с «кеш-ведром»? Является ли это ключом, под которым объект хранится в кеше, например. Кэш ["_ bucket_"] = значение; – M4N

1

Возможно, вы захотите изучить сервер кеша, такой как memcached или «Code Name Velocity» от Microsoft, который находится в CTP3. Существует также blog для Velocity и образец для зависимости sql here.

Это распределенные серверы кеша и должны работать лучше для вашего сценария, и они будут масштабироваться намного лучше.

+0

Верно, но если это всего 100000 записей, встроенный кеш ASP.NET должен иметь возможность обрабатывать его очень хорошо. Если он действительно нуждается в масштабировании, тогда это хороший ответ. – driis

+0

Я согласен, что 100.000 невелика. Даже внутренний словарь мог бы справиться с этим. В зависимости от того, как триггеры зависимостей работают в его коде, возможно, Velocity будет работать лучше. Также мы не знаем размер или структуру кэшированных данных. –

+1

Событие проще Я пробовал с AppFaric, но теперь CPU не идет на 100%, но скорость этого размера невероятно медленная. –

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