以下的文章主要描述的是SQL Server 表内容的组合,即 union 提高查询速度的实际操作步骤,以下就是SQL Server 表内容的组合,即 union 提高查询速度的实际操作步骤的描述,希望在你今后的学习中会有所帮助。
select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi, Workflowstep ws where ws.workflowid= select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi, Workflowstep ws where ws.workflowid= '402881db1b441e6f011c0cff320e4766' and (wi.laststepid = ws.id or (wi.curstepid = ws.id and isreceived=1 and issubmited =1))
执行IO统计结果如下:
(22 行受影响)
SQL Server 表 'workflowstep'。扫描计数 1,逻辑读取 23 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'Worktable'。扫描计数 4,逻辑读取 1490572 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'workflowinfo'。扫描计数 4,逻辑读取 12208 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
SQL Server 表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
执行计划如下:
这里发现:主要是嵌套循环算法占的开销更大。个人感觉是“Or”引起的性能问题,后来根据业务逻辑改写。如下:
语句修改如下:
select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi, Workflowstep ws where ws.workflowid='402881db1b441e6f011c0cff320e4766' and (wi.laststepid = ws.id) union all select ws.nodeid,wi.laststepid,wi.curstepid from Workflowinfo wi, Workflowstep ws where ws.workflowid='402881db1b441e6f011c0cff320e4766' and (wi.curstepid = ws.id and isreceived=1 and issubmited =1)
查询IO次数如下:
(22 行受影响)
表 'workflowinfo'。扫描计数 36,逻辑读取 142 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
SQL Server 表 'workflowstep'。扫描计数 2,逻辑读取 46 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
执行计划如下:
这里发现:成本不在是嵌套循环上的开销了,IO次数大大减少。
总结:
这里通过改写”OR“语句成“Union”语句,性能大大提高,用了or语句,数据库优化器无法优化,这里都是用的“嵌套循环算法”,但是使用方式不一样,同样得到不同的结果。
对于类似的语句,可以将其改写成”Union“ 或”Union All“ 语句。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...
1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...
当你的Windows 7系统在后台打开多个程序时,任务栏右下角往往会出现一排的图标,不但影响美观而且也没实用性。能不能让它像WinXP那样有一个可以隐藏后台程序的小三角图标呢 当然可以,Windows 7可是继承了WinXP许多优秀的功能,而且设置方法也非常简单。 操作方法: 1、在任务栏空白处...
一般大部分人在Windows 7/Vista共享文件为了方便都去掉了密码保护的共享。这样在共享文件夹时就需要添加Everyone或Guest权限。一般共享文件夹时是以向导的形式,添加用户设置权限都很简单,不会有问题。但看到一些人共享驱动器时却遇到了问题。就是网上邻居能够看到共享的驱动器,访问却提示没...
一. 创建系统修复光盘 开始菜单→所有程序→维护→创建系统修复光(要保证光驱里有一张空白的光盘,如图:) 二. 故障“记录仪”:problem Steps Record 开始菜单→所有程序→附件→命令提示符→键入PSR→回车→左键“开始记录”就开始记录了。假如系统出问题了,其中prob...
公司用的是Windows 7,家里用的Mac OSX,又有iPad,iPhone。通过iClond可实现Safari的书签同步。这样在任何一个设备上添加了一个网址到书签里,其它设备都能保持更新。 首先需要做的是注册一个apple id。 Windows 7下需要安装一个iClond控制面板。虽然...