SQL参数化查询的另一个理由 命中执行计划
为了提高数据库运行的效率,我们需要尽可能的命中执行计划,这样就可以节省运行时间
1概述SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL是需要通过编译器解释才能运行的(在这之间还要做SQL的优化)。而这些步骤都是需要运行成本,所以在数据库中有一个叫做执行计划的东西,编译器会将编译过后的SQL存入执行计划当中,当遇到同样的SQL时,就直接调用执行计划来执行,而不需要再次编译。
通过对上面执行计划的认识,为了提高数据库运行的效率,我们需要尽可能的命中执行计划,这样就可以节省运行时间。
2相关SQL
2.1查看当前数据库中所有的执行计划:
代码如下:
SELECT cp.usecounts AS '使用次数'
,objtype AS '类型'
,st.[text] AS 'SQL文本'
,plan_handle AS '计划句柄'
FROM sys.dm_exec_cached_plans cp
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE st.text not like '%sys%'
2.2删除执行计划
代码如下:
--删除所有计划
DBCC FREEPROCCACHE
2.3测试脚本(创建员工表,并向其插入1000条数据)
代码如下:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Employee]'))
DROP TABLE [dbo].Employee
GO
--人员表
CREATE TABLE dbo.Employee
(
id int,
name nvarchar(50)
);
--插入测试数据
DECLARE @I INT=0,@ENDI INT=1000;
WHILE(@IBEGIN
SET @I+=1;
INSERT dbo.Employee(id,name) VALUES(@I,'蒋大华'+CAST(@I AS NVARCHAR(20)));
END;
3测试执行计划
3.1 先执行删除所有执行计划,然后执行SELECT * FROM Employee ,最后查看执行计划(2.1中的查看执行计划脚本)如下图
即SQL SERVER会为每一条SQL建立一个执行计划,并将它缓存起来
3.2 再运行一次SQL: SELECT * FROM Employee,并查看执行计划
可以看到这个计划的重用次数为2,即这个计划被重用了;
3.3 修改SQL:SELECT * FROM Employee(在SELECT后多加一个空格),执行并查看执行计划
结果又新添加一个执行计划,即SQL SERVER认为这是两个不同的SQL语句并分别建立了执行计划;
4重用执行计划——使用参数化查询方法
4.1 未参数化SQL
代码如下:
string selectCmdText = string.Format(@"SELECT * FROM Employee WHERE name='{0}'",” 蒋大华1”);
SQLHelper.ExecuteNonQuery(SQLHelper.DefaulConnectiontString, System.Data.CommandType.Text, selectCmdText, null);
查看执行计划:
即当执行一个未参数化SQL时,SQL SERVER需要先将其转换成一个参数SQL并执行它。一共需要两执行计划
然后再执行下面的代码(查询的条件变了)
代码如下:
string selectCmdText = string.Format(@"SELECT * FROM Employee WHERE name='{0}'",” 蒋大华2”);
SQLHelper.ExecuteNonQuery(SQLHelper.DefaulConnectiontString, System.Data.CommandType.Text, selectCmdText, null);
查看执行计划
此时不需要再准备一个准备的SQL,但还是需要再产生一个执行计划,并缓存下来;
4.2 参数化SQL
代码如下:
SqlParameter[] param = { new SqlParameter("@name", txtEmployeeName.Text.Trim()) };
string selectCmdText = string.Format(@"SELECT * FROM Employee WHERE name=@name");
SQLHelper.ExecuteNonQuery(SQLHelper.DefaulConnectiontString, System.Data.CommandType.Text, selectCmdText, param);
输入参数并执行,然后查看执行计划:
只需要一个准备SQL,然后,输入不同的参数,并执行,再查看执行计划
重用执行计划,perfect...
5总结
总的来说,SQL语句在执行时,会生成执行计划并将它缓存起来,我们可以通过提高使用缓存中的执行计划次数,来减少数据库的压力。而使用参数化的SQL是一个很好的选择,参数化查询的作用不仅只有防止SQL注入,还可以提高缓存中执行计划使用次数。

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)

Pour ceux qui ne le connaissent pas, le mode faible consommation réduit la consommation d'énergie de votre Mac, prolongeant éventuellement temporairement la durée de vie de la batterie au détriment des performances, mais il est suffisamment bien géré pour que la plupart des utilisateurs ne remarquent aucune dégradation particulière. Il s'agit d'un mode très utile si vous êtes un utilisateur d'ordinateur portable Mac et que vous essayez d'optimiser la durée de vie de la batterie de votre MacBook Pro ou Air. Activer le mode faible consommation Mac à partir de la ligne de commande Depuis le terminal, tapez la chaîne de commande suivante sur n'importe quel ordinateur portable Mac : sudo pmset -a lowpowermode 1 Appuyez sur Entrée comme sudo l'exige et saisissez le mot de passe administrateur pour vous authentifier.

