ASP.NET 成员资格 table 和来自 BlitzIndex 的边缘重复键

ASP.NET membership table and borderline duplicate keys from BlitzIndex

我在网站上使用 ASP.NET 会员设置,我 运行 BlitzIndex 反对它。它说以下项目是边界重复键。合并它们或删除重复的额外存储数据的最佳方法是什么?

CREATE INDEX [aspnet_Users_Index2] ON [Test].[dbo].[aspnet_Users] (
    [ApplicationId]
    , [LastActivityDate]
) WITH (FILLFACTOR=100, ONLINE=?, SORT_IN_TEMPDB=?, DATA_COMPRESSION=?);

CREATE UNIQUE CLUSTERED INDEX [aspnet_Users_Index] ON [Test].[dbo].[aspnet_Users] (
    [ApplicationId]
    , [LoweredUserName]
) WITH (FILLFACTOR=100, ONLINE=?, SORT_IN_TEMPDB=?, DATA_COMPRESSION=?);
  1. 此消息只是一个提示。有关完整详细信息,您需要阅读 this。远非如此简单。

  2. 由于它们是开箱即用的索引,您真的应该将它们单独放置。 (感谢丹)。

  3. 为了更好地理解,考虑这一点,第一列(也是唯一的共同列)是 ApplicationId。现在,根据我的经验,运行 跨多个应用程序的成员数据库非常罕见,因此大多数 ApplicationId 将是一个常量,因此对索引没有帮助。所以索引的主要用途实际上是第二列(即使你有多个应用程序,第二列也很重要)而且它们是完全不同的,表明完全不同的访问模式。因此,您绝对不想尝试将它们结合起来。