Sql-server – performance difference between a Dropped Index and a Disabled Index, for a NON-Clustered Index

nonclustered-indexsql server

I'm aware that there are substantial differences between Dropping and Disabling a CLUSTERED Index, but I want to know about NON-CLUSTERED indexes.

And I'm aware that Disabling an Index retains the Metadata of the index definition, making it easier and lower maintenance to reinstate the Index afterwards.

But from a straight "Performance of INSERTs, UPDATEs and DELETEs" point-of-view …

Is there any performance difference between having Disabled a Non-Clustered Index, and having dropped it entirely. Either during the table edits, or for the CREATE vs the REBUILD afterwards?

Best Answer

As documented:

The query optimizer does not consider the disabled index when creating query execution plans. Also, queries that reference the disabled index with a table hint fail.

The index is completely ignored for querying

The index is not maintained while it is disabled.

So it doesn't appear in inserts, updates and deletes.

You cannot create an index that uses the same name as an existing disabled index.

Not documented, but you cannot drop columns that the index depends on.