2011-06-22 72 views
2

我在優化和應用程序設計領域有一個問題。 我正在使用asp.net和sql server構建一個web應用程序。我應該在哪裏存儲一百萬條記錄數組?

在我的其中一個屏幕中,我必須執行一個動作來生成隨機數的用戶ID。我向觀衆展示了有關所選用戶的一些統計信息。如果觀衆喜歡我想要保存的統計數據。

所以基本上我需要保存臨時的隨機數據,如果用戶喜歡它,保留它。

我應該將生成的ID存儲在數據庫中,還是應該將它們存儲在會話中?

+0

我會去與數據庫:) –

+1

標題是非常誤導和不相關的真正的問題。 –

+1

這是相關的,因爲數組的大小意味着很大。 – Gleno

回答

3

那麼,由於您正在生成隨機ID,您正在使用某種僞隨機生成器。你有沒有考慮過爲這個發電機儲存種子的可能性?我最近有一個類似的問題。其實非常相似。看一看:

My Post about Random(int seed)

編輯:在你建議你想要做多的這個SQL服務器上的意見。看看下面的文章。另外,您可能需要考慮添加新用戶的特殊情況,而您的管理員或任何思考他是否「喜歡」保存該用戶。在這種情況下,您需要額外存儲發出請求時的用戶數量,並相應地調整您的隨機選擇功能。在被移除的用戶的更特殊情況下,這種方法毫無用處。

Seeding SQL

+0

我實際上使用sql查詢來生成一個隨機的Id,在t-sql中你可以通過添加「order by newId」子句來實現。 – vondip

0

這取決於你的情況和要求。如果您將數據存儲在會話中,那很好,但是一旦會話被放棄或結束,您將丟失數據。但是,如果這並不重要,這意味着你不想永遠保存數據,那麼存儲在會話中(臨時)會更好。但是,您需要考慮性能問題,特別是如果多個用戶同時執行相同的操作,會降低性能。

如果您選擇存儲在數據庫中,那麼這也可以工作,但您需要決定是否啓用或禁用ViewState,以便提高性能。

0

,如果我不得不這樣做,我存儲在SQL中的臨時表中的數據將在每個頁面加載事件被刪除並重新創建,我顯示了在網格中的數據,其中從選定的用戶ID可以被刪除並保存