2010-11-05 48 views
2

我需要爲我的ASP.NET Web應用程序存儲2個值(計數器)。計數器總是增長,他們不應該返回到0.所以一種選擇是將它們保存在數據庫中,我有什麼其他選項,因爲將它們存儲在表中似乎不成比例?會話不是一個選項,因爲計數器必須在應用程序重新啓動後繼續。在數據庫中存儲全局計數器?什麼是另一種選擇?

謝謝:-)

+4

什麼櫃檯的目的是什麼?知道這將幫助我們給出符合您需求的答案。 – Oded 2010-11-05 09:44:58

+0

這些計數器轉到從Web應用程序創建的文件中(對於寫入文件的每個對象(我們有一些自定義的東西)),它們以某種方式增加。此導出的文件由客戶端的某個第三方應用程序讀取。 – grady 2010-11-05 10:05:27

回答

1

將計數存儲在數據庫表中聽起來完全適合在這裏。

其中浮現在腦海中的其他選項是使用一個文件,它不會是非常可靠的ACID明智的,或內存,使用類似的memcache,這將無法生存重新啓動系統。

不要擔心使用數據庫表。它幾乎不會佔用任何存儲空間,也不會承受任何重大的開銷,除非它們被頻繁寫入。如果是這種情況,請添加更多信息,我們可能會提出其他解決方案。

-1

它們保存在一個文件中。最快的方法。

+0

那麼,你認爲文件IO總是比網絡IO快?多線程訪問不會是一個問題? – Oded 2010-11-05 09:49:04

+0

@我同意,在有大量IO的大型應用程序中,將任何持久性留給數據庫更合理。當涉及到中小型應用程序時,文件是另一種選擇,有時更好。畢竟,通過網絡發送命令和獲取結果集,以及爲本地文件IO構建隊列之間存在很大差異。 – AlexanderMP 2010-11-05 09:57:42

1

如果這些計數器很少更新,並且可以依賴機器(你不是在集羣中),那麼我會用簡單的東西,就像寫自己的價值觀來設置文件。請記住,你將不得不應對多線程。

如果有大量的訪問計數器,將它們存儲在數據庫中。

相關問題