2009-12-08 11 views
0

J'ai un processus qui (la nuit) prend un gros morceau de données sous la forme d'une requête linq2sql et le vide en XML (sitemaps). Mon problème est que je suis parfois obtenir:"La transaction (ID de processus 56) était bloquée sur les ressources de verrouillage avec une autre"

System.Data.SqlClient.SqlException:

transaction (processus ID XX) a été bloquée sur les ressources de verrouillage avec un autre processus et a été choisie comme la victime de blocage . Réexécutez la transaction.

Cette requête est en lecture seule et n'est pas nécessaire pour être "transaction safe". Puis-je écrire un processus comme celui-ci pour éviter l'exception?

EDIT:

Fondamentalement, le code est:

foreach(Record record in MyDataContext.FatTableWithRecords) //about 50' records 
{ 
    //produce some XML (dumped to file when max 50' records or 10MB large) 
} 

Répondre

0

Le code pour la requête aiderait déboguer votre problème, mais vous pouvez aussi regarder à l'aide d'emplois sql et certaines des fonctionnalités du serveur SQL comme xmlauto et transaction isolation level read uncommitted pour répondre à vos besoins.