Améliorations de l'évolutivité et des performances du moteur de base de données

Le partitionnement des données a été amélioré grâce au partitionnement des tables natives et des index. L'accès concurrentiel des applications a été amélioré grâce au nouveau niveau d'isolement de capture instantanée et à la possibilité d'obtenir plusieurs jeux de résultats actifs (MARS, Multiple Active Result Sets) pour une seule connexion.

Améliorations de l'évolutivité et des performances

Repères de plan

Une nouvelle procédure stockée, appelée sp_create_plan_guide, permet d'optimiser les performances des requêtes en y attachant des indicateurs de requête lorsqu'il est impossible ou peu souhaitable de modifier directement le texte des requêtes. Les repères de plan s'avèrent particulièrement utiles lorsqu'un petit sous-ensemble de requêtes d'une application de base de données déployée par un éditeur tiers ne s'exécute pas comme prévu.

Pour plus d'informations, consultez Optimisation des requêtes dans les applications déployées à l'aide des repères de plan.

Niveau d'isolement de capture instantanée

Le niveau d'isolement de capture instantanée implémente le versioning de ligne qui fournit aux utilisateurs la même vue des données d'une base de données que lorsque la transaction actuelle a démarré. Une transaction de capture instantanée n'acquiert pas de verrous pour protéger des opérations de lecture, excepté lors d'une opération de récupération. L'isolement de capture instantanée peut limiter les problèmes de verrouillage et de blocage dans les applications en lecture seule.

Pour plus d'informations, consultez Niveaux d'isolation basés sur les versions de lignes dans le moteur de base de données.

Statistiques sur les colonnes datetime corrélées

Une nouvelle option SET de base de données, appelée DATE_CORRELATION_OPTIMIZATION, permet d'améliorer les performances des requêtes qui joignent deux tables dont les colonnes datetime sont corrélées et de spécifier une restriction de date dans le prédicat des requêtes.

Pour plus d'informations, consultez Optimisation des requêtes qui ont accès à des colonnes datetime corrélées.

Paramétrage forcé

Vous pouvez spécifier que toutes les requêtes qui s'exécutent dans une base de données soient paramétrées en attribuant la valeur FORCED à une nouvelle options SET de base de données, appelée PARAMETERIZATION. Le paramétrage forcé peut améliorer les performances de certaines bases de données en réduisant la fréquence de recompilation des requêtes.

Pour plus d'informations, consultez Paramétrage forcé.

Mise à jour des statistiques asynchrone

Une nouvelle option SET de base de données, appelée AUTO_UPDATE_STATISTICS_ASYNC, permet d'améliorer la prévisibilité des temps de réponse des requêtes. Lorsque cette option est activée, les statistiques obsolètes sont placées dans une file d'attente en vue d'être mises à jour par un thread de travail en arrière-plan, et la requête qui a initié la mise à jour des statistiques effectue immédiatement la compilation au lieu d'attendre la mise à jour des statistiques.

Pour plus d'informations, consultez Statistiques d'index.

Colonnes calculées persistantes

Les colonnes calculées peuvent être marquées comme PERSISTED. Dans ce cas, leurs valeurs sont stockées dans les pages de données de la table. Ainsi, la récupération des données peut être accélérée pour les colonnes qui effectuent de nombreux calculs.

Pour plus d'informations, consultez Colonnes calculées.

MARS (Multiple Active Result Sets)

Dans SQL Server 2005, plusieurs instructions peuvent désormais renvoyer simultanément des jeux de résultats pour une seule connexion. Dans les versions précédentes de SQL Server, une seule instruction à la fois pouvait renvoyer des jeux de résultats pour chaque connexion et aucune nouvelle instruction ne pouvait être exécutée tant que tous les jeux de résultats n'avaient pas été récupérés.

Pour plus d'informations, consultez Environnement d'exécution des lots d'instructions et MARS.

Inclusion de colonnes non-clés dans des index non-cluster

Les colonnes qui ne font pas partie de la clé d'index peuvent être incluses dans des index non-cluster. L'inclusion de colonnes non-clés peut accélérer les requêtes qui peuvent obtenir toutes les données nécessaires de l'index sans devoir accéder aux lignes de données. Elle peut également dépasser les limites de taille d'index actuelles d'un maximum de 16 colonnes clés et d'une taille de clé d'index maximale de 900 octets.

