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