Piano di esecuzione con più indici mancanti


15

Se si esegue una query con "Includi piano di esecuzione effettivo", il piano suggerirà anche gli indici mancanti. I dettagli dell'indice sono all'interno del MissingIndexestag nell'XML. C'è una situazione in cui il piano include più suggerimenti di indice? Ho provato diverse query sql ma non sono riuscito a trovare alcuna query che generi due o più indici mancanti.

Risposte:


27

Lo Strumento per ottimizzare le query in SQL Server può fornire più suggerimenti di indice mancanti per singole query. Tuttavia, la parte di SQL Server Management Studio (SSMS) che visualizza i piani di esecuzione visualizza visivamente solo un singolo suggerimento di indice mancante; sembra un insetto. Tuttavia, questi suggerimenti sull'indice multiplo sono visibili in SSMS, ad es. Nelle proprietà del primo operatore (ad es. SELECT), Premere F4.

Visualizzazione di più suggerimenti di indice mancanti in SSMS

Come hai anche notato, più suggerimenti sono visibili nell'XML del piano o strumenti di terze parti come SQL Sentry Plan Explorer . Più suggerimenti saranno anche visibili nei DMV dell'indice mancanti (ad es. Sys.dm_db_missing_index_details )

Questa semplice query mi ha dato diversi suggerimenti:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.