Bitte gehen Sie einfach auf mich als dies ist mein erster Beitrag.INFORMATION_SCHEMA Abfrage läuft langsam
Ich habe Probleme herauszufinden, was die folgende Abfrage auf unserer INFORMATION_SCHEMA von so langsam ausgeführt beheben wird. Soweit ich weiß, sind diese Ansichten ziemlich gut abgesichert. Dies ist auf SQL Server 2014 Standard.
Kürzlich haben wir die Datenbank wiederhergestellt, auf der diese Abfrage verwendet wurde. Diese Datenbank ist die Testversion einer Produktionsdatenbank. Vor dieser Wiederherstellung lief diese Abfrage in wenigen Sekunden oder weniger, aber jetzt dauert es 3-5 + Minuten, um 36 Zeilen zurückzugeben. Diese Abfrage wird deutlich schneller ausgeführt, wobei die letzte Zeile in etwa 4 Sekunden auskommentiert wird und 60 Zeilen zurückgegeben werden.
Hat jemand irgendwelche Ideen, was zu tun ist, um es wieder schnell zu machen?
Weitere Details, die noch einige Fragen beantworten können: Die Abfrage dauert so lange in der Produktionsdatenbank. Es gibt keine Indizes für die Ansichten.
SELECT pf.TABLE_CATALOG AS PK_TABLE_DATABASE,
pf.TABLE_SCHEMA AS PK_SCHEMA_NAME,
pf.TABLE_NAME AS PK_TABLE_NAME,
pf.COLUMN_NAME AS PK_FIELD_NAME,
ff.TABLE_CATALOG AS FK_TABLE_DATABASE,
ff.TABLE_SCHEMA AS FK_SCHEMA_NAME,
ff.TABLE_NAME AS FK_TABLE_NAME,
ff.COLUMN_NAME AS FK_FIELD_NAME,
pf.ORDINAL_POSITION AS ORDINAL
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ff
ON rc.CONSTRAINT_NAME = ff.CONSTRAINT_NAME
AND rc.CONSTRAINT_SCHEMA = ff.CONSTRAINT_SCHEMA
AND rc.CONSTRAINT_CATALOG = ff.CONSTRAINT_CATALOG
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE pf
ON rc.UNIQUE_CONSTRAINT_NAME = pf.CONSTRAINT_NAME
AND rc.UNIQUE_CONSTRAINT_SCHEMA = pf.CONSTRAINT_SCHEMA
AND rc.UNIQUE_CONSTRAINT_CATALOG = pf.CONSTRAINT_CATALOG
AND ff.ORDINAL_POSITION = pf.ORDINAL_POSITION --line in question
Vielen Dank für Ihre Zeit.
ich etwas fehlen darf - warum kommen Sie 'JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE' zweimal? Ich sehe nichts, was sie unterscheidet. –
Um die Tabellen- und Feldinformationen für PK und FK in der Kombination zu erhalten. – dgoodman