Merci de prendre le temps de lire ma question. Nous avons construit un système utilisant T-SQL qui traite de grandes quantités de données. Lorsque nous commençons à traiter ces données, cette opération prend généralement environ 15 minutes. Pendant ce temps, pour une raison quelconque, il semble qu'il y ait un verrou sur tous les objets de la base de données. Dans une certaine mesure, je comprends que je ne peux pas interroger les tables qui sont écrites. Mais aussi SQL Server me donne un message de verrouillage de temporisation lorsque j'actualise la liste de tables par exemple (en utilisant F5 sur le noeud Tables dans l'explorateur d'objet).SQL Server Grande transaction verrouillant toutes les tables
Mes oeuvres de code basé sur le modèle suivant:
CREATE PROCEDURE Sample
as
SET NOCOUNT, XACT_ABORT ON
BEGIN TRY
BEGIN TRANSACTION
...
COMMIT TRANSACTION
END TRY
BEGIN CATCH
BEGIN
PRINT 'STORED PROCEDURE - Returned errors while processing'
ROLLBACK TRANSACTION
END
END CATCH
Maintenant, quand je commence à ce que je peut effectuer des requêtes SELECT AVEC (de NOLOCK) sur une table. Mais je ne peux pas voir les définitions sur les vues, les procédures stockées ou faire tout autre type d'opération dans la base de données.
J'ai déjà défini le paramètre de niveau d'isolement READ UNCOMMITTED, mais cela ne semble pas faire de différence.
Appréciez toute aide à ce sujet.
Cordialement,
niveaux d'isolement affectent la sélection des états travail, ceux-ci n'affectera pas DDL, DML..Locking, sont des sujets grands blocages, donc s'il vous plaît la recherche sur la façon de résoudre les blocages de verrouillage et commence à partir de là – TheGameiswar