कई लापता सूचकांक के साथ निष्पादन योजना


15

यदि आप 'वास्तविक क्रियान्वयन योजना शामिल करें' के साथ एक क्वेरी चलाते हैं, तो योजना उन अनुक्रमणिकाओं का भी सुझाव देगी जो गायब हैं। सूचकांक विवरण MissingIndexesएक्सएमएल में टैग के अंदर हैं । क्या कोई स्थिति है जब योजना में कई सूचकांक सुझाव शामिल हैं? मैंने अलग-अलग एसक्यूएल प्रश्नों की कोशिश की, लेकिन किसी भी प्रश्न के साथ नहीं आ सका जो दो या अधिक लापता इंडेक्स उत्पन्न करता है।

जवाबों:


27

SQL सर्वर में क्वेरी ऑप्टिमाइज़र व्यक्तिगत प्रश्नों के लिए कई लापता सूचकांक सुझाव दे सकता है। हालाँकि SQL सर्वर प्रबंधन स्टूडियो (SSMS) का हिस्सा जो निष्पादन योजनाओं को नेत्रहीन प्रदर्शित करता है केवल एक लापता सूचकांक सुझाव प्रदर्शित करता है; यह एक बग की तरह दिखता है। हालाँकि, ये कई इंडेक्स सुझाव एसएसएमएस में दिखाई देते हैं, उदाहरण के लिए पहले ऑपरेटर के गुणों में (जैसे SELECT), दबाएं F4

SSMS में कई लापता सूचकांक सुझावों को देखना

जैसा कि आपने भी नोट किया है, प्लान एक्सएमएल या SQL सेंटरी प्लान एक्सप्लोरर जैसे तीसरे पक्ष के टूल में कई सुझाव दिखाई देते हैं । अनेक सुझाव भी लापता सूचकांक DMVs में दिखाई नहीं देंगे (जैसे sys.dm_db_missing_index_details )

इस सरल क्वेरी के परिणामस्वरूप मेरे लिए कई सुझाव आए:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.