Partager via


In-Memory OLTP (optimisationIn-Memory)

Nouveautés de SQL Server 2014 (12.x), In-Memory OLTP peut améliorer considérablement les performances des applications de base de données OLTP. In-Memory OLTP est un moteur de base de données à mémoire optimisée intégré au moteur SQL Server, optimisé pour OLTP.

Machine virtuelle Azure Voulez-vous essayer SQL Server 2016 ? Inscrivez-vous à Microsoft Azure, puis accédez ici pour faire tourner une machine virtuelle avec SQL Server 2016 déjà installé. Vous pouvez supprimer la machine virtuelle lorsque vous avez terminé.

Pour utiliser In-Memory OLTP, vous définissez une table fortement sollicitée en tant que mémoire optimisée. Les tables optimisées en mémoire sont entièrement transactionnelles, durables et sont accessibles à l’aide de Transact-SQL de la même façon que les tables sur disque. Une requête peut référencer à la fois des tables mémoire optimisées et des tables sur disque. Une transaction peut mettre à jour des données dans des tables mémoire optimisées et des tables sur disque. Les procédures stockées qui référencent uniquement les tables optimisées en mémoire peuvent être compilées en mode natif dans le code de l’ordinateur pour améliorer les performances. Le moteur OLTP In-Memory est conçu pour une concurrence de sessions extrêmement élevée pour les types de transactions OLTP pilotés par un niveau intermédiaire fortement déployé. Pour ce faire, il utilise des structures de données sans verrous et un contrôle d’accès concurrentiel multiversion optimiste. Le résultat est une latence inférieure à la milliseconde prévisible et un débit élevé avec une mise à l’échelle linéaire pour les transactions de base de données. Le gain de performances réel dépend de nombreux facteurs, mais 5 à 20 fois les améliorations des performances sont courantes.

Le tableau suivant récapitule les modèles de charge de travail qui peuvent bénéficier le plus en utilisant In-Memory OLTP :

Scénario d’implémentation Scénario d’implémentation Avantages de In-Memory OLTP
Taux d’insertion de données élevé à partir de plusieurs connexions simultanées. Magasin d’ajout uniquement.

Impossible de suivre le flux de travail d’insertion.
Éliminer le conflit.

Réduisez la journalisation.
Améliorez la performance et la mise à l'échelle avec des insertions et des mises à jour périodiques par lots. Opérations de lecture hautes performances, en particulier lorsque chaque demande de serveur a plusieurs opérations de lecture à effectuer.

Impossible de répondre aux exigences de montée en puissance.
Éliminez la contention lorsque de nouvelles données arrivent.

Récupération des données à latence inférieure.

Réduisez le temps d’exécution du code.
Traitement intensif de la logique métier sur le serveur de base de données. Insérez, mettez à jour et supprimez la charge de travail.

Calcul intensif à l’intérieur des procédures stockées.

Lire et écrire la contention.
Éliminez les tensions.

Réduisez le temps d’exécution du code pour réduire la latence et améliorer le débit.
Latence faible. Exiger des transactions métier à faible latence que les solutions de base de données classiques ne peuvent pas atteindre. Éliminer la concurrence.

Réduisez le temps d’exécution du code.

Exécution de code à faible latence.

Récupération efficace des données.
Gestion de l’état de session. Recherches fréquentes d'insertion, de mise à jour et de consultation ponctuelle.

Charge à grande échelle provenant de nombreux serveurs web sans état.
Éliminer le conflit.

Récupération efficace des données.

Réduction ou suppression facultative des E/S, lors de l’utilisation de tables non persistantes

Pour plus d’informations sur les scénarios où In-Memory OLTP entraîne les gains de performances les plus importants, consultez In-Memory OLTP - Modèles de charge de travail courants et considérations relatives à la migration.

In-Memory OLTP améliorera le mieux les performances dans OLTP avec des transactions de courte durée.

Les modèles de programmation que In-Memory OLTP promet d'améliorer incluent les scénarios de concurrence, les recherches ponctuelles, les charges de travail comprenant de nombreuses insertions et mises à jour, ainsi que la logique métier dans les procédures stockées.

L’intégration à SQL Server signifie que vous pouvez avoir à la fois des tables mémoire optimisées et des tables basées sur disque dans la même base de données et interroger les deux types de tables.

Dans SQL Server 2014 (12.x), il existe des limitations dans Transact-SQL surface d’exposition prise en charge pour In-Memory OLTP.

In-Memory OLTP obtient des gains de performances et d’extensibilité significatifs à l’aide des points suivants :

  • Algorithmes optimisés pour accéder aux données résidentes en mémoire.

  • Contrôle d’accès concurrentiel optimiste qui élimine les verrous logiques.

  • Objets sans verrou qui éliminent tous les verrous et loquets physiques. Les threads qui effectuent un travail transactionnel n'utilisent pas de verrous ou de loquets pour le contrôle de la concurrence.

  • Les procédures stockées compilées en mode natif, qui ont des performances nettement supérieures aux procédures stockées interprétées, lors de l’accès à une table optimisée en mémoire.

Important

Certaines modifications de syntaxe apportées aux tables et aux procédures stockées sont requises pour utiliser In-Memory OLTP. Pour plus d’informations, consultez Migration vers In-Memory OLTP. Avant de tenter de migrer une table sur disque vers une table optimisée en mémoire, lire Déterminer si une table ou une procédure stockée devrait être migrée vers In-Memory OLTP pour voir quelles tables et procédures stockées bénéficieront de In-Memory OLTP.

Dans cette section

Cette section fournit des informations sur les concepts suivants :

Sujet Descriptif
Configuration requise pour l’utilisation de tables Memory-Optimized Présente les exigences matérielles et logicielles et les instructions relatives à l’utilisation de tables optimisées en mémoire.
Utilisation de In-Memory OLTP dans un environnement de machine virtuelle Couvre l’utilisation de In-Memory OLTP dans un environnement virtualisé.
In-Memory exemples de code OLTP Contient des exemples de code qui montrent comment créer et utiliser une table optimisée en mémoire.
Memory-Optimized tables Introduit des tables optimisées pour la mémoire.
variables de tableMemory-Optimized Exemple de code montrant comment utiliser une variable de table optimisée en mémoire au lieu d’une variable de table traditionnelle pour réduire l’utilisation de tempdb.
Indices sur les tables Memory-Optimized Introduit des index optimisés en mémoire.
Procédures stockées compilées en mode natif Introduit des procédures stockées compilées en mode natif.
Gestion de la mémoire pour In-Memory OLTP Comprendre et gérer l’utilisation de la mémoire sur votre système.
Création et gestion du stockage pour les objets Memory-Optimized Décrit les fichiers de données et delta, qui stockent des informations sur les transactions dans des tables mémoire optimisées.
Sauvegarde, restauration et récupération de tables Memory-Optimized Traite de la sauvegarde, de la restauration et de la récupération pour les tables optimisées en mémoire.
prise en charge deTransact-SQL pour In-Memory OLTP Décrit la prise en charge de Transact-SQL pour In-Memory OLTP.
Prise en charge de la haute disponibilité pour les bases de données OLTP In-Memory Décrit les groupes de disponibilité et le clustering de basculement dans In-Memory OLTP.
Prise en charge de SQL Server pour In-Memory OLTP Répertorie la syntaxe et les fonctionnalités nouvelles et mises à jour prenant en charge les tables optimisées en mémoire.
Migration vers In-Memory OLTP Explique comment migrer des tables sur disque vers des tables mémoire optimisées.

Pour plus d’informations sur In-Memory OLTP, consultez :

Voir aussi

Fonctionnalités de base de données