2013-04-09 1 views
0

Lors de l'utilisation de INSERT INTO SELECT, la partie SELECT, si elle est exécutée seule, revient dans environ 25 secondes. L'INSERT INTO J'ai laissé aller pendant plus de 8 minutes et ensuite annulé. Que puis-je faire pour résoudre ce problème? Je ne suis pas sûr s'il y a un verrouillage en cours? C'est une table qui a des sélections simples et inserts constants. Il y a aussi 3 index sur cette table que je sais avoir besoin d'être mis à jour quand de nouvelles lignes arrivent. Le scénario ci-dessus est également pour seulement 68.000 lignes, et j'ai d'autres insertions que je devrai faire qui contiendront plus. Enfin, j'utilise SQL Server 2008 R2.INSERT INTO SELECT Dépannage

Merci d'avance.

+0

peut vous ferrez la structure de la table? –

+1

Avez-vous des déclencheurs sur la table? Si c'est le cas, vérifiez si l'un d'eux est en train de jouer avec vous (boucle infinie). Mon pari va comme ça. –

+0

Que disent les plans d'exécution? –

Répondre

0

Y a-t-il de l'espace pour la nouvelle table? J'avais un projet dans SQL Server 2000. La croissance automatique était en train de tuer le timing. Lorsque j'ai pré-alloué l'espace avant le chargement, le processus a volé. Assurez-vous que vos options de croissance ne sont pas 1 Mo ou 10%. Cela vous tue aussi.

En outre, regardez dans l'initialisation de fichier de base de données instantanée. Si cela est désactivé, le moteur SQL Server doit mettre à zéro les pages avant de vous donner un nouvel espace. Sinon, il ignore cette étape.

Bon lien de MSDN sur ce sujet,

http://msdn.microsoft.com/en-us/library/gg634626.aspx

Drapeau Trace 1806 qui désactive l'initialisation du fichier de base de données instantanée. Assurez-vous que ce n'est pas défini sur votre serveur.

S'il vous plaît signaler à nouveau si cela ne résout pas votre problème.

Sincèrement

John Le Crafty DBA www.craftydba.com