Benutzer mit den meisten Antworten
Ad-hoc?

Frage
-
Hallo ,
habe mal eine recht dämliche Frage wie ich denke. Finde aber hier keine Anfägerecke oder so ähnlich. Kann mir jemand mal sagen was genau die Definition für eine Ad-hoc Abfrage ist? Steht überall wenn man googelt nur nicht was das konkret ist.
Wer hilft mir hier weiter?
Gruß Frederick
Antworten
-
Hallo Frederick,
Den Begriff "Adhoc" verwendet man üblicherweise im Vergleich zu vorbereiteten Abfragen.
Im weiteren Sinne verwendet man den Begriff beim Einsatz der Cursor-Prozeduren ,
Wobei man die Möglichkeiten der Treiberschnittstellen meint, eine Abfrage vorzubereiten,
z. B. SQLPrepare bei ODBC. Nur ist das mittlerweile vollkommen aus der Mode gekommen,
da der SQL Server ohnehin alle Abfragen aufbereitet, siehe Vorbereiten von SQL-Anweisungen
wo man ebenfalls direkte und vorbereitete Abfrage ausführen kann. Das findet aber nur
noch Verwendung in älteren Anwendungen (z. B. Microsoft Access via ODBC Schnittstelle).In sehr frühen Zeiten (vor SQL Server 7.0) brachte das einige Geschwindigkeitsvorteile,
heute ist das meist irrelevant. In den Fällen wo die eingebaute Automatik versagt,
würde man heute auf Planhinweislisten zurückgreifen.Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 22. Dezember 2010 10:50
-
Hallo Frederick,
so eine direkte Definition habe ich auch nicht, aber bei wiki findet man folgendes:
http://de.wikipedia.org/wiki/Ad_hoc
Ad hoc [at h?k] (v. lat. für "zu diesem", "hierfür") ist eine lateinische Phrase und bedeutet "für diesen Augenblick gemacht" oder "zur Sache passend". Im übertragenen Sinne bezeichnet ad hoc improvisierte Handlungen (vgl. "aus dem Stegreif") und Dinge, die speziell für einen Zweck entworfen wurden oder spontan aus einer Situation heraus entstanden sind.Deshalb denke ich auch, dass im Bereich der SQL-Abfragen solche Abfragen gemeint sind, die individuell aus der Situation heraus verfasst werden, wobei leider oft die Qualität dieser Abfragen zu wünschen übrig läßt. Oft wird dann iterativ optimiert, bis der übersehene Cross-Join nicht mehr vorhanden ist, die Datentypen alle zusammen passen oder sogar ein Index verwendet wird. Diese Art der Abfragen stellt einen hohen Anspruch an den Optimizer und/oder die Hardware.
Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org/blogs/cmu- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 22. Dezember 2010 10:51
Alle Antworten
-
Hallo Frederick,
so eine direkte Definition habe ich auch nicht, aber bei wiki findet man folgendes:
http://de.wikipedia.org/wiki/Ad_hoc
Ad hoc [at h?k] (v. lat. für "zu diesem", "hierfür") ist eine lateinische Phrase und bedeutet "für diesen Augenblick gemacht" oder "zur Sache passend". Im übertragenen Sinne bezeichnet ad hoc improvisierte Handlungen (vgl. "aus dem Stegreif") und Dinge, die speziell für einen Zweck entworfen wurden oder spontan aus einer Situation heraus entstanden sind.Deshalb denke ich auch, dass im Bereich der SQL-Abfragen solche Abfragen gemeint sind, die individuell aus der Situation heraus verfasst werden, wobei leider oft die Qualität dieser Abfragen zu wünschen übrig läßt. Oft wird dann iterativ optimiert, bis der übersehene Cross-Join nicht mehr vorhanden ist, die Datentypen alle zusammen passen oder sogar ein Index verwendet wird. Diese Art der Abfragen stellt einen hohen Anspruch an den Optimizer und/oder die Hardware.
Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org/blogs/cmu- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 22. Dezember 2010 10:51
-
Hallo Frederick,
Den Begriff "Adhoc" verwendet man üblicherweise im Vergleich zu vorbereiteten Abfragen.
Im weiteren Sinne verwendet man den Begriff beim Einsatz der Cursor-Prozeduren ,
Wobei man die Möglichkeiten der Treiberschnittstellen meint, eine Abfrage vorzubereiten,
z. B. SQLPrepare bei ODBC. Nur ist das mittlerweile vollkommen aus der Mode gekommen,
da der SQL Server ohnehin alle Abfragen aufbereitet, siehe Vorbereiten von SQL-Anweisungen
wo man ebenfalls direkte und vorbereitete Abfrage ausführen kann. Das findet aber nur
noch Verwendung in älteren Anwendungen (z. B. Microsoft Access via ODBC Schnittstelle).In sehr frühen Zeiten (vor SQL Server 7.0) brachte das einige Geschwindigkeitsvorteile,
heute ist das meist irrelevant. In den Fällen wo die eingebaute Automatik versagt,
würde man heute auf Planhinweislisten zurückgreifen.Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 22. Dezember 2010 10:50