你怎么知道你需要多个索引还是一个更大的索引?

时间:2016-09-27 19:03:14

标签: sql sql-server

我的任务是优化主要读取的数据库,并且我被授予Glenn Berry使用DMV查询的带头权。好吧,我正在寻找可能有用的3个“缺失索引”,但它们看起来非常相似。它们是同一个表,看起来一个大索引将覆盖3个可能索引中所需的所有内容。

我如何知道是否应该为所有这些创建一个,或者我是否应该创建单独的索引(在这种情况下,我只会创建其中的1个或2个)?

第二,有没有办法告诉有多少常用执行的查询会使用潜在的索引?

我还没有学会如何实际创建它们,我一直专注于如果我应该制作它们。我要说的是Berry的DMV脚本中缺失索引的信息。

index_advantage
Index 1- 24291.95
Index 2- 830.71
Index 3- 21.51

equality_columns
Index 1- [MessageType],[ConnectionID],[EndDateTime],[ManualEndDateTime],[SupportClose]
Index 2- [MessageType],[EndDateTime],[ManualEndDateTime],[SupportClose]
Index3- [ConnectionID]

included_columns
Index 1- NULL
Index 2- NULL
Index 3- [ID], [Username], [MachineName], [Message], [MessageType], [ConnectionName], [ConnectionTypeName], [EndDateTime], [LoggedUserName], [GroupName], [StartDateTimeUTC], [EndDateTimeUTC], [Cost], [Comment], [Prompt], [Data], [ManualEndDateTime], [UserInfoID], [ManualClosedBy], [SecurityGroup], [SupportClose], [OpenMode], [CloseMode], [HostName], [IsEmbedded], [ClosePrompt], [Status], [ActivityDuration], [DataSourceID], [CreationDate], [ActiveTime], [Application], [Version], [IsPrivate], [PrivateUserID], [CustomerID], [ConnectionUsername]

所有3的表都相同,inequality_columns对于所有3都是相同的。

1 个答案:

答案 0 :(得分:1)

似乎对此的答案要比我希望的要复杂得多。我想我必须自己学习更多东西并运用我学到的东西才能成功地做到这一点。

感谢大家的评论!