SQL Server 2008 - Datenbankübergreifende Leistung auf derselben physischen Maschine und Serverinstanz


12

Gibt es Leistungseinbußen, wenn Sie eine Auswahl für eine andere Datenbank auf derselben physischen Maschine vornehmen? Ich habe also zwei Datenbanken auf demselben physischen Computer, die in derselben SQL 2008-Instanz ausgeführt werden.

Zum Beispiel in SomStoreProc on_this_db führe ich SELECT someFields FROM the_other_db.dbo.someTable aus

Soweit ich das im Internet gelesen habe, scheinen die meisten Leute NEIN anzugeben.

Antworten:


13

Bei datenbankübergreifenden Abfragen auf derselben Instanz sollte keine Leistungsminderung auftreten. Der gleiche Query Analyzer, Puffer usw. werden verwendet.

Wenn Sie nun versuchen, dasselbe in verschiedenen SQL-Instanzen auf demselben Server auszuführen, kann dies zu Leistungseinbußen führen. Die Abfrage müsste von zwei unterschiedlichen Abfrageanalysatoren analysiert werden, und mehr Systemressourcen würden für Caches, Puffer usw. verwendet. Sie würden auch erzwingen, dass die Ergebnisse zwischen den Instanzen das VIA-Protokoll durchlaufen (vorausgesetzt, es ist aktiviert). Möglicherweise liegt ein MS DTC vor, und wenn die Berechtigungen für eine der Instanzen nicht ausreichen, wird möglicherweise ein schlechter Abfrageplan erstellt.


4

Die Statistiken zu Profiler + Ausführungsplan + E / A / CPU sind Ihr bester Freund, wenn Sie dies überprüfen. Kopieren Sie Ihre Tabelle in die erste Datenbank, und vergleichen Sie die Dauer und die anderen Statistiken mit denen, die bei Verwendung der Tabelle in der zweiten Datenbank gefunden wurden. Sie werden sehen, ob es Strafen gibt.

Ich persönlich habe beim Lesen von Tabellendaten aus anderen Datenbanken auf demselben Server keine sichtbaren Leistungseinbußen festgestellt.


lol sie optimieren die Abfragen endlich!
user547
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.