CORRECTIF : SELECT INTO mécanisme de verrouillage

Traductions disponibles Traductions disponibles
Numéro d'article: 153441 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
N° DE BOGUE : 14818 (DCR, 6.50)
Agrandir tout | Réduire tout

Résumé

Dans SQL Server 6.5, SELECT INTO est encapsulé dans une transaction. Tables créées à l'aide de SELECT INTO maintenez pour les propriétés de transaction ACID (atomicité, cohérence, isolation, durabilité). Cela signifie également que les ressources système, tels que les pages, les étendues et les verrous, sont conservées pendant toute la durée de l'instruction SELECT INTO. Avec les objets système plus importants, il en résulte la condition où de nombreuses tâches internes peuvent être bloquées par d'autres utilisateurs effectuant des instructions SELECT INTO. Par exemple, sur les serveurs de grande activité, de nombreux utilisateurs exécutant l'outil de SQL Enterprise Manager pour surveiller les processus système peuvent bloquer mutuellement, ce qui conduit à une condition où l'application Enterprise Manager semble cesser de répondre.

Plus d'informations

Lorsque vous effectuez une mise à niveau vers SQL Server 6.5 Service Pack 1, SELECT INTO des caractéristiques de verrouillage est une fonctionnalité du système peut être définie. Habillage SELECT INTO avec une transaction reste le comportement par défaut. Pour les utilisateurs souhaitent ne pas contenir des verrous de catalogue système sur l'activité, un indicateur de trace a été ajouté pour permettre ces opérations. Pour appliquer l'indicateur de trace, démarrez le serveur avec l'option-paramètre de ligne de commande T5302 ou à partir d'une fenêtre de requête, utilisez les commandes suivantes :
dbcc traceon (3604)
go
dbcc traceon (5302)
go
				

Lorsque l'indicateur de trace 5302 est appliqué et SELECT INTO échoue, la table est toujours créée. Notez que le comportement de verrouillage que vous sélectionnez est appliqué pour toutes les bases de données au sein du serveur.



Il est important de comprendre que même avec trace indicateur 5302 activé, si SELECT INTO est exécutée dans SQL Server 6.5 dans le contexte d'une transaction explicite (par exemple, BEGIN TRAN), les tables système toujours seront verrouillées jusqu'à ce que la transaction soit terminée. Cela est dû au fait que même si l'indicateur de trace permet au serveur d'exécuter SELECT INTO dans les 2 opérations, la création de la phase de la table cible est en vigueur une instruction DDL au sein d'une transaction.

Toute instruction CREATE TABLE dans une transaction contiendra des verrous EX_PAGE sur sysobjects, sysindexes et syscolumns. SQL Server 6.0 ne permettaient pas de SELECT INTO pour être exécuté dans le cadre d'une transaction explicite définie par l'utilisateur. Essayez de faire cela aurait pour résultat 226 message d'erreur, «SELECT INTO non autorisée dans une transaction multi-instructions».

Remarque : Ce problème ne s'applique pas à SQL Server 7.0 et versions ultérieures.

Propriétés

Numéro d'article: 153441 - Dernière mise à jour: jeudi 6 février 2014 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 6.5 Édition Standard
Mots-clés : 
kbnosurvey kbarchive kbmt kbfix kbnetwork KB153441 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 153441
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com