Birden çok eksik dizine sahip yürütme planı


15

'Gerçek yürütme planını ekle' ile bir sorgu çalıştırırsanız, plan aynı zamanda eksik olan dizinleri de önerir. Dizin ayrıntıları XML'deki MissingIndexesetiketin içindedir . Planın birden fazla dizin önerisi içerdiği bir durum var mı? Farklı sql sorguları denedim ama iki veya daha fazla eksik dizin üreten herhangi bir sorgu ile gelemedi.

Yanıtlar:


27

SQL Server'daki Sorgu İyileştiricisi, tek tek sorgular için birden çok eksik dizin önerisi yapabilir. Ancak SQL Server Management Studio'nun (SSMS) yürütme planlarını görsel olarak görüntüleyen kısmı yalnızca tek bir eksik dizin önerisi görüntüler; bir hata gibi görünüyor. Bununla birlikte, bu çoklu indeks önerileri SSMS'de görülebilir, örneğin ilk operatörün (ör. SELECT) Özelliklerinde, tuşuna basın F4.

SSMS'de birden çok eksik dizin önerisini görüntüleme

Ayrıca belirttiğiniz gibi, plan XML'inde veya SQL Sentry Plan Explorer gibi üçüncü taraf araçlarında birden çok öneri görünür . Eksik endeks DMV'lerinde birden fazla öneri de görünecektir (örn. Sys.dm_db_missing_index_details )

Bu basit sorgu benim için birden fazla öneriyle sonuçlandı:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.