Pour plus d'informations, consultez Index avec colonnes incluses.

Granularité des verrous d'index

Les nouvelles options ALLOW_ROW_LOCKS et ALLOW_PAGE_LOCKS de CREATE INDEX et ALTER INDEX permettent de contrôler le niveau de verrouillage d'un index.

Pour plus d'informations, consultez Configuration des options d'index.

Index sur les colonnes de type XML

Les documents XML et les fragments stockés à l'aide du type de données XML peuvent être très volumineux. S'ils ne sont pas indexés, le Moteur de base de données doit les fragmenter pour chaque référence. La définition d'un index sur une colonne utilisant le type de données XML permet au Moteur de base de données de traiter plus efficacement les documents et les fragments.

Pour plus d'informations, consultez Index portant sur des colonnes de type xml

Améliorations apportées aux vues indexées

L'optimiseur de requête SQL Server 2005 peut faire correspondre davantage de requêtes aux vues indexées que dans les versions précédentes, notamment les requêtes qui contiennent des expressions scalaires, des fonctions d'agrégation scalaires et définies par l'utilisateur, des expressions d'intervalle et des conditions d'équivalence.

Pour plus d'informations, consultez Conception des vues indexées.

Les définitions de vues indexées peuvent également à présent contenir des fonctions d'agrégation scalaires et définies par l'utilisateur avec certaines restrictions.

Pour plus d'informations, consultez Création de vues indexées.

Nouveaux indicateurs de requête

Quatre indicateurs de requête ont été ajoutés pour la génération de plans de requête optimaux.

L'indicateur RECOMPILE force SQL Server à ignorer le plan généré pour la requête après son exécution de sorte qu'un nouveau plan soit généré la prochaine fois que le même plan de requête ou qu'un plan de requête identique est exécuté. Cet indicateur s'avère particulièrement utile pour les requêtes avec des valeurs variables qui varient sensiblement à chaque compilation et exécution. Il peut être utilisé à la place de l'option WITH RECOMPILE pour créer des procédures stockées lorsque vous souhaitez qu'un sous-ensemble de requêtes de la procédure stockée soit recompilé.

L'indicateur OPTIMIZE FOR donne à SQL Server l'instruction d'utiliser une valeur spécifique pour une variable locale (valeur qui serait sinon inconnue lors de la compilation et de l'optimisation de la requête).

L'indicateur USE PLAN donne à SQL Server l'instruction d'utiliser un plan de requête existant pour une requête. Cet indicateur peut être utilisé pour les requêtes dont les plans entraînent des temps d'exécution lents et pour lesquelles il existe des plans plus adaptés.

L'indicateur PARAMETERIZATION spécifie si une requête est paramétrée dans le cadre de la compilation d'un plan de requête et est utilisé dans un repère de plan pour remplacer le paramètre actuel de l'option SET de base de données PARAMETERIZATION.

Pour plus d'informations, consultez Indicateur de requête (Transact-SQL).

Suppression et regénération d'objets volumineux

Lors de la suppression et de la régénération de tables et d'index qui utilisent plus de 128 extensions, SQL Server 2005 retarde les désallocations de page actuelles et leurs verrous associés jusqu'à la validation d'une transaction. Les verrous sont retardés en divisant le processus en une phase logique et une phase physique.

Pour plus d'informations, consultez Suppression et reconstruction d'objets volumineux.

Bases de données partagées évolutives

Cette nouvelle fonction permet d'attacher une base de données en lecture seule à plusieurs instances serveur de SQL Server 2005 sur un réseau de stockage (SAN, Storage Area Network). Une base de données partagée évolutive permet la montée en charge horizontale d'une base de données à l'aide de matériel standard pour les serveurs de rapports et les volumes, assurant ainsi une voie de mise à niveau en douceur.

Pour plus d'informations, consultez Vue d'ensemble des bases de données partagées évolutives.

Voir aussi

Concepts

Améliorations apportées au moteur de base de données

Aide et Informations

Assistance sur SQL Server 2005