2010-11-05 2 views
2

Мне нужно сохранить 2 значения (счетчики) для моего веб-приложения ASP.NET. Счетчики всегда растут, они никогда не должны возвращаться к 0. Таким образом, один из вариантов заключается в том, чтобы сохранить их в БД, какие у меня есть другие параметры, потому что хранение их в таблице кажется непропорциональным? Сессия не является вариантом, потому что счетчикам приходится пережить перезагрузку приложений.Хранить глобальный счетчик в БД? Какой еще вариант?

Спасибо :-)

+4

Какова цель счетчиков? Знание этого поможет нам дать ответ, который соответствует вашим потребностям. – Oded

+0

Эти счетчики идут в файл, созданный из веб-приложения ... для каждого объекта (какая-то обычная вещь у нас есть), которая записана в файл, они увеличиваются определенным образом. Этот экспортированный файл читается сторонним приложением на стороне клиента. – grady

ответ

1

Сохранение отсчеты в таблице БД звучит вполне уместно.

Другие варианты, которые приходят на ум, - использовать файл, который не был бы очень надежным ACID мудрым или памятью, используя что-то вроде memcache, которое не выдержало бы перезагрузки системы.

Не беспокойтесь об использовании таблицы БД. Это вряд ли займет какое-либо место для хранения или будет иметь значительные накладные расходы, если они не будут написаны очень часто. Если это так, добавьте дополнительную информацию, и мы сможем предложить другие решения.

-1

Сохраните их в файле. Самый быстрый способ.

+0

Итак, вы думаете, что файл IO всегда быстрее, чем сетевой IO? И многопоточный доступ не будет проблемой? – Oded

+0

@Oded, я согласен, что в больших приложениях с большим количеством ввода-вывода более разумно оставлять постоянную базу данных. Когда дело доходит до малых и средних приложений, файл является альтернативой, иногда лучше. В конце концов, существует большая разница между отправкой команды и получением набора результатов через сеть и созданием очередей для локального файла IO. – AlexanderMP

1

Если эти счетчики редко обновляются и могут быть зависимыми от машины (вы не в кластере), я бы использовал что-то простое, например, записывая их значения в файл настроек. Имейте в виду, что вам придется справляться с многопоточными процессами.

Если есть много доступа к счетчикам, храните их в базе данных.

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