使用SqlProfileProvider时,提高ProfileManager.GetAllProfiles的性能

时间:2009-11-05 07:56:47

标签: asp.net caching sqlprofileprovider

我正在使用SqlProfileProvider将我的用户配置文件存储在asp.net Web应用程序中。

我正在寻找的是一种获取所有用户配置文件的方式(我更喜欢搜索API,但没有一个可用)具有一些合理的性能。

使用ProfileManager.GetAllProfiles会破坏我的应用程序的性能。

我正在考虑对从此方法返回的对象使用Sql Cache Dependency,但每次有人更新配置文件时(每天可能会发生几次),我仍然会有一个非常慢的网站。

有人建议改善表现吗?我正在寻找这些方面的东西:

  • 有效缓存(只应重新缓存差异)
  • 优化GetAllProfiles调用
  • 能够搜索个人资料,而不必全部获取并稍后过滤

1 个答案:

答案 0 :(得分:0)

sqlProfileProvider不提供搜索配置文件的简便方法,因为所有配置文件数据都存储在单个列中。

您应该考虑创建own profile provider或使用Table Profile Provider之类的内容。这会将每个配置文件属性存储在自己的数据库列中,因此您可以轻松编写自定义查询来搜索数据。