none
Execution sqlfunction sqlclr RRS feed

  • Question

  • Bonjour à tous,

    sur mon server, j'ai une assembly .net qui contient une méthode getdata qui s'exécute en 5 secondes.
    Je voudrais savoir si lorsque j'exécute plusieurs  "select * from getdata()" à la suite, chaque traitement est réalisé dans un thread à part ou mis en file d'attente dans le thread principale ?
    La version de sql server est developpement edition.

    on my server, I have a .net assembly with a "getdata" function. This function run for 5 secondes.
    I would like to know how sql server will handle some "select * from getdata()" about thread an memory ?
    The sql server edition is developpement edition.

    Merci,
    Thank,
    -Winzo 
    mercredi 28 octobre 2009 12:49

Toutes les réponses

  • Théoriquement l'evaluation des requêtes sql utilisent des techniques de pipelinage en se servant des Itérators. Donc pour évaluer la requête, le moteur d'évaluation reserve l'espace mémoire pour calculer 1 tuple. l'interet est de consommer un minimum d'espace mémoire ram de l'ordinateur, qui est d'ailleurs limité.
    par conséquence, théoriquement, il n'est pas possible d'enfiler les threads pour évaluer les tuples. Du coups tant que le tuple de la requête n'est pas évalué en totalité, il ne va pas passer à calculer le tuple suivant.

    du coup , chaque 5 seconde vous verrez un tuple suplémentaire s'afficher (supposant que les autres attribut ne consomment pas de temps)


    PhD - Student
    • Proposé comme réponse OmarioS mercredi 4 novembre 2009 13:11
    mercredi 4 novembre 2009 13:09