T-SQL: Fehlende Indizes…

Häufig scheinen Abfragen überraschend langsam sein, oder immer langsam werden…. Als Tunings-Maßnahme lohnen sich meist als erster Versuch Indizes in der Datenbank. Lediglich sind bestimmte Rechte für der u. g. TSQL-Code notwendig


-- Missing Index Script
-- Original Author: Pinal Dave (C) 2011
-- verändert von Frank Odenbreit 2011/2013/2016

/*
Es werden zwar die 50 wichtigsten Indizes geholt und diese nachher sortiert nach ihrem Namen
(Ähnlichkeiten sollte man erkennen können, ggf. anpassen bzw. aus kommentieren)
*/


Select *
from (
SELECT TOP 50
	dm_mid.database_id AS DatabaseID,
	dm_migs.user_seeks as user_seeks,
	dm_migs.avg_user_impact as avg_user_impact, 
	dm_migs.avg_user_impact * (dm_migs.user_seeks+dm_migs.user_scans) AS Avg_Estimated_Impact,
	dm_migs.last_user_seek AS Last_User_Seek,	object_name(dm_mid.object_id) AS [TableName],
	--*,

	'CREATE NONCLUSTERED INDEX [ndx' + object_name(dm_mid.object_id) + '__'
	+ REPLACE(REPLACE(REPLACE(ISNULL(dm_mid.equality_columns,''),', ','_'),'[',''),']','') +
	CASE
	WHEN dm_mid.equality_columns IS NOT NULL AND dm_mid.inequality_columns IS NOT NULL THEN '_'
	ELSE ''
	END
	+ REPLACE(REPLACE(REPLACE(ISNULL(dm_mid.inequality_columns,''),', ','_'),'[',''),']','')
	+ ']'
	
	+ ' ON ' + dm_mid.statement		+ ' (' + ISNULL (dm_mid.equality_columns,'')
	+ CASE WHEN dm_mid.equality_columns IS NOT NULL AND dm_mid.inequality_columns IS NOT NULL THEN ',' ELSE
	'' END
	+ ISNULL (dm_mid.inequality_columns, '')
	+ ')'
	
	+ ISNULL (' INCLUDE (' + dm_mid.included_columns + ')', '') 
	+ '  WITH (pad_index=OFF,Fillfactor=90,ignore_dup_key=OFF,allow_row_locks=ON,allow_page_locks=ON,DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]'
	
	AS Create_Statement
	
FROM sys.dm_db_missing_index_groups dm_mig
	INNER JOIN sys.dm_db_missing_index_group_stats dm_migs ON dm_migs.group_handle = dm_mig.index_group_handle
	INNER JOIN sys.dm_db_missing_index_details dm_mid ON dm_mig.index_handle = dm_mid.index_handle
WHERE dm_mid.database_ID = DB_ID()
ORDER BY Avg_Estimated_Impact DESC 
) as t
order by Create_Statement asc

DataTools sind plötzlich verloren – was kann los sein?

Das Problem erwischt uns bei uns seit kurzer Zeit ganz kalt:
Von heute auf morgen kann man nicht mehr Integration Service Projekte aufrufen.

Vorab: Die Ursache ist schlicht und einfach war das „Disable the extension“ anzuklicken – Bitte: Maximal darf „Never Show this message again“ angeklickt werden, oder ganz rechts das „X“.

Was war passiert?

Als das Visual Studio gerade einmal neu gestartet wurde… und nichts geht mehr!


Auch ein „vollständiges VisualStudio“ und „DataTools“ oder nur die „DataTools“ Update, Repair, Neuinstallation… hat bisher gar nichts gebracht– höchstens Zeit, Nerven oder ein noch kaputteres System!

Lösung im Visual Studio: Einfach dieses „Microsoft Integration Service Projekts“ wieder „enablen“:
(Aufruf über Menü im VS: Tools / Extensions an Updates / „Microsoft Integration Service Projekts“)

Dann muss man (derzeit) das Visual Studio leider noch einmal starten und weil die Anzeige scheinbar weiterhin so kaputt ist, muss man jetzt die Projekt einfach „reloaden“:

Wie wurde das überhaupt disabled? Ja, die Ursache ist der Empfehlung  von Microsoft zu folgen und einfach die „Extension“ zu disablen (siehe ganz oben den gelben Balken;-).

Diese Quelle hilft (aber zeigte nicht die Ursache):
https://stackoverflow.com/questions/49310399/microsoft-datatransformationservices-wizards-error-in-vs-2017