Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :✅ point de terminaison pour les analyses SQL et entrepôt de données dans Microsoft Fabric
La mise en cache de l'ensemble de résultats (préversion) est une optimisation intégrée des performances pour les interfaces d'analyse de Fabric Data Warehouse et Lakehouse SQL qui améliore la latence de lecture.
La mise en cache du jeu de résultats fonctionne en persistant les jeux de résultats finaux pour les requêtes T-SQL applicables SELECT
, afin que les exécutions suivantes qui « atteignent » le cache traitent uniquement le jeu de résultats final. Cela peut contourner la compilation complexe et le traitement des données de la requête d’origine et retourner les requêtes suivantes plus rapidement.
Les scénarios d’entreposage de données impliquent généralement des requêtes analytiques qui traitent de grandes quantités de données pour produire un résultat relativement petit. Par exemple, une SELECT
requête qui contient plusieurs jointures et effectue des lectures et des shuffles sur des millions de lignes de données peut entraîner une agrégation qui ne contient que quelques lignes. Pour les charges de travail telles que les rapports ou les tableaux de bord qui ont tendance à déclencher les mêmes requêtes analytiques à plusieurs reprises, le même calcul lourd peut être déclenché plusieurs fois, même si le résultat final reste le même. La mise en cache du jeu de résultats améliore les performances dans ces scénarios et les scénarios similaires.
Important
Cette fonctionnalité est en version préliminaire.
Gestion automatique du cache
Le cache du jeu de résultats fonctionne de manière transparente. Une fois qu’elle est activée, la création et la réutilisation du cache sont appliquées opportunistiquement pour les requêtes.
La mise en cache des jeux de résultats s’applique aux SELECT
requêtes T-SQL sur les tables d’entrepôt, aux raccourcis vers les sources OneLake et aux raccourcis vers des sources non-Azure. La gestion du cache est gérée automatiquement et supprime régulièrement le cache en fonction des besoins.
De plus, à mesure que vos données changent, la cohérence des résultats est assurée en invalidant le cache créé précédemment.
Configurer la mise en cache du jeu de résultats
La mise en cache du jeu de résultats est configurable au niveau de l’élément.
Une fois activé, il peut ensuite être désactivé au niveau de l’élément ou pour des requêtes individuelles, si nécessaire.
Pendant la préversion, la mise en cache du jeu de résultats est désactivée par défaut pour tous les éléments.
Configuration au niveau de l’élément
Utilisez la commande T-SQL ALTER DATABASE SET pour activer la mise en cache des résultats pour un lakehouse ou un entrepôt. Utilisez le point de terminaison d’analytique SQL d’un Lakehouse pour vous connecter et exécuter des requêtes T-SQL.
ALTER DATABASE <Fabric_item_name>
SET RESULT_SET_CACHING ON;
La valeur de paramètre peut être vérifiée dans sys.databases, par exemple pour afficher la valeur du contexte actuel dans Fabric Warehouse ou le point de terminaison d’analytique SQL Lakehouse :
SELECT name, is_result_set_caching_on
FROM sys.databases
WHERE database_id = db_id();
Pour désactiver la mise en cache du jeu de résultats :
ALTER DATABASE <Fabric_item_name>
SET RESULT_SET_CACHING OFF;
Configuration au niveau des requêtes
Une fois la mise en cache du jeu de résultats activée sur un élément, elle peut être désactivée pour une requête individuelle.
Cela peut être utile pour le débogage ou le test A/B d’une requête. Vous pouvez désactiver la mise en cache du jeu de résultats pour une requête en ajoutant cet indice à la fin du SELECT
:
OPTION ( USE HINT ('DISABLE_RESULT_SET_CACHE') );
Vérifier l’utilisation du cache du jeu de résultats
L’utilisation du cache du jeu de résultats peut être vérifiée à deux emplacements : Sortie de message et vue système queryinsights.exec_requests_history.
Dans la sortie du message d’une requête (visible dans l’éditeur de requête Fabric ou SQL Server Management Studio), l’instruction « Cache du jeu de résultats a été utilisé » s’affiche après l’exécution de la requête si la requête a pu utiliser un cache de jeu de résultats existant.
Dans queryinsights.exec_requests_history, la colonne result_cache_hit
affiche une valeur indiquant l’utilisation du cache du jeu de résultats pour chaque exécution de requête :
-
2
: la requête a utilisé le cache du jeu de résultats (frappe du cache) -
1
: cache du jeu de résultats créé par la requête -
0
: la requête n’était pas applicable à la création ou à l’utilisation du cache du jeu de résultats
Par exemple:
SELECT result_cache_hit, command, *
FROM queryinsights.exec_requests_history
ORDER BY submit_time DESC;
Il existe différentes raisons pour lesquelles le système peut déterminer qu’une requête n’est pas éligible au cache du jeu de résultats. Voici quelques-unes des raisons suivantes :
- Le cache n'existe plus ou a été invalidé par une modification de données, le rendant inapte à la réutilisation.
- La requête n’est pas déterministe et n’est pas éligible à la création du cache.
- La requête n’est pas une
SELECT
instruction.