在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何使用变量对SQL进行优化

107次阅读
没有评论

共计 1592 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍“如何使用变量对 SQL 进行优化”,在日常操作中,相信很多人在如何使用变量对 SQL 进行优化问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用变量对 SQL 进行优化”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

 1. 什么是变量

变量其实就是我们定义的一个可变参数,其基本语法如下:

– 定义一个名称为 @I 的变量,指定其类型为整数

DECLARE @I VARCHAR(20)

– 对变量 @I 赋值为

SET @I= SQL 数据库开发

– 输出 @I 的值

SELECT @I

结果:SQL 数据库开发

其中 DECLARE @部分是固定写法,@I 是变量名称,变量必须定义类型,一般会定义为字符型,整数型,时间类型等。

赋值部分 SET 也是固定写法,就是对变量 @I 进行赋值,= 右边的就是赋值内容了

定义好变量后就可以将其带入到查询语句中了,每次只需要修改赋值部分,查询语句就会根据赋值内容查询出相应的结果

2. 为什么要使用变量

使用变量后,相同的查询语句如果只是赋值不同,可以重复使用第一次的执行计划,做到一次解析,多次复用的效果,减少执行计划的解析就会相应提高查询速度了。我们看如下示例:

SELECT * FROM T1 WHERE ORDER_ID= 112  SELECT * FROM T1 WHERE ORDER_ID= 113

如果单独执行这两条查询语句,查询优化器认为是不同的 SQL 语句,需要解析两次。我们使用变量对其进行修改

DECLARE @ORDER_ID VARCHAR(20) SET @ORDER_ID= 112  SELECT * FROM T1 WHERE ORDER_ID=@ORDER_ID;

执行完之后,只需要修改 @ORDER_ID 的值为 113 rsquo;,就可以重复使用上面的执行计划了。由于上面的语句比较简单,可能看不出效果,但是如果遇到比较复杂的查询语句,变量查询往往能起到很好的效果。

3. 什么时候该 / 不该使用变量

常见的在线查询一遍都可以使用到变量,将变量作为参数传递给数据库,可以实现一次查询,重复使用执行计划。

如果单独查询某个语句时间很久,比如超过半个小时了,这种使用变量没有什么明显的效果。

4 变量窥测

事物都存在两面性,变量对常见查询可以提高查询效率。但是也有例外,比如在 WHERE 条件中的字段是“倾斜字段”的时候。

“倾斜字段”指该列中的绝大多数的值都是相同的,比如人口调查表,其中“民族”这列,90% 以上都是汉族。那么如果一个 SQL 语句要查询 30 岁的汉族人口有多少,那“民族”这列必然要被放在 WHERE 条件中。这个时候如果采用绑定变量 @NATION 会存在很大问题。

如果 @NATION 传入的第一个值是“汉族”,那整个执行计划必然会选择表扫描。

DECLARE @NATION VARCHAR(50) SET @NATION= 汉族  SELECT * FROM People WHERE AGE=30 AND NATION=@NATION;

当第二个值传入的是“畲族”,正常情况下“畲族”在表中占的比例可能只有万分之一,应该采用索引查找。

DECLARE @NATION VARCHAR(50) SET @NATION= 畲族  SELECT * FROM People WHERE AGE=30 AND NATION=@NATION;

由于重用了第一次解析的“汉族”的那个执行计划,那么第二次也将采用表扫描方式。这个问题就是著名的“变量窥测”,建议对于“倾斜字段”不要采用绑定变量。

到此,关于“如何使用变量对 SQL 进行优化”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1592字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 91视频免费网站 | 一级做a毛片在线看 | 中文字幕在线免费视频 | 亚洲成a人一区二区三区 | 一区二区三区无码高清视频 | 国产一区二区三区电影 | 黄色片免费看看 | 996久久国产精品线观看 | 18禁无码永久免费无限制网站 | 午夜精品久久久久久久2023 | 天天操夜夜摸 | 日本高清在线一区二区三区 | 2021国内精品久久久久久影院 | 性裸交a片一区二区三区 | 成人精品视频一区二区在线 | 亚洲国产精品特色大片观看完整版 | 青青在线久青草免费观看 | 欧美在线观看日韩欧美在线观看 | 午夜伦伦 | 色妞视频一级毛片 | 男人天堂新地址 | 一边摸一边做爽的视频17国产 | av在线亚洲av 是全亚洲 | 欧美在线观看一区二区三 | 99在线观看精品免费99 | www.四虎com | 影音先锋久久久久av综合网成人 | 草久视频 | 亚洲欧美成人在线 | 亚洲欧洲一区二区三区久久 | 久久综合精品国产一区二区三区 | 午夜影皖普通区 | 中文岛国精品亚洲一区 | 国产 一二三四五六 | 熟妇熟女乱妇乱女网站 | 人妻少妇精品一区二区三区 | 久久亚洲美女久久久久 | 亚洲精品456 | 日韩av第一页在线播放 | 青青在线香蕉国产精品 | 国产永久视频夜色资源网 |