Überwachung der Suchoptimierung mit Snowsight

Nachdem Sie den Suchoptimierungsdienst aktiviert haben, können Sie Snowsight verwenden, um Statistiken darüber zu überwachen, wie Abfragen diesen nutzen. Sie können auch Snowsight verwenden, um festzustellen, warum eine Abfrage den Suchoptimierungsdienst nicht nutzt.

Überwachung der Nutzung der Suchoptimierung für eine Abfrage

Wenn eine Abfrage den Suchoptimierungsdienst nutzt, enthält das Abfrageprofil <label-snowsight_query_profile> Folgendes:

  • Search Optimization Access-Knoten – Ein spezieller Search Optimization Access-Knoten ist im Abfrageplan enthalten. Wählen Sie diesen Knoten aus, um auf die Tabellen-Scan-Informationen sowie auf spezifische Informationen zur Suchoptimierung zuzugreifen.

  • Bereich Attributes – Dieser Bereich für den Knoten enthält Folgendes:

    • Vollständiger Tabellenname – Identifiziert die Tabelle, die für die Abfrage gescannt wurde, für die die Suchoptimierung verwendet wurde.

    • Informationen zur Verwendung der Suchoptimierung – In diesem Abschnitt werden die Ausdrucks-IDs aufgeführt, auf die die Suchoptimierung bei der Ausführung der Abfrage Bezug genommen hat. Jede Ausdruck-ID entspricht einer für die Tabelle definierten Suchmethode und einem Spaltenziel. Führen Sie die folgende Abfrage aus, um die Ausdrucks-IDs und die entsprechenden Methoden und Ziele anzuzeigen:

      DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
      
      Copy

      Weitere Informationen zu diesem Befehl finden Sie unter DESCRIBE SEARCH OPTIMIZATION.

  • Statistics-Bereiche – Dieser Bereich für den Knoten enthält die folgenden Metriken:

    • Bytes scanned – Die Gesamtmenge der Daten, die während der Ausführung einer Tabellenscanoperation gelesen wurden.

    • Partitions scanned – Die Anzahl der Mikropartitionen, die tatsächlich gescannt wurden.

    • Partitions total – Die Gesamtzahl der Mikropartitionen für die Tabelle.

    • Partitions pruned by search optimization – Die Anzahl der Mikropartitionen, die die Suchoptimierung effektiv aus der entsprechenden Tabellenprüfung eliminiert hat.

Die folgende Abbildung zeigt ein Beispiel für die Metriken im Bereich Statistics:

Zeigt den Knoten „Zugriff auf Suchoptimierung“ mit den Suchoptimierungsstatistiken an.

Ermittlung des Grundes, warum keine Suchoptimierung verwendet wurde

Selbst wenn die Suchoptimierung für eine Tabelle konfiguriert ist, wird sie möglicherweise nicht immer verwendet. Wenn für eine Abfrage keine Suchoptimierung verwendet wurde, prüfen Sie den Abschnitt Search Optimization Usage Info des Knotens Table Scan im Attributes-Bereich. Der Abschnitt zeigt eine der folgenden Erklärungen:

  • Wenn ein Prädikat nicht übereinstimmt, wird die folgende Meldung angezeigt:

    Search optimization service was not used because no
    match was found between used predicates and the
    search access paths added for the table.
    

    Diese Meldung zeigt an, dass das in der Abfrage auf diese Tabelle verwendete Prädikat nicht mit den für die Tabelle definierten Suchmethoden kompatibel ist. Sie können die Optimierungskonfiguration für die Tabelle überprüfen, indem Sie den folgenden Befehl ausführen:

    DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
    
    Copy

    Informationen zu den Prädikaten und Datentypen, die von der Suchoptimierung unterstützt werden, finden Sie unter Identifizieren von Abfragen, die von der Suchoptimierung profitieren.

  • Wenn eine kostenbasierte Entscheidung gegen die Suchoptimierung vorliegt, wird die folgende Meldung angezeigt:

    The query optimizer estimated that the search optimization
    service would not be beneficial for this table scan.
    

    Diese Meldung zeigt an, dass die in der Abfrage verwendeten Prädikate mit den für die Tabelle definierten Suchmethoden kompatibel sind, der Abfrageoptimierer jedoch entschieden hat, dass die Abfrageleistung durch eine Suchoptimierung wahrscheinlich nicht verbessert werden kann. Nachfolgende Abfragen mit anderen Prädikaten oder anderen Daten in der Quelltabelle können eine Suchoptimierung verwenden.

  • Wenn das Prädikatslimit überschritten wird, wird die folgende Meldung angezeigt:

    Search optimization service was not used because the
    predicate limit was exceeded.
    

    Diese Meldung zeigt an, dass das Prädikat zu viele unterschiedliche Prädikate enthält. Die genaue Anzahl der Suchoptimierungsprädikate hängt von den Prädikatstypen ab und stimmt möglicherweise nicht genau mit der Anzahl der Prädikate in der Abfrage überein. Teilzeichenfolgenabfragen und Volltextabfragen, die die Platzhaltersyntax verwenden, erreichen eher das Prädikatslimit.

Das folgende Bild zeigt ein Beispiel für eine Meldung zu einer Prädikatinkonsistenz:

Zeigt den Search Optimization Access-Knoten mit einer Meldung über den Grund für die Nichtverwendung der Suchoptimierung an.