Inhoudsopgave:
Definitie - Wat betekent Query-analyse?
Queryanalyse is een proces dat wordt gebruikt in databases die gebruikmaken van SQL om te bepalen hoe query's verder kunnen worden geoptimaliseerd voor prestaties.
Queryanalyse is een belangrijk aspect van queryverwerking, omdat hiermee de algehele prestaties van queryverwerking worden verbeterd, waardoor veel databasefuncties en -aspecten worden versneld. Hiertoe analyseert een query-optimizer een specifieke query-instructie en genereert zowel externe als lokale toegangsplannen voor gebruik in het queryfragment, op basis van de kosten van elk plan.
De database kiest vervolgens welk plan volgens haar de query met de minste kosten in middelen zal verwerken.
Techopedia legt Query-analyse uit
Over het algemeen worden SQL-query's gegenereerd door toepassingen en worden gebruikers vervolgens naar een federatieve database gestuurd om gegevens uit bronnen op te halen. Op basis van de queryinstructie raadpleegt de SQL-compiler vervolgens de gegevensbronomslag en de informatie die is opgeslagen in de globale catalogus om de query te helpen verwerken.
De informatie die het ophaalt, omvat de gegevensbron, toewijzingen, gegevens- en serverkenmerken, bijnamen, statistieken en meer. De query-optimizer die de query-analyse vergemakkelijkt, maakt eigenlijk deel uit van het SQL-compilerproces.
Via de query-optimizer ontwikkelt de compiler verschillende plannen, alternatieve strategieën die kunnen worden gebruikt bij het verwerken van de query. Dit worden toegangsplannen genoemd en ze kunnen ertoe leiden dat de query door verschillende elementen wordt verwerkt.
Deze elementen zijn:
De federatieve server
De gegevensbronnen
Een beetje van beide
Op relationele databases wordt een pushdown-analyse uitgevoerd. Het bepaalt welke bewerkingen op afstand kunnen worden geëvalueerd op basis van de queryinstructie en de kennis die het heeft over de mogelijkheden van de gegevensbronnen. Op basis van de resultaten van deze analyse kiest de query-optimizer het beste toegangsplan met de laagste kosten voor resources.