De nombreux amis qui utilisent le système Win10 ont rencontré ce problème lors de la lecture de jeux ou de l'installation du système. L'application ne peut pas être démarrée car la configuration parallèle de l'application est incorrecte. Pour plus d’informations, consultez le journal des événements de l’application ou utilisez l’outil de ligne de commande sxstrace.exe. Cela peut être dû au fait que le système d'exploitation ne dispose pas des autorisations correspondantes. Jetons un coup d'œil au didacticiel spécifique ci-dessous. Tutoriel sur l'utilisation de l'outil sxstrace.exe en ligne de commande 1. Ce problème se produit généralement lors de l'installation de programmes et de jeux. L'invite est la suivante : L'application ne peut pas être démarrée car la configuration parallèle de l'application est incorrecte. Pour plus d’informations, consultez le journal des événements de l’application ou utilisez l’outil de ligne de commande sxstrace.exe. 2. Démarrer →

Cet article détaille les étapes de mise à niveau d'Ubuntu 20.04 vers 22.04. Pour les utilisateurs utilisant Ubuntu 20.04, ils ont manqué les nouvelles fonctionnalités et avantages apportés par la version 22.04. Afin d'obtenir une meilleure expérience et une meilleure sécurité, il est recommandé de mettre à niveau vers une version plus récente d'Ubuntu à temps. Ubuntu22.04 porte le nom de code « Jamie Jellyfish », explorons comment obtenir la dernière version LTS ! Comment mettre à niveau Ubuntu 20.04 vers 22.04 via la ligne de commande Maîtriser la ligne de commande vous donnera un avantage. Bien qu'il soit possible de mettre à jour Ubuntu via l'interface graphique, nous nous concentrerons sur la ligne de commande. Tout d’abord, vérifions la version actuellement en cours d’exécution d’Ubuntu à l’aide de la commande suivante : $

Avec l'application généralisée du système d'exploitation Linux, de plus en plus de personnes commencent à avoir besoin d'apprendre et de comprendre les commandes et raccourcis de base du système Linux. Dans cet article, nous présenterons quelques commandes et raccourcis Linux couramment utilisés pour aider les débutants à comprendre le système Linux et à améliorer l'efficacité du travail. Commandes couramment utilisées Commande 1.1ls La commande ls est l'une des commandes les plus couramment utilisées sous Linux. Il est principalement utilisé pour lister les fichiers et sous-répertoires du répertoire courant. Les options couramment utilisées sont : -l : affiche les informations sur le fichier au format long, y compris le type de fichier.

En Python, les paramètres peuvent être transmis aux scripts via la ligne de commande. Ces paramètres peuvent être utilisés dans des scripts pour effectuer différentes actions en fonction de différentes entrées. Explication détaillée des paramètres de ligne de commande Python : 1. Paramètres de position : paramètres transmis au script dans l'ordre sur la ligne de commande. Ils sont accessibles via la position à l'intérieur du script. 2. Options de ligne de commande : paramètres commençant par - ou -, généralement utilisés. pour spécifier des options ou des indicateurs spécifiques pour le script ; 3. Transmettre les valeurs des paramètres : transmettez les valeurs des paramètres via la ligne de commande.

Commencez le parcours du projet Django : démarrez à partir de la ligne de commande et créez votre premier projet Django. Django est un framework d'application Web puissant et flexible. Il est basé sur Python et fournit de nombreux outils et fonctions nécessaires au développement d'applications Web. Cet article vous amènera à créer votre premier projet Django à partir de la ligne de commande. Avant de commencer, assurez-vous que Python et Django sont installés. Étape 1 : Créer le répertoire du projet Tout d'abord, ouvrez la fenêtre de ligne de commande et créez un nouveau répertoire

Solution au problème selon lequel javac n'est pas une commande interne ou externe et n'est pas un programme opérationnel : 1. Tout d'abord, téléchargez la dernière version de JDK depuis le site officiel et installez-la 2. Configurez les variables d'environnement système et ajoutez l'installation de jdk ; chemin d'accès au chemin ; 3. Entrez la commande de l'ordinateur. Exécutez l'interface, entrez "java -v" et le numéro de version apparaîtra.

Comment effectuer l'agrégation de journaux et les statistiques via les outils de ligne de commande Linux ? La journalisation est une tâche très importante lors de la gestion et de la maintenance des systèmes Linux. Grâce aux journaux, vous pouvez visualiser le fonctionnement du système, résoudre les problèmes et effectuer une analyse des performances. Pour les systèmes à grande échelle, le nombre de journaux est souvent très important. Comment regrouper et compter efficacement les journaux est devenu un défi pour le personnel d'exploitation et de maintenance. Dans les systèmes Linux, nous pouvons utiliser des outils de ligne de commande pour l'agrégation de journaux et les statistiques. Ce qui suit présentera plusieurs lignes de commande couramment utilisées
