1

私はこれらの2つのインデックスをテーブルに持っていますが、それらは交換可能かどうか疑問に思いますか?使用統計を見ると、両方が使用されていることがわかります。

削除するとどうなりIX_clicks_tokenますか?uc_token代わりに使用されますか?

CREATE NONCLUSTERED INDEX [IX_clicks_token] ON [dbo].[clicks]
(
    [token] ASC
)


ALTER TABLE [dbo].[clicks] ADD  CONSTRAINT [uc_token] UNIQUE NONCLUSTERED 
(
    [token] ASC
)


OBJECT NAME     |   IX_clicks_token --- uc_token
user_seeks      |   0 --- 12
user_scans      |   10500 --- 298
user_lookups    |   0 --- 0
user_updates    |   582272 --- 582272
last_user_seek  |   NULL --- 2013-03-24
last_user_scan  |   2013-03-25 --- 2013-03-20
4

2 に答える 2

3

IX_clicks_tokenuc_token定義はほぼ同じですが、唯一の違いは、一意性を強制uc_tokenすることと、クラスター化されていないインデックスを提供することです。

削除する場合は、残りのインデックスが非常に断片化されている奇妙なエッジケースがないと仮定してIX_clicks_tokenuc_token代わりに使用する必要があります。

于 2013-03-25T22:28:08.397 に答える
1

どちらも同等です。おそらく、同じ選択肢の場合のランダムなオプティマイザの選択のために、両方が使用されているだけです。

それらの1つを削除します。どちらでも構いません。一方をドロップすることはできず、もう一方をドロップする場合もあります。その場合は、選択が自動的に行われます。

于 2013-03-25T23:02:21.630 に答える