Ausführungsplan mit mehreren fehlenden Indizes


15

Wenn Sie eine Abfrage mit "Aktuellen Ausführungsplan einschließen" ausführen, schlägt der Plan auch fehlende Indizes vor. Die Indexdetails befinden sich MissingIndexesim XML-Tag. Gibt es eine Situation, in der der Plan mehrere Indexvorschläge enthält? Ich habe verschiedene SQL-Abfragen ausprobiert, konnte aber keine Abfrage finden, die zwei oder mehr fehlende Indizes generiert.

Antworten:


27

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.

Anzeigen mehrerer fehlender Indexvorschläge in SSMS

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.