Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL SERVER – SQL_NO_CACHE und OPTION (RECOMPILE)

Als Entwickler und DBA, der oft Technologie bevorzugt, aber wenn wir eine große Organisation leiten, müssen wir allen Technologien mehr entgegenkommen. Einer meiner großen Bankkunden verwendet mehrere Datenbanken, um verschiedene Transaktionen durchzuführen. Sie verwenden auch viele verschiedene Caching-Lösungen für ihr Geschäft sowie erstklassige Hardware. Ich hatte ein sehr interessantes Gespräch mit meinem Kunden zum Thema Abfragen abrufen, nicht aus dem Cache für MySQL und SQL Server, wir haben über SQL_NO_CACHE und OPTION (RECOMPILE) gesprochen. Wir haben während des umfassenden Zustandschecks der Datenbankleistung darüber gesprochen .

Sehen wir uns heute zwei verschiedene Beispiele für MySQL und SQL Server an. Beide relationalen Datenbanken nutzen den Speichercache, um uns die Daten zurückzugeben. Lassen Sie uns sehen, wie wir eine Abfrage schreiben können, bei der wir die zwischengespeicherten Ergebnisse nicht verwenden, sondern unsere Daten direkt von der SQL Server-Festplatte und nicht aus dem Cache abrufen.

SQL Server-Abfrage – OPTION (NEU KOMPILIEREN)

SELECT Columnname
FROM TableName
OPTION(RECOMPILE)

MySQL-Abfrage SQL_NO_CACHE

SELECT SQL_NO_CACHE Columnname
FROM TableName
OPTION(RECOMPILE)

Wenn Sie SQL_NO_CACHE und OPTION (RECOMPILE) verwenden, rufen die relationalen Datenbanken (MySQL bzw. SQL Server) die Daten direkt von der Festplatte ab und nicht das, was im Cache gespeichert ist.

Hier sind einige relevante Blog-Posts zum gleichen Thema, die Sie vielleicht interessant finden.

  • SQL SERVER – Abfrageplan, Cachegröße, Text und Ausführungsanzahl auflisten
  • SQL SERVER – Finden des ältesten Abfrageplans aus dem Cache
  • SQL SERVER – Plan-Cache und Daten-Cache im Arbeitsspeicher
  • SQL SERVER – Gespeicherte Prozedur – Cache bereinigen und Puffer bereinigen
  • SQL SERVER – Entfernen Sie alle zwischengespeicherten Abfragepläne, die in einem bestimmten Zeitraum nicht verwendet wurden
  • SQL SERVER – Skript zum Abrufen des kompilierten Plans mit Parametern aus dem Cache
  • SQL SERVER – Cache planen – Abrufen und Entfernen – Ein einfaches Skript
  • SQL SERVER – 2017 – Skript zum Löschen des Prozedur-Cache auf Datenbankebene