Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家提供关于数据库教程相关的教程网站知识。

每个分类取最新的几条的SQL实现具体相关代码4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

复制具体相关代码 具体相关代码如下:,Code highlighting produced by Actipro Codehighlighter (freeware)>if object_id(N'company') is not nul4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1概述

SQL语言的本质就是一串伪具体相关代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL数据库语句需要编译之后才能运行,所以每一条SQL是需要通过编译器解释才能运行的(在这之间还要做SQL的网站seo优化)。而这些步骤都是需要运行成本,所以在网站数据库中有一个叫做执行计划的东西,编译器会将编译过后的SQL存入执行计划当中,当遇到同样的SQL时,就直接调用执行计划来执行,而不需要再次编译。
通过对上面执行计划的认识,为了提高网站数据库运行的效率,咱们需要尽可能的命中执行计划,这样就可以节省运行时间。

2相关SQL

2.1查看当前网站数据库中所有的执行计划:

复制具体相关代码 具体相关代码如下:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


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%'
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


2.2删除执行计划

复制具体相关代码 具体相关代码如下:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


--删除所有计划
DBCC FREEPROCCAChE
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


2.3测试脚本(创建员工表,并向其插入1000条数据)

复制具体相关代码 具体相关代码如下:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


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(@I<@ENDI)
BEGIN
SET @I =1;
INSERT dbo.Employee(id,name) VALUES(@I,'蒋大华' CAST(@I AS NVARChAR(20)));
END;
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


3测试执行计划4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

3.1 先执行删除所有执行计划,然后执行SELECT * FROM Employee ,最后查看执行计划(2.1中的查看执行计划脚本)如下图4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

即SQL SERVER会为每一条SQL建立一个执行计划,并将它数据缓存起来4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

3.2 再运行一次SQL: SELECT * FROM Employee,并查看执行计划4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

可以看到这个计划的重用次数为2,即这个计划被重用了;4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

3.3 修改SQL:SELECT * FROM Employee(在SELECT后多加一个空格),执行并查看执行计划4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

结果又新添加一个执行计划,即SQL SERVER认为这是两个不同的SQL数据库语句并分别建立了执行计划;4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4重用执行计划——使用参数化查询具体相关方法4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4.1 未参数化SQL

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

复制具体相关代码 具体相关代码如下:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


string selectCmdText = string.Format(@"SELECT * FROM Employee WhERE",” 蒋大华1”);
SQLhelper.ExecuteNonQuery(SQLhelper.DefaulConnectiontString, System.Data.CommandType.Text, selectCmdText, null);
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


查看执行计划:

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

即当执行一个未参数化SQL时,SQL SERVER需要先将其转换成一个参数SQL并执行它。一共需要两执行计划4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

然后再执行下面的具体相关代码(查询的条件变了)
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

复制具体相关代码 具体相关代码如下:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


string selectCmdText = string.Format(@"SELECT * FROM Employee WhERE",” 蒋大华2”);
SQLhelper.ExecuteNonQuery(SQLhelper.DefaulConnectiontString, System.Data.CommandType.Text, selectCmdText, null);
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


查看执行计划

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

此时不需要再准备一个准备的SQL,但还是需要再产生一个执行计划,并数据缓存下来;4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4.2 参数化SQL
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

复制具体相关代码 具体相关代码如下:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


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);
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

输入参数并执行,然后查看执行计划:4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

只需要一个准备SQL,然后,输入不同的参数,并执行,再查看执行计划4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

重用执行计划,perfect...4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

5总结
4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

总的来说,SQL数据库语句在执行时,会生成执行计划并将它数据缓存起来,咱们可以通过提高使用数据缓存中的执行计划次数,来减少网站数据库的压力。而使用参数化的SQL是一个很好的选择,参数化查询的作用不仅只有防止SQL注入,还可以提高数据缓存中执行计划使用次数。4b2AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。

标签:

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市