Dass Indizes im SQL Server ihre Daseinsberechtigung haben ist nichts wirklich Neues. Dass diese Indizes hin und wieder auch gepflegt werden müssen, mag vielleicht manche Leute überraschen, die sich durch die ansonstige Pflegeleichtigkeit des SQL Servers haben einlullen lassen. Denkt man jedoch in Ruhe darüber nach, wird man einsehen, dass dies notwendig ist und dass es Sinn macht, dass SQL Server diese Aufgabe nicht automatisch einfach blind nach Schema F erledigt.
Seit SQL Server 2005 ergänzen, erweitern und ersetzen Dynamische Verwaltungssichten und Dynamische Verwaltungsfunktionen die Möglichkeiten mit denen DBAs und Entwickler Einblicke in die interne Arbeitsweise von SQL Server erhalten können. Doch die Adaption der DMOs scheint nicht so weit vorgedrungen, wie dies fast 6 Jahre nach Einführung zu erwarten wäre
Manchmal kann es nützlich sein, den Wert oder den Ausdruck einer DEFAULT Einschränkung abzufragen.
DECLARE @TableID int SELECT @TableID = OBJECT_ID ('Enter TableName here') SELECT OBJECT_NAME (IXStats.[object_id]) AS ObjectName, IXStats.index_type_desc, IXStats.avg_record_size_in_bytes FROM sys.dm_db_index_physical_stats (DB_ID(), @TableID, OBJECTPROPERTY (@TableID, 'TableHasClustIndex'), 0, 'SAMPLED') IXStats
DECLARE @string varchar(500)
SELECT
@string = '%SomeString%'
SELECT
SCP.usecounts, SCP.cacheobjtype, SCP.objtype,
[Statement].text,
Executionplan.query_plan
FROM
sys.dm_exec_cached_plans SCP
OUTER APPLY sys.dm_exec_sql_text(plan_handle) [Statement]
OUTER APPLY sys.dm_exec_query_plan(plan_handle) Executionplan
WHERE
Statement.[text] LIKE @string AND
SCP.cacheobjtype ='Compiled Plan' AND
SCP.objtype = 'proc'