没有合适的资源?快使用搜索试试~ 我知道了~
对sql语句进行优化,减少执行时间。尤其在存储过程中应用很广泛。
资源推荐
资源详情
资源评论
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/release/download_crawler_static/9568453/bg1.jpg)
性能优化调整
选用适合的 优化器
的优化器共有 种
基于规则
基于成本
选择性
设 置 缺 省 的 优 化 器 可 以 通 过 对 文 件 中 参 数 的 各 种 声 明 如
!"!你当然也在 # 句级或是会话$%$$级对其进
行覆盖
为了使用基于成本的优化器&$'&$%()*+%你必须经常运行 ,-+%命令以增加数
据库中的对象统计信息.%$$$的准确性
如果数据库的优化器模式设置为选择性那么实际的优化器模式将和是否运行过 ,-+% 命
令有关如果 ,% 已经被 ,-+% 过优化器模式将自动成为 &反之数据库将采用 形式的优
化器
在缺省情况下 采用 优化器为了避免那些不必要的全表扫描/0,,,%$你
必须尽量避免使用 优化器而直接采用基于规则或者基于成本的优化器
访问 的方式
采用两种访问表中记录的方式
全表扫描
全表扫描就是顺序地访问表中每条记录 采用一次读入多个数据块($%,1的方式
优化全表扫描
通过 ! 访问表
你可以采用基于 ! 的访问方式情况提高访问表的效率! 包含了表中记录的物理位置信息
采用索引2 3实现了数据和存放数据的物理位置! 之间的联系通常索引提供了快速
访问 ! 的方法因此那些基于索引列的查询就可以得到性能上的提高
共享 语句
为了不重复解析相同的 # 语句在第一次解析之后 将 # 语句存放在内存中这块位于
系统全局区域 4$-$%*5,,%的共享池$6%(07%),中的内存可以被所有的数据库
用户共享因此当你执行一个 # 语句有时被称为一个游标时如果它和之前的执行过的语句完全相同
就能很快获得已经被解析的语句以及最好的执行路径 的这个功能大大地提高了 #
的执行性能并节省了内存的使用
可惜的是 只对简单的表提供高速缓冲6%07%5这个功能并不适用于多表连接查询
数据库管理员必须在 中为这个区域设置合适的参数当这个内存区域越大就可以保留更多的语句
当然被共享的可能性也就越大了
当你向 提交一个 # 语句 会首先在这块内存中查找相同的语句这里需要注明的
是 对两者采取的是一种严格匹配要达成共享# 语句必须完全相同包括空格换行等
共享的语句必须满足三个条件
字符级的比较
当前被执行的语句和共享池中的语句必须完全相同
![](https://csdnimg.cn/release/download_crawler_static/9568453/bg2.jpg)
例如
8"9
和下列每一个都不同
8/*9
%,%8"**)9
8"9
& 两个语句所指的对象必须完全相同
例如
用户 对象名 如何访问
:1 $,,* );%$--*
!1- )0, $--*
,(%, )0, $--*
:,, $,,* );%$--*
!1- )0, $--*
,(%, ,% <%
考虑一下下列 # 语句能否在这两个用户之间共享
能否共享 原因
$%,%*=$,)/*$,,*9
不能
每 个 用 户 都 有 一 个 );%$--*'
$,,*它们是不同的对象
$%,%08 /*<1-<6%%$(%$,1%
>2!?>9
能
两 个 用 户 访 问 相 同 的 对 象 )0,
$--*'<1-
$%,% $(%$, /* <1-
),(%,<6%%-(@-(
不能
用 户 .1 通 过 );%$--* 访 问
),(%,而 .,,是表的所有者对象不
同
两个 # 语句中必须使用相同的名字的绑定变量(;,%$
例如:第一组的两个 # 语句是相同的可以共享而第二组中的两个语句是不同的即使在运行时
赋于不同的绑定变量相同的值
$%,%)*%/*)%),%<6%%)@,1A)9
$%,%)*%/*)%),%<6%%)@,1A)9
$%,%)*%/*)%),%<6%%)@9
$%,%)*%/*)%),%<6%%)@9
选择最有效率的表名顺序!只在基于规则的优化器中有效"
的解析器按照从右到左的顺序处理 #$ 子句中的表名因此 " 子句中写在最后的
表基础表 (;5,%将被最先处理在 " 子句中包含多个表的情况下你必须选择记录条数最少
的表作为基础表当 处理多个表时会运用排序及合并的方式连接它们 首先扫描第一个表
" 子句中最后的那个表并对记录进行排序然后扫描第二个表" 子句中最后第二个表最后将
所有从第二个表中检索出的记录与第一个表中合适记录进行合并
例如表 &AABCD条记录
![](https://csdnimg.cn/release/download_crawler_static/9568453/bg3.jpg)
表 &EA条记录
选择 &E 作为基础表 最好的方法
$%,%08/*AE执行时间 FGB 秒
选择 &E 作为基础表 不佳的方法
$%,%08/*EA执行时间 EBFG 秒
如果有 个以上的表连接查询那就需要选择交叉表%$%,%作为基础表交叉表是指那个被
其他表所引用的表
例如 表描述了 2 表和 4H 表的交集
8
"2
4H
$%
!2&!2AFFF2 EFFF
2 2@2
2 2@2
将比下列 # 更有效率
8
"$%&
'(
)*
!2@2
2 2@2
2 2&!2AFFF2 EFFF
+,- 子句中的连接顺序.
. 采用自下而上的顺序解析 ,- 子句根据这个原理表之间的连接必须写在其他 !
条件之前那些可以过滤掉最大数量记录的条件必须写在 ! 子句的末尾
例如
低效执行时间 AIB 秒
J
"
!/+0000
(12345$()6
2 EIK28"
!4@29
高效执行时间 AFB 秒
J
"
!EIK28"
!4@2
(1/+0000
(12345$()67
![](https://csdnimg.cn/release/download_crawler_static/9568453/bg4.jpg)
B 子句中避免使用 ‘ 8L
当你想在 子句中列出所有的 2 时使用动态 # 列引用 ‘8M是一个方便的方法不幸的是
这是一个非常低效的方法实际上 在解析的过程中会将’8M依次转换成所有的列名这个工作是
通过查询数据字典完成的这意味着将耗费更多的时间
N减少访问数据库的次数
当执行每条 # 语句时 在内部执行了许多工作解析 # 语句估算索引的利用率绑定变量
读数据块等等由此可见减少访问数据库的次数 就能实际上减少 的工作量
例如
以下有三种方法可以检索出雇员号等于 FDE 或 FEGA 的职员
方法 A最低效
2H4
#$$%
!2@DE9
2H4
#$$%
!2@EGA9
方法 E次低效
A22&
2H4
"
!2@29
&42
2ADE9
#-'(8&&7
2AEGA9
#-'(8&&7
A9
2 9
方法 高效
2H4
&2&H&4
#$$%&$%3
!2@DE
2 &2@EGA9
注意
在 #8,0$#8"*$ 和 8 中重新设置 H 参数可以增加每次数据库访问的检索数据
量 建议值为 EFF
C使用 函数来减少处理时间
使用 函数可以避免重复扫描相同记录或重复连接相同的表
![](https://csdnimg.cn/release/download_crawler_static/9568453/bg5.jpg)
例如
28,
"
! 2@FFEF
2 2O ‘?M9
28,
"
! 2@FFF
2 2O ‘?M9
你可以用 函数高效地得到相同结果
2 2FFEFM3M2 FFEF2
2 2FFFM3M2 FFF2
2FFEF2 FFEF
2FFF2 FFF
"!2OL?M9
类似的 函数也可以运用于 4&H和 &H 子句中
G整合简单无关联的数据库访问
如果你有几个简单的数据库查询语句你可以把它们整合到一个查询中即使它们之间没有关系
例如
2
"
!2@AED9
2
"
! 2@AF9
2
"
!H@L M9
上面的 个查询可以被合并成一个
2 22
" 3
!2PL3M3 H@2PL3M! Q
2 2PL3M3 H@2PL3M ! Q
2 2PL3M3 H@2PL3M! Q
2 2Q@AED
2 2Q@AF
2 HQ@L M9
!译者按虽然采取这种方法&效率得到提高&但是程序的可读性大大降低&所以读者 还是要权衡之间的利
弊"
剩余34页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
默上纤尘
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 基于TypeScript的luyinji录音机设计源码
- (源码)基于C语言和MPI框架的NBody问题求解系统.zip
- 昆仑通态控温程序:触摸屏直接通讯仪表,无需PLC,MCGS通讯连接10块仪表,精准控温高效管理,昆仑通态控温程序:触摸屏直接通讯仪表,无需PLC,MCGS通讯连接十块仪表,昆仑通态控温程序,MCGS通
- 基于PHP和JavaScript的OpenFlights航班信息地图设计源码
- (源码)基于Spring Boot和Vue的权限管理系统.zip
- COMSOL仿真揭示石墨烯临界耦合光吸收特性:费米能级调控下的光学性能探究,COMSOL仿真揭示石墨烯临界耦合光吸收特性:费米能级调控下的光学性能探究,COMSOL 准 BIC控制石墨烯临界耦合光吸收
- 深入解析comsol电弧放电现象:蒸汽影响下的电弧行为与特性,探索comsol电弧放电现象:蒸汽作用下的放电特性研究,comsol电弧放电 考虑蒸汽 ,comsol电弧放电; 蒸汽电弧放电; 蒸汽与电
- (源码)基于Arduino的避障机器人.zip
- 基于TypeScript和JavaScript的基因组可视化设计源码
- 基于TypeScript的快递配送司机行程时间计算器设计源码
- 基于Vue2的图书馆前端LMS设计源码
- 基于FPGA的自适应滤波器设计及LMS、NLMS、RLS算法实现,包含FIR IIR滤波器和FxLMS分数阶技术,2023年H题解析,基于FPGA的自适应滤波器设计与实现:LMS、NLMS、RLS算法
- (源码)基于电路设计项目的完整解决方案.zip
- 基于三菱PLC与组态王的三层电梯智能控制设计程序集:梯形图程序、接线图与组态画面全解析,基于三菱PLC与组态王的三层电梯智能控制设计程序集:含梯形图、接线图、IO分配及组态画面,基于三菱PLC和组态王
- 基于MATLAB的混合滤波器设计:模拟与数字滤波器应用详解,MATLAB平台下的模拟与数字滤波器设计:涵盖IIR、FIR及巴特沃斯、切比雪夫四大类型滤波器的研究与实践,基于matlab的模拟滤波器和数
- 《煤矿开挖区三维渗流仿真及其应力场计算分析模型研究》,《煤矿开挖区三维渗流仿真及其应力场计算分析模型研究》,煤矿开挖区的三维渗流仿真 煤矿开挖区模型 计算了渗流速度场以及结构的应力场 ,三维渗流仿真
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)