Si est données intensive avec le potentiel de parallélisation, vous devez traiter dans mis manière orientée et laisser SQL paraleliser le processus comme il le veut. Vous ne serez pas capable de faire quoi que ce soit de plus intelligent que SQL pour partitionner l'accès aux données par CPU, il a simplement accès à des informations (état de remplissage du pool tampon, espérance de vie de la page, etc.). Si votre traitement est orienté scalaire et nécessite beaucoup de ressources processeur (et même un traitement orienté ensemble), placez le traitement dans une fonction UDF CLR et laissez à nouveau l'exécution de la requête paraléliser l'exécution de votre fonction.
Si votre traitement a une sorte d'E/S (c'est-à-dire des appels Web), faites pas mettez-le en SQL, placez en dehors du processus du serveur. Si votre traitement vraiment tombe en dehors de toutes ces catégories et vous pensez toujours que vous pourriez bénéficier du multithreading, en théorie il est possible de démarrer des threads en SQL. Soyez averti que l'hôte CLR à l'intérieur de SQL est et non votre hôte CLR normal (c'est-à-dire l'hôte d'application bien connu ou l'hôte ASP). SQL CLR est un troisième type d'hôte, offrant ses propres primitives (threads, verrouillage, gestion de la mémoire, etc.) superposées aux constructions SOS (travailleurs, verrous, greffiers de mémoire, etc.). Je déconseille fortement de faire un traitement CLR multi-thread explicite en SQL.