谈一谈SQL Server中的执行计划缓存(上)
简介 我们平时所写的SQL语句本质只是获取数据的逻辑,而不是获取数据的物理路径。当我们写的SQL语句传到SQL Server的时候,查询分析器会将语句依次进行解析(Parse)、绑定(Bind)、查询优化(Optimization,有时候也被称为简化)、执行(Execution)。除去
简介
我们平时所写的SQL语句本质只是获取数据的逻辑,而不是获取数据的物理路径。当我们写的SQL语句传到SQL Server的时候,查询分析器会将语句依次进行解析(Parse)、绑定(Bind)、查询优化(Optimization,有时候也被称为简化)、执行(Execution)。除去执行步骤外,前三个步骤之后就生成了执行计划,也就是SQL Server按照该计划获取物理数据方式,最后执行步骤按照执行计划执行查询从而获得结果。但查询优化器不是本篇的重点,本篇文章主要讲述查询优化器在生成执行计划之后,缓存执行计划的相关机制以及常见问题。
为什么需要执行计划缓存
从简介中我们知道,生成执行计划的过程步骤所占的比例众多,会消耗掉各CPU和内存资源。而实际上,查询优化器生成执行计划要做更多的工作,大概分为3部分:
上面三个步骤完成之后,才会生成多个候选执行计划。虽然我们的SQL语句逻辑上只有一个,美国空间,但是符合这个逻辑顺序的物理获取数据的顺序却可以有多条,打个比方,你希望从北京到上海,即可以做高铁,也可以做飞机,香港空间,但从北京到上海这个描述是逻辑描述,具体怎么实现路径有多条。那让我们再看一个SQL Server中的举例,比如代码清单1中的查询。
1: SELECT * B ON a.a=b.b C ON c.c=a.a ,服务器空间

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans quel dossier le navigateur met-il la vidéo en cache ? Lorsque nous utilisons le navigateur Internet quotidiennement, nous regardons souvent diverses vidéos en ligne, comme regarder des clips vidéo sur YouTube ou regarder des films sur Netflix. Ces vidéos seront mises en cache par le navigateur pendant le processus de chargement afin qu'elles puissent être chargées rapidement lors d'une nouvelle lecture ultérieure. La question est donc de savoir dans quel dossier ces vidéos mises en cache sont réellement stockées ? Différents navigateurs stockent les dossiers vidéo mis en cache à différents emplacements. Ci-dessous, nous présenterons plusieurs navigateurs courants et leurs

DNS (DomainNameSystem) est un système utilisé sur Internet pour convertir les noms de domaine en adresses IP correspondantes. Dans les systèmes Linux, la mise en cache DNS est un mécanisme qui stocke localement la relation de mappage entre les noms de domaine et les adresses IP, ce qui peut augmenter la vitesse de résolution des noms de domaine et réduire la charge sur le serveur DNS. La mise en cache DNS permet au système de récupérer rapidement l'adresse IP lors d'un accès ultérieur au même nom de domaine sans avoir à émettre une requête de requête au serveur DNS à chaque fois, améliorant ainsi les performances et l'efficacité du réseau. Cet article expliquera avec vous comment afficher et actualiser le cache DNS sous Linux, ainsi que les détails associés et des exemples de code. Importance de la mise en cache DNS Dans les systèmes Linux, la mise en cache DNS joue un rôle clé. son existence

WindowsServerBackup est une fonction fournie avec le système d'exploitation WindowsServer, conçue pour aider les utilisateurs à protéger les données importantes et les configurations système, et à fournir des solutions complètes de sauvegarde et de récupération pour les petites, moyennes et grandes entreprises. Seuls les utilisateurs exécutant Server2022 et versions ultérieures peuvent utiliser cette fonctionnalité. Dans cet article, nous expliquerons comment installer, désinstaller ou réinitialiser WindowsServerBackup. Comment réinitialiser la sauvegarde de Windows Server Si vous rencontrez des problèmes avec la sauvegarde de votre serveur, si la sauvegarde prend trop de temps ou si vous ne parvenez pas à accéder aux fichiers stockés, vous pouvez envisager de réinitialiser vos paramètres de sauvegarde de Windows Server. Pour réinitialiser Windows

