私は SQLServer にかなり慣れていませんが、本当に気になることが 1 つあります。誰かが私に何が起こったのか説明してくれることを願っています。
インデックス作成プロセス中にアクティビティ モニターを実行したところ、脆弱なエンティティを含む一部のクエリに予想よりも時間がかかり、さらに奇妙なことに、SQLServer がフォームの脆弱なエンティティにインデックスを作成することを推奨していることに気付きました。
CREATE NONCLUSTERED INDEX [<INDEXNAME>]
ON [dbo].[<TABLE>] ([<ID1>])
INCLUDE ([<ID2>])
GO
そうすることで (実際には両方の列にインデックスを付けましたが、結果はほとんど同じだと思います)、クエリの速度が本当に向上しました (少なくとも、アクティビティ モニターで確認できることから)。
CREATE UNIQUE NONCLUSTERED INDEX [<INDEXNAME>] ON [dbo].[<TABLE>]
(
[<ID1>] ASC,
[<ID2>] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
私の質問は次のとおりです。SQLServer はクラスター化インデックスを無視しますか? はいの場合、なぜですか? どうにかしてそれを修正できますか?実際には主キー インデックスとまったく同じ内容を持つはずの別のインデックスを追加するのは、かなり奇妙に思えます。