Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrageverarbeitung » Abfragen optimieren und ausführen » Semantische Abfragentransformation

 

LIKE-Prädikate optimieren

LIKE-Prädikate mit Mustern, bei denen es sich entweder um literale Konstanten oder Hostvariable handelt, werden häufig eingesetzt. Je nach dem Muster kann der Optimierer das LIKE-Prädikat ganz umschreiben oder es mit zusätzlichen Bedingungen verbessern, die zum Ausführen eines Abrufs mit Index aus der betreffenden Tabelle genutzt werden können. Zusätzliche Bedingungen für LIKE-Prädikate verwenden das Prädikat LIKE_PREFIX, das nicht direkt in einer Abfrage angegeben werden kann, aber in langen und grafischen Plänen enthalten sein kann, wo der Abfrageoptimierer die Optimierung anwenden kann.

Beispiele

In jedem der folgenden Beispiele ist davon auszugehen, dass das Muster des LIKE-Prädikats eine literale Konstante bzw. eine Hostvariable ist und X eine Spalte in der Basistabelle:

  • X LIKE '%' wird zu X IS NOT NULL umgeschrieben.

  • X LIKE 'abc%' wird mit einem LIKE_PREFIX-Prädikat erweitert, bei dem es sich um ein Sargable-Prädikat handelt (kann für Indexabrufe verwendet werden), und erzwingt die Bedingung, dass jeder Wert X mit den Zeichen "abc" beginnen muss. Das Prädikat LIKE_PREFIX setzt bei Datenbanken mit Mehrbyte-Zeichensätzen und Leerzeichenauffüllung die korrekte Semantik durch.