Titre : Mécanisme de mise en cache et exemples de code de fichiers HTML Introduction : Lors de la rédaction de pages Web, nous rencontrons souvent des problèmes de cache du navigateur. Cet article présentera en détail le mécanisme de mise en cache des fichiers HTML et fournira quelques exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer ce mécanisme. 1. Principe de mise en cache du navigateur Dans le navigateur, chaque fois qu'une page Web est consultée, le navigateur vérifie d'abord s'il y a une copie de la page Web dans le cache. Si tel est le cas, le contenu de la page Web est obtenu directement à partir du cache. C'est le principe de base de la mise en cache du navigateur. Avantages du mécanisme de mise en cache du navigateur

Comment exporter des vidéos du cache du navigateur Avec le développement rapide d'Internet, les vidéos sont devenues un élément indispensable de la vie quotidienne des gens. Lorsque nous naviguons sur le Web, nous rencontrons souvent du contenu vidéo que nous souhaitons enregistrer ou partager, mais parfois nous ne pouvons pas trouver la source des fichiers vidéo car ils n'existent que dans le cache du navigateur. Alors, comment exporter des vidéos depuis le cache de votre navigateur ? Cet article vous présentera plusieurs méthodes courantes. Tout d’abord, nous devons clarifier un concept, à savoir le cache du navigateur. Le cache du navigateur est utilisé par le navigateur pour améliorer l'expérience utilisateur.

PHPAPCu (remplacement du cache php) est un module de cache d'opcodes et de cache de données qui accélère les applications PHP. Comprendre ses fonctionnalités avancées est crucial pour utiliser tout son potentiel. 1. Opération par lots : APCu fournit une méthode d'opération par lots qui peut traiter un grand nombre de paires clé-valeur en même temps. Ceci est utile pour la suppression du cache ou les mises à jour à grande échelle. //Obtenir les clés de cache par lots $values=apcu_fetch(["key1","key2","key3"]); //Effacer les clés de cache par lots apcu_delete(["key1","key2","key3"]) ;2 .Définir le délai d'expiration du cache : APCu vous permet de définir un délai d'expiration pour les éléments du cache afin qu'ils expirent automatiquement après une heure spécifiée.

Dans le développement PHP, le mécanisme de mise en cache améliore les performances en stockant temporairement les données fréquemment consultées en mémoire ou sur disque, réduisant ainsi le nombre d'accès à la base de données. Les types de cache incluent principalement le cache de mémoire, de fichiers et de bases de données. En PHP, vous pouvez utiliser des fonctions intégrées ou des bibliothèques tierces pour implémenter la mise en cache, telles que cache_get() et Memcache. Les applications pratiques courantes incluent la mise en cache des résultats des requêtes de base de données pour optimiser les performances des requêtes et la mise en cache de la sortie des pages pour accélérer le rendu. Le mécanisme de mise en cache améliore efficacement la vitesse de réponse du site Web, améliore l'expérience utilisateur et réduit la charge du serveur.

Optimisation de la taille du cache et stratégies de nettoyage Il est essentiel d'allouer une taille de cache appropriée à APCu. Un cache trop petit ne peut pas mettre en cache efficacement les données, tandis qu'un cache trop volumineux gaspille de la mémoire. De manière générale, définir la taille du cache entre 1/4 et 1/2 de la mémoire disponible est une plage raisonnable. De plus, disposer d’une stratégie de nettoyage efficace garantit que les données obsolètes ou invalides ne sont pas conservées dans le cache. Vous pouvez utiliser la fonction de nettoyage automatique d'APCu ou implémenter un mécanisme de nettoyage personnalisé. Exemple de code : //Définissez la taille du cache sur 256 Mo apcu_add("cache_size",268435456); //Effacez le cache toutes les 60 minutes apcu_add("cache_ttl",60*60);
