INF: Forum aux Questions - SQL Server 2000 - Variables de Table

Traductions disponibles Traductions disponibles
Numéro d'article: 305977 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Cet article répond aux questions du Forum aux Questions (FAQ) concernant les variables de table qui sont introduites dans SQL Server 2000.

Pour lire la documentation en ligne de SQL Server description de table variables, visitez le site Web de Microsoft à l'adresse suivante :
http://msdn2.Microsoft.com/en-us/library/aa260638 (SQL.80) .aspx

Plus d'informations

Q1 : Pourquoi les variables table introduites lorsque des tables temporaires étaient déjà disponibles ?

A1: Les variables table présentent les avantages suivants sur le fichier temporaire tables :
  • Comme mentionné dans SQL Server Books Online « Tables » l'article, les variables de table, tels que les variables locales, ont une portée bien définie au la fin de laquelle ils sont automatiquement désactivées.
  • Résultats de variables de table à moins de recompilations d'une procédure stockée procédure par rapport aux tables temporaires.
  • Les transactions qui impliquent des variables table dernier uniquement pour le durée d'une mise à jour sur la variable de table. Par conséquent, les variables table requièrent moins de verrouillage et journalisation des ressources. Étant donné que les variables de table ont une portée limitée et ne font pas partie de la base de données persistante, n'est pas le cas de restaurations de transactions les affectent.
Q2 : Que signifie en disant que les variables de table entraînent moins de recompilations d'une procédure stockée que lorsque les tables temporaires sont utilisées ?

A2: L'article suivant décrit certaines raisons lorsque stockées les procédures sont recompilés :

243586 Résolution des problèmes de recompilation de procédures stockées
Les Recompilations » en raison d'une certaine Table temporaire Section d'opérations"répertorie également certaines conditions pour éviter par exemple un recompilation en raison des tables temporaires. Ces restrictions ne s'appliquent pas aux variables de table.

Les variables table sont complètement isolés au lot qui les crée donc aucune résolution êtes ' doit se produire lorsqu'un CREATE ou ALTER instruction a lieu, ce qui peut se produire avec une table temporaire. Tables temporaires besoin de cette résolution vous ' stockées imbriqué afin que la table peut être référencée à partir de procédure. Les variables table éviter cela complètement pour peuvent d'utiliser des procédures stockées plan qui est déjà compilée, économisant ainsi des ressources pour traiter les données stockées procédure.

Q3 : Quelles sont les inconvénients des variables de table ?

A3: Voici certains des inconvénients par rapport aux tables temporaires :
  • Impossible de créer des index non cluster sur les variables de table autres que les index de système sont créées pour un primaire ou UNIQUE contrainte. Qui peut influencer les performances des requêtes par rapport à un table temporaire avec index non ordonnés en clusters.
  • Variables de table ne conservent pas de statistiques comme temporaires tables peuvent. Impossible de créer les statistiques sur les variables de table via automatique Création ou à l'aide de l'instruction CREATE STATISTICS. Par conséquent, pour le complexe requêtes sur des tables volumineuses, le manque de statistiques peut dissuader l'optimiseur déterminer le meilleur plan pour une requête, affectant ainsi les performances de cette requête.
  • La définition de table ne peut pas être modifiée après l'initiale Instruction DECLARE.
  • Variables de tables ne peut pas être utilisés dans un INSERT EXEC ou SELECT DANS l'instruction.
  • VÉRIFIER les contraintes, les valeurs par défaut et les colonnes calculées dans la déclaration de type de table ne peut pas appeler des fonctions définies par l'utilisateur.
  • Vous ne pouvez pas utiliser l'instruction EXEC ou la procédure stockée sp_executesql pour exécuter une requête SQL Server dynamique qui fait référence un variable de type table, si la variable de table a été créée en dehors de l'instruction EXEC ou procédure stockée sp_executesql . Étant donné que les variables de table peuvent être référencées dans leur portée locale, une instruction EXEC et une procédure stockée sp_executesql serait hors de la portée de la table variable. Toutefois, vous pouvez créer la variable de table et effectuer le traitement de toutes les à l'intérieur de EXEC instruction sp_executesql ou la procédure stockée car puis est l'étendue locale de variables de table dans l'instruction EXEC sp_executesql ou une procédure stockée.
4E trimestre : Sont variables de table uniquement en mémoire des structures qui sont assurées de meilleures performances par rapport aux tables temporaires ou permanents, car ils sont conservés dans une base de données qui réside sur le disque physique ?

A4: Une variable de table n'est pas une structure de mémoire. Dans la mesure où une table variable peut contenir plus de données que vous pouvez tenir en mémoire, il doit avoir un emplacement sur disque pour stocker des données. Les variables de table sont créées dans la base de données tempdb semblable aux tables temporaires. Si la mémoire est disponible, les deux variables de table et les tables temporaires sont créées et traitées alors que dans mémoire (cache de données).

Q5 : Je dois utiliser des variables de table au lieu de tables temporaires ?

A5: La réponse dépend de ces trois facteurs :
  • Le nombre de lignes sont insérées à la table.
  • Le nombre de recompilations de que la requête est enregistrée. à partir.
  • Le type de requêtes et de leur dépendance sur les index et statistiques relatives aux performances.
Dans certains cas, une procédure stockée temporaire à la rupture tables en plus petit des procédures stockées afin que la recompilation a lieu unités plus petites est utile.

En général, vous utilisez des variables de table la mesure du possible, sauf lorsqu'il y a un volume important de données et il est l'utilisation répétée de la table. Dans ce cas, vous pouvez créer des index sur la table temporaire pour augmenter les performances des requêtes. Toutefois, chaque scénario peut être différents. Microsoft vous recommande de tester si les variables de table sont plus utile que les tables temporaires pour une requête particulière ou stockées procédure.

Propriétés

Numéro d'article: 305977 - Dernière mise à jour: jeudi 30 mai 2013 - Version: 7.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
Mots-clés : 
kbinfo kbmt KB305977 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 305977
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.

Envoyer des commentaires

 

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