zoukankan      html  css  js  c++  java
  • 优化子查询sql语句为内连接

    背景:

      希望提高查询的效率,从sql语句中频繁出现的子查询入手。

    数据表如下:Student表中的CityCode对应于City表中的Code。

    Student表:                      City表:

    子查询方式:

    sql语句如下:

    1 select * from Student 
    2 where CityCode 
    3 in
    4 (select Code from City)

    内连接方式:
    sql语句如下:

    1 select a.* from 
    2 Student a inner join City b
    3 on a.CityCode=b.Code

    二者的检索结果一致,如图:

    对于简单检索而言,尤其是在数据量小的情况下,二者并无差异,可能会引起同学的质疑,凭什么说连接的方式比子查询的方式要好,拿不出证据,老子弄死你们。

    于是,需要借助SQL Server的性能优化指标,在SQL Server查询语句之前,添加如下两行语句即可,sql语句如下:

    1 set statistics time on
    2 set statistics io on

    然后,打开结果标签右侧的消息标签,这是内连接的消息:

    这是子查询的消息:

    注意在子查询中City表逻辑读取了8次,而连接中只有1次。不要在意时间,因为数据量较小,所以子查询的时候更快一些,等数据量上去,你就懂了。

  • 相关阅读:
    centos下使用yum 安装pip
    unity3d Aniso Level 摄像机近地面清楚,远地面模糊
    Unity3D 多平台 预编译 宏定义
    Mecanim的Avater
    Mecanim 学习概述
    Unity物理系统的触发器
    Unity开发 资源准备
    我的Unity学习路线
    贴图在Unity中的设置
    在Unity中为模型使用表情
  • 原文地址:https://www.cnblogs.com/SharpL/p/4644247.html
Copyright © 2011-2022 走看看