2012-03-19 51 views
1

我正在使用Aspnet成員資格,並且我已將用戶信息存儲在與會員相關的數據中,例如aspnet_membership表中存儲的用戶標識和密碼,aspnet_profile表中的名字,姓氏,姓氏,dob等成員資料。ASP.NET中的性能問題Membership

現在我需要在我的網頁中添加一個搜索面板。此搜索面板包含搜索參數,例如名字,姓氏和加入日期等,根據這些搜索參數,我需要從個人資料和用戶的最後登錄信息中搜索用戶。我使用profilecommon和profilebase類來檢索這些數據。但它非常緩慢。系統至少需要2分鐘才能根據70條記錄中的參數查找數據。

請幫忙解決這個程序。

+1

您是否在數據庫表中創建了索引?你能發佈你用於搜索的SQL查詢嗎? – sikander 2012-03-19 12:19:34

+0

是的,索引已創建。順便說一句,這個表是使用aspnet_regiis創建的。所以我需要明確生成索引嗎? – 2012-03-19 12:31:32

+0

您能解釋一下嗎?_「根據70條記錄中的參數查找數據。」_什麼參數,什麼數據和什麼查詢? 70條記錄意味着你有70個用戶? – 2012-03-19 12:34:37

回答

1

您應該檢索存儲過程中的成員資格和配置文件信息,而不是使用任何基於代碼的類來獲取名稱。在提取每個用戶的個人資料信息方面表現不佳。

+0

你是對的。我使用基於代碼的類來獲取配置文件的名稱和其他信息。 但aspnet_profiles以串行方式保存數據。那麼你有沒有任何可以解決這種情況的存儲過程? – 2012-03-19 13:25:42

+0

我手邊沒有任何東西;我認爲人們寫公用事業來處理這個問題,或者你也可以尋找替代供應商。有些人想出了另外的配置文件數據庫,其中每個值都是表中的一行。 – 2012-03-19 14:49:28

+0

我個人很喜歡不使用配置文件,但在我的數據庫中使用單獨的表來存儲所有這些信息。它使它變得容易很多(比如說一個用戶表,其中包含一個用於名字/姓氏的字段等)。這樣,您可以輕鬆提取信息,並通過provideruserkey字段將此表記錄鏈接到成員資格提供程序。 – 2012-03-19 14:50:27