【问题标题】:performance issues in ASP.NET MembershipASP.NET Membership 中的性能问题
【发布时间】:2012-03-19 12:17:27
【问题描述】:

我正在使用 Aspnet 会员,并且我已将用户信息存储在会员相关数据中,例如用户 ID 和密码存储在 Aspnet_Membership 表中,成员配置文件(如 aspnet_profile 表中的名字、姓氏、姓氏、出生日期等)。

现在我需要在我的网页中添加一个搜索面板。此搜索面板包含搜索参数,如名字、姓氏和加入日期等。根据此搜索参数,我需要从个人资料和用户的上次登录信息中搜索用户。我使用 profilecommon 和 profilebase 类来检索这些数据。但它非常缓慢。系统根据参数从70条记录中查找数据至少需要2分钟。

请帮助解决这个程序。

【问题讨论】:

  • 您是否在数据库表中创建了索引?您可以发布您用于搜索的 SQL 查询吗?
  • 是的,已创建索引。顺便说一句,这些表是使用 aspnet_regiis 创建的。那么我需要显式生成索引吗?
  • 你能解释一下吗:“根据参数从70条记录中查找数据。”什么参数,什么数据,什么查询? 70 条记录意味着您有 70 个用户?
  • 是的,70 条记录意味着 70 个用户。

标签: asp.net


【解决方案1】:

您应该在存储过程中检索成员资格和配置文件信息,而不是使用任何基于代码的类来获取名称。提取每个用户的个人资料信息时效果不佳。

【讨论】:

  • 你是对的。我使用基于代码的类来获取配置文件的名称和其他信息。但是 aspnet_profiles 以序列化的方式保存数据。那么您是否有任何可用于解决这种情况的存储过程?
  • 我手头没有任何东西;我认为人们编写了实用程序来处理这个问题,或者您也可以四处寻找替代提供者。有些人提出了替代配置文件数据库,其中每个值都是表中的一行。
  • 我个人不喜欢使用配置文件,而是在我的数据库中使用一个单独的表来存储所有这些信息。这让它变得更容易(比如一个用户表,其中包含一个字段为 first/姓氏等)。这样,您可以轻松提取信息,并通过 provideruserkey 字段将此表记录链接到会员提供者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多