Das Abfrageoptimierungsprogramm in SQL Server kann mehrere fehlende Indexvorschläge für einzelne Abfragen erstellen. In dem Teil von SQL Server Management Studio (SSMS), in dem Ausführungspläne visuell angezeigt werden, wird jedoch nur ein einzelner fehlender Indexvorschlag angezeigt. es sieht aus wie ein Käfer. Diese Vorschläge für mehrere Indizes sind jedoch in SSMS sichtbar, z. B. in den Eigenschaften für den ersten Bediener (z . B. SELECT
), drücken Sie F4.
Wie Sie auch bemerkt haben, sind mehrere Vorschläge in der Plan-XML oder in Tools von Drittanbietern wie SQL Sentry Plan Explorer sichtbar . Mehrere Vorschläge sind auch in den fehlenden Index-DMVs sichtbar (z. B. sys.dm_db_missing_index_details ).
Diese einfache Abfrage führte zu mehreren Vorschlägen für mich:
USE tempdb
GO
SET NOCOUNT ON
GO
IF OBJECT_ID('dbo.t1') IS NOT NULL DROP TABLE dbo.t1
CREATE TABLE dbo.t1
(
rowId INT IDENTITY
)
GO
IF OBJECT_ID('dbo.t2') IS NOT NULL DROP TABLE dbo.t2
CREATE TABLE dbo.t2
(
rowId INT IDENTITY
)
GO
INSERT INTO dbo.t1 DEFAULT VALUES
GO 100000
INSERT INTO dbo.t2 DEFAULT VALUES
GO 100000
SELECT *
FROM dbo.t1 t1
INNER JOIN dbo.t2 t2 ON t1.rowId = t2.rowId
WHERE t2.rowId = 999;
HTH