2010-11-30 6 views
2

Dans MS SQL Server 2008, l'insertion de Rows dans une variable de table s'est soudainement ralentie. La création d'une variable de table et de lignes de requête et d'insertion est effectuée dans un sproc et elle est devenue terriblement lente.Dans MS SQL Server, l'insertion de lignes dans une variable de table est devenue extrêmement lente.

La requête se termine presque instantanément, renvoie un petit ensemble (10 lignes de 1 colonne d'ints) et prend plus de 50 secondes à insérer dans la variable de table. Je suis revenu aux tables temporaires et c'est très bien, l'opération se passe en quelques microsecondes.

+0

Nous avons rencontré un problème similaire lorsque l'insertion dans une variable de table à partir d'une jointure était très lente. Il a accéléré à nouveau lors de l'insertion de l'une des tables source, puis la mise à jour des colonnes restantes dans une autre instruction. – ajayel

Répondre

2

De table (Transact-SQL)

Les requêtes qui modifient les variables de table ne pas générer l'exécution de requêtes en parallèle plans. Les performances peuvent être affectées lorsque de très grandes variables de table ou variables de table dans des requêtes complexes, sont modifiées. Dans ces situations, envisagez d'utiliser des tables temporaires à la place.

Questions connexes