- Anmeldung
- August 12–22: Online Training (EU shift)
- Bedarfserhebung Kurs
- FOSDEM Impressions
- June 8–18: Online Training (US shift)
- Non-monetary micro sponsoring
- November 11-12 in Frankfurt am Main
- Online-Kurse im Juli und August
- Oracle + PostgreSQL
- Party time
- PostgreSQL Performance Event
- SQL Server Performance Kurs in Stuttgart
- The two top performance problems caused by ORM tools
- Top Tweets January 2013
- Training and Conference Dates
- Use The Index, Luke
- Wir haben gefragt. Sie haben geantwortet.
- Ask
- Consulting
2011-09-19Parsen - Query Planning - Compiling
Die Begriffe Parsen (Oracle), Query Planning (PostgreSQL) und Compiling (SQL Server) beschreiben das überführen einer SQL-Anweisung in einen Ausführungsplan.
Datenbanken mit zentralem Ausfürhungsplan-Cache haben zwei Parse-Phasen:
- Hard Parsing
Hard Parsing bedeutet, dass der Optimizer einen neuen Ausführungsplan aus einem SQL-String erstellt. Dazu müssen alle möglichen Join-Reihenfolgen und Indizes berücksichtigt werden. Hard Parsing ist sehr aufwendig.
- Soft Parsing
Soft Parsing bedeutet, dass ein passender Ausführungsplan im Cache gefunden wird. Danach müssen eventuell noch Zugriffsberechtigungen geprüft werden, der Ausführungsplan selbst kann aber wiederverwendet werden. Das ist eine verhältnismäßig einfache Operation.
Um einen passenden Ausführungsplan im Cache zu finden, wird meist ein Hash-Code des SQL-Strings als Schlüssel verwendet. Ein Ausführungsplan kann also nur dann gefunden werden, wenn die exakt gleiche SQL-Anweisung zuvor ausgeführt wurde. Andernfalls findet ein Hard-Parse statt. Durch das einbetten von Werten in die SQL-Anweisung, wenn also keine Bind-Parameter verwendet werden, sieht jede SQL-Abfrage anders aus, sodass bei neuen Werten wieder ein Hard-Parse angestoßen wird.
Selbst in dem Fall, dass die exakt gleiche Anweisung, mit denselben Werten, nochmal ausgeführt wird, besteht das Risiko, dass der Ausführungsplan bereits aus dem Cache entfernt wurde. Ohne Verwendung von Bind-Parametern sieht jede SQL-Anweisung anders aus, und die Ausführungspläne werden nicht nur mehrfach erzeugt, sondern auch mehrfach im Cache abgespeichert. Dadurch fallen älter Abfragen schneller aus dem Cache.
Links
Artikel: „Planning for Re-Use“ über Ausführungsplan Caching
Bleib am Ball:
RSS Feed
Like on Facebook
Follow me on Twitter
+1 auf Google+
RSS FeedFlattr mich! Folge mir auf Twitter+1 auf Google+Gefällt auf Facebook