none
Ad-hoc? RRS feed

  • 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

     

     

     

    Sonntag, 12. Dezember 2010 21:00

Antworten

  • Hallo Frederick,

    Den Begriff "Adhoc" verwendet man üblicherweise im Vergleich zu vorbereiteten Abfragen.
    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

    Im weiteren Sinne verwendet man den Begriff beim Einsatz der Cursor-Prozeduren ,
    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

    Montag, 13. Dezember 2010 09:30
    Beantworter
  • 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

    Montag, 13. Dezember 2010 08:19

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

    Montag, 13. Dezember 2010 08:19
  • Hallo Frederick,

    Den Begriff "Adhoc" verwendet man üblicherweise im Vergleich zu vorbereiteten Abfragen.
    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

    Im weiteren Sinne verwendet man den Begriff beim Einsatz der Cursor-Prozeduren ,
    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

    Montag, 13. Dezember 2010 09:30
    Beantworter