数据量:

首先我们看看待优化的SQL:

简单的分析下来发现:

EXISTS 这部分执行比较慢,我们来看一下,

这种写法比较便于理解,但是执行起来却很慢。既然这里慢,我们就要优化这部分。

首先我是想把拼接的字段进行单条拆多条,开始的想法:

拆分后的第一个sql:

这个部分其实从开始就不是慢的原因,所以看第二个部分:

看一下效果,其实效果并不好。

后面请教了一下同事,一些什么缓存表啊啥的,都简单的测试过,其实并不适合。

后来同事指导下用了关联表如下:

第一版是以前用了关联(WS_INST_STEP),后面根据需求,我把关联表部分去掉了。单独执行的化两个速度看不出来,我们放到整体sql中测试一下:

效果其实都还可以,宏观上相差1s。

SQLSERVER EXISTS IN 优化的更多相关文章

  1. SQLSERVER SQL性能优化技巧

    这篇文章主要介绍了SQLSERVER SQL性能优化技巧,需要的朋友可以参考下 1.选择最有效率的表名顺序(只在基于规则的优化器中有效)       SQLSERVER的解析器按照从右到左的顺序处理F ...

  2. 转载:SqlServer数据库性能优化详解

    本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...

  3. 总结sqlserver数据库性能优化相关的注意事项

    一.分析阶段一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性.可用性.可靠性.安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能性需求,必须根据系统的特点 ...

  4. SQLSERVER SQL性能优化

      1.选择最有效率的表名顺序(只在基于规则的优化器中有效)      SQLSERVER的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表driving ta ...

  5. SqlServer数据库性能优化详解

    数据库性能优化详解 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据 ...

  6. 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题

    最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...

  7. sqlserver中索引优化

    背景: MRO表中TimeStamp nvarchar(32),但实际上它存储的内容是日期(2015-09-09 11:20:30). 现在我要执行这样一个sql语句: Select t10.* fr ...

  8. MYSQL IN 与 EXISTS 的优化示例

    文章转载自:http://www.jb51.net/article/53127.htm 当B表的数据集必须小于A表的数据集时,用in优于exists,当A表的数据集系小于B表的数据集时,用exists ...

  9. SQLServer 2014 内存优化表

    内存优化表是 SQLServer 2014 的新功能,它是可以将表放在内存中,这会明显提升DML性能.关于内存优化表,更多可参考两位大侠的文章:SQL Server 2014新特性探秘(1)-内存数据 ...

随机推荐

  1. 【VS开发】四大图像库:OpenCV/FreeImage/CImg/CxImage

    本文转载自:http://hi.baidu.com/xiaocuiman/blog/item/6e267c2bc4b1883f5243c108.html 1.对OpenCV 的印象:功能十分的强大,而 ...

  2. mongodb 连接后无法使用 发现已经有进程在运行

    mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017 错误信息: list ...

  3. 日常工作问题解决:centos/linux系统如何检测端口是否打开

    1.telnet命令 格式: telnet ip 端口号 [root@centos7-127 ~]# telnet 192.168.87.128 22 Trying 192.168.87.128... ...

  4. 《鸟哥的Linux私房菜:基础学习篇》第二部分读书笔记

    一.Linux的文件权限与目录配置 1. Linux用户身份与用户组记录的文件:默认情况下,/etc/passwd记录所有的系统账号与一般身份账号及root的相关信息,/etc/shadow记录个人的 ...

  5. 《C++ Primer》读书笔记之第15章:面向对象编程

    一.面向对象概述 1. 面向对象的三个基本特性 封装.继承和多态. 2. 封装 指把隐藏对象的实现细节,仅对外提供接口,从而达到接口与实现分离的效果.封装的好处:一是提高数据的安全性,用户只能使用对象 ...

  6. Redis 学习笔记(篇八):事件

    Redis 服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件: Redis 服务器通过套接字与客户端(或者其他 Redis 服务器)进行连接,而文件事件就是服务器对套接字操作的抽象.服 ...

  7. Kubernetes---资源控制器之DaemonSet、Job和CronJob

    ⒈DaemonSet介绍,什么是DaemonSet DaemonSet 确保全部(或者一些)Node 上运行一个Pod的副本[注意主节点并不会参加调度].当有 Node 加入集群时,也会为他们新增一个 ...

  8. fiddler笔记:filters选项卡

    Host Show only Intranet Host 只显示内网(如不带"."的主机名)的数据流. Show only Internet Host 只显示互联网(如不带&quo ...

  9. xpath的一些常用使用

    xml文档<html> <head> <title>My page</title> </head> <body> <h2& ...

  10. Docker 容器学习笔记

    Docker 诞生于2013年,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影 ...