Heim  >  Artikel  >  Datenbank  >  5 SQL-Tipps, damit sich Ihr DBA in Sie verliebt

5 SQL-Tipps, damit sich Ihr DBA in Sie verliebt

伊谢尔伦
伊谢尔伦Original
2016-11-24 10:26:49899Durchsuche

1. Rufen Sie die Funktion nicht für die Indexspalte auf

Dadurch wird verhindert, dass die Datenbank diesen Index verwendet. Dieses Problem kann sich sogar auf die partitionierte Tabelle auswirken, da dadurch nicht von der angegebenen Partition gelesen wird. Um Daten abzurufen, scannen Sie den gesamten Tabellenbereich. Bei Datentabellen mit großen Datenmengen wäre dies eine katastrophale Leistungskatastrophe.

Tun Sie dies nicht:

WHERE
TIME_ID+14 > to_number(to_char(sysdate,'J'))

Sollte dies tun:

WHERE
TIME_ID > to_number(to_char(sysdate-14,'J'))

2. Verwenden Sie Analysieren, um komplexes SQL zu optimieren

Wenn Sie Wenn Sie dies nicht tun, verweigern Sie die Verwendung des Abfrageoptimierers der Datenbank und verlieren die Möglichkeit, optimierte Verbindungen zu verwenden. Angenommen, Sie erstellen eine temporäre Tabelle mit 1 Million Datensätzen. Wenn diese nicht analysiert wird, kann der Optimierer den tatsächlichen Inhalt der Tabelle nicht aus den vorhandenen Hinweisen ermitteln, sodass er sich nur für die Verwendung eines Nested-Loop-Joins zum Scannen entscheiden kann Wenn die Datentabelle Zeile für Zeile nicht groß ist, spüren wir möglicherweise keinen Leistungsverlust, aber mit zunehmendem Datensatz wird die Leistung Ihrer Datenbank immer schlechter.

Es wird empfohlen, Folgendes zu tun:

ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS

3. Teilen Sie komplexes SQL zur Ausführung in mehrere Schritte auf.

Stellen Sie sich SQL als Pizza vor wird in der Lage sein, die ganze Pizza im Mund zu schlucken und zu kauen.

Um eine komplexe SQL-Abfrage zu erstellen, sollten wir sie besser in 3-4 Schritte unterteilen. Je einfacher die SQL, desto besser ist die Wirkung des Optimierers. Außerdem müssen die Daten in jeder Datentabelle einfacher sein ist zu debuggen.

4. Distinct nur bei Bedarf verwenden

Dies ist eine sehr gute Faustregel, die häufig in SQL-Abfragen verwendet wird, die zwei oder mehr doppelte Datensätze zurückgeben herausgefiltert werden. Der Zweck der Verwendung von Distinct muss jedoch klar sein. Es kann nur verwendet werden, wenn Sie sicher sind, dass der zurückgegebene Datensatz eindeutig sein muss, z. B. die Benutzer-ID. Der Missbrauch von Distinct führt zu unvorhersehbaren Fehlern, wie zum Beispiel Multi-Table-Join-Abfragen.

5. Indizes vernünftig erstellen

Der letzte Punkt besteht darin, Tabellenindizes vernünftig zu erstellen. Einfach ausgedrückt: Wenn eine Datentabelle mit 100.000 Datensätzen vorhanden ist, können Sie häufig Informationen wie diese abfragen: „Ist eine meiner Kundeninformationen in dieser Tabelle?“ Wenn ein Index verwendet wird, ist das Abrufen dieser Kundeninformationen sehr schnell, ansonsten wählt der Datenbankoptimierer einen vollständigen Tabellenscan, was bei großen Datenmengen ein Albtraum ist.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn