2009-06-23 13 views
10

Y at-il un moyen de dire au serveur sql d'utiliser l'indicateur (nolock) ou chaque sélection dans une procédure stockée?SQL Server - comment définir l'indicateur (nolock) par défaut?

est assez fatiguant pour l'ajouter à chacun un tout sélectionner ....

+2

Vous voulez faire attention à le faire en particulier dans des environnements de transactions à volume élevé en raison de lit sale. –

+2

Avant cela, assurez-vous de bien comprendre toutes les conséquences des lectures incorrectes. Vous pourriez vous retrouver avec des enregistrements manquants ou des enregistrements en double-lecture dans des requêtes - ce qui, dans la plupart des cas, n'est pas une bonne chose pour votre application. –

Répondre

6

Je pense que c'est ce que vous cherchez ...

SET TRANSACTION NIVEAU D'ISOLEMENT DE LIRE UNCOMMITTED

5

Vous veulent utiliser les éléments suivants syntax:

SET TRANSACTION NIVEAU ISOLEMENT LIRE UNCOMMITTED

J'ai trouvé ce b y en regardant l'indice de table NOLOCK situé here. L'indicateur de table WITH (NOLOCK) équivaut à définir le niveau d'isolation sur READ UNCOMMITTED. Voici l'extrait de MSDN:

NOLOCK est équivalent à READUNCOMMITTED. Pour plus d'informations, voir READUNCOMMITTED plus loin dans cette rubrique.

14

Comme d'autres disent à juste titre, se fait un mondiale (nolock) à l'aide READ UNCOMMITTED.

Toutefois, avant de descendre cette route, il vaut la peine d'essayer d'abord l'information en temps réel. Cela signifie que vos lectures ne seront pas bloquées par des insertions/mises à jour en cours et signifie que les données ne sont pas sales, juste périmées.

0

Cependant, vous risquez de vous retrouver avec des données incorrectes. En 2005, il est préférable d'utiliser l'isolation d'instantané: « Quand isolement de capture instantanée aide et quand il Hurts » http://www.devx.com/dbzone/Article/32957

Questions connexes