首页 > 解决方案 > 来自 BlitzIndex 的 ASP.NET 成员资格表和边界重复键

问题描述

我正在使用带有站点的 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=?);

标签: sqlsql-serverindexingkey

解决方案


  1. 此消息只是一个提示。有关完整的详细信息,您需要阅读内容。它远非简单。

  2. 由于它们是开箱即用的索引,因此您真的应该不理会它们。(谢谢丹)。

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


推荐阅读