Explain why indexes were skipped
Feature request: expose information about what indexes the optimizer considered while compiling an execution plan. Specifically, the index names and WHY the index was rejected for that particular query. This could potentially be included in per-operator execution plan properties (see attached mockup), an extended event target, or some other avenue.
Reason: many developers and DBAs wonder why certain indexes on their tables aren't being chosen for specific queries. This gives them better tools to figure that out and make better use of the SQL Server product.
I've blogged about this feature request in more detail here: http://joshthecoder.com/2018/06/21/feature-request-index-rejection-reasons.html
This request was inspired by a feature of the RavenDB document database: https://ayende.com/blog/183425-C/ravendb-4-1-features-explain-that-choice
Daniel L commented
This is a great Idea and a feature I am missing from my days with SAPs SQL Anywhere (ASA).
"Interactive SQL" which is a T-SQL Editor that can run and analyze statments, allows you to see the following:
-- seq --
-- Table1 UNIQUE (Col1,Col2) --
This is a List of the different indexes or "ways to access the requested data".
And it is awesome to see what was skipped and why.
Am I set Foreign key reference for procedure and trigger in sql server in visual C#.net