Kurz gesagt, Sie müssen isolieren, ob die Datenbank selbst im Vergleich zur anderen langsam ist oder ob ihre Umgebung langsamer ist. Schließen Sie zuerst die einfachsten Dinge aus.
Das ist mir schon ein paar Mal passiert. Jedes Mal stellte sich heraus, dass es sich um eine Umgebung handelte: Jemand anderes hämmerte weg und hungerte die Datenbank von IOPS auf einem Server.
Führen Sie ein Top (1) auf dem langsameren Server aus und prüfen Sie, ob in der CPU viele Wartezustände auftreten oder ob die CPU in einer virtuellen Umgebung gestohlen wird.
Dies hilft auch dabei, auf fehlende Indizes hinzuweisen, die dazu führen, dass Ausführungspläne vollständige Tabellenscans anstelle von Indexscans durchführen (dies ist jedoch bei langsamer Abfrageprotokollierung leicht zu erkennen). Dies wird auch in ps als procs in einem D-Zustand angezeigt.
Sobald Sie dies ausgeschlossen haben, ist es Zeit, sich eingehender mit der Hardware zu befassen: Wird die Arbeit auf alle CPUs verteilt, hat sich ein Netzwerkport auf 100 MB neu ausgehandelt. Führen Sie vmstat und / oder iostat auf beiden Computern aus und vergleichen Sie die Unterschiede.
Wenn die Datensätze identisch sind, generiert dieselbe Abfrage für beide denselben Ausführungsplan? Enthalten Tabellen die gleiche Anzahl von Zeilen? Sind die Indexdefinitionen identisch? Haben die Tabellen ähnliche Fragmentierungsgrade? Ähnliche Anzahl aktiver Verbindungen?