Laufen SQL aus dem Speicher schneller als SSD?

12

Vor kurzem hatten wir Probleme mit der Sperrung unserer Oracle-Datenbank für eine Abfrage, die wir bisher kennen.

Ich werde eine Aufschlüsselung des Geschehens geben, habe jedoch nicht zu viel mit meiner Frage zu tun, bin aber offen für Vorschläge.

Es ist zeitweise nicht bekannt, wann dies geschehen wird. In den letzten vier Monaten hat ein Benutzer viermal darauf geklickt. Was der Benutzer klickt, ist noch unbekannt. Bei jedem Klick wird eine Abfrage in der Datenbank ausgeführt, die ungefähr 700.000 Zeilen generiert.

Ich habe die Tabelle überprüft, für die die Abfrage ausgeführt wird, und die Indizes sehen gut aus.

Die Datenbank ist 60 GB, auf dem Server befinden sich 32 GB.

In den Protokollen auf dem Datenbankserver sehe ich hohe E / A, aber CPU und RAM bleiben gleich.

Auf dem Anwendungsserver steigt die CPU auf ca. 75%. Ich kann den Worker-Prozess und die PID finden. Wenn ich jedoch die mit dem Worker-Prozess verknüpfte PID beende, wird die CPU kurzzeitig heruntergefahren und dann wieder hochgefahren.

Wenn Sie auch den Anwendungspool recyceln und IIS neu starten, wird die CPU für kurze Zeit heruntergefahren und anschließend sofort wieder hochgefahren.

Das einzige, was getan werden kann, um den Server wieder in Betrieb zu nehmen, ist ein Neustart.

Also mein Vorschlag, wenn diese Abfrage die Abstürze verursacht, kann der Speicher auf der Box vergrößert werden, damit die Datenbank zwischengespeichert wird und nicht mehr genügend Speicher zur Verfügung steht. Ich habe das einmal gehört, bin mir aber nicht sicher, ob es wahr ist.

Der Speicher ist ein HP PAR 3 mit drei Ebenen, und die Datenbank befindet sich praktisch in der SSD-Ebene.

Welches ist schneller SSD oder Speicher

Anthony Fornito
quelle

Antworten:

6

Welches ist schneller SSD oder Speicher

DRAM ist schneller als NAND-Flash. Ein RAM-Zugriff liegt in der Größenordnung von 100 ns, während eine zufällige SSD etwa 16.000 ns liest. Latenzzahlen, die jeder Programmierer kennen sollte

Sie müssen systematisch analysieren, was passiert und warum. Ändern Sie nichts, nur weil Sie etwas aus zweiter Hand über ein anderes System gehört haben. Finden Sie heraus, wo das Problem auf diesem System liegt.

Glücklicherweise verfügen DBMS-Systeme in der Regel über Leistungstools. Oracle und andere RDBMS müssen EXPLAIN PLANvollständige Scans und andere Ineffizienzen aufweisen. Abfragen können selbst mit Indizes eine schreckliche Leistung erbringen. Es gibt auch Systemleistungsberichte wie Oracle AWR, um Engpässe zu finden. Wenn Sie weitere Informationen zur DB-Leistung wünschen, können Sie sich auch an unsere Schwestersite /dba// wenden.

John Mahowald
quelle