参考:
http://blog.csdn.net/luoyanqing119/article/details/17022649

1. 开启方式

菜单栏:query---Display Estimated Execution Plan
    图标栏:Display Estimated Execution Plan

2. 执行计划的图表是从右向左看的
   开销--看百分比,
   数据量--看箭头粗细
   做了什么--鼠标悬停
   <-----------
        <-----------
        <-----------

3. 查找数据的几种方式 (尽量实现后面的两种)
    [Table Scan] 表扫描(最慢),对表记录逐行进行检查
    [Clustered Index Scan] 聚集索引扫描(较慢),按聚集索引对记录逐行进行检查
    [Index Scan] 索引扫描(普通),根据索引滤出部分数据在进行逐行检查
    [Index Seek] 索引查找(较快),根据索引定位记录所在位置再取出记录
    [Clustered Index Seek] 聚集索引查找(最快),直接根据聚集索引获取记录

4. 应对和分析慢查询的思路:
    先检查哪些操作的成本比较高,再看看那些操作在查找记录时用scan,则要考虑增加索引来解决。注意添加索引后,也会影响数据表的修改动作
    然后可以试试调整语句结构,引导SQL Server采用其它的查询方案去执行(比如使用临时表、CTE、更高效的查询等)
    离散度不太大的数据,比如0/1这样的数据,可以考虑使用分区

5. 常见的优化:
    为【scan】这类操作增加相应字段的索引
    有时重建索引或许也是有效的,具体情形请参考后文
    调整语句结构,引导SQL Server采用其它的查询方案去执行
    调整表结构(分表或者分区)
    提高硬件性能或者调整OS,内存,CPU,SQL Server的设置

6. 视图的优化:
    视图也是由一个查询语句定义,多数时候不是直接使用原表,会加上where语句
    优化视图时, 最好能根据实际需求,应用不同的过滤条件,再来决定如何去优化

SQL Server实现Join的方式:
1. Nested Loops Join 一张大表,一张小表
2. Merge join 两张表有排序,或者经扫描排序的索引而获得的数据
3. Hash Join 未排序的大型非索引输入

SQLServer查询计划的更多相关文章

  1. 【转载】看懂SqlServer查询计划

    看懂SqlServer查询计划 阅读目录 开始 SQL Server 查找记录的方法 SQL Server Join 方式 更具体执行过程 索引统计信息:查询计划的选择依据 优化视图查询 推荐阅读-M ...

  2. 看懂SqlServer查询计划

    看懂SqlServer查询计划 阅读目录 开始 SQL Server 查找记录的方法 SQL Server Join 方式 更具体执行过程 索引统计信息:查询计划的选择依据 优化视图查询 推荐阅读-M ...

  3. 看懂SqlServer查询计划【转】

    原文链接:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 开始 SQL Server 查找记录的方法 SQL Server ...

  4. 看懂SqlServer查询计划 SQL语句优化分析

    转自 http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 阅读目录 开始 SQL Server 查找记录的方法 SQL Ser ...

  5. 看懂SqlServer执行计划

    在园子看到一篇SQLServer关于查询计划的好文,激动啊,特转载.原文出自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.htm ...

  6. SQLServer查询执行计划分析 - 案例

    SQLServer查询执行计划分析 - 案例 http://pan.baidu.com/s/1pJ0gLjP 包括学习笔记.书.样例库

  7. 小觑数据库(SqlServer)查询语句执行过程

    近年来,越来越多的NoSql产品不断的以技术革命的者的身份跳出来:“你看哥是多么的快,你们关型型数据库真是战五渣阿”.是的,高性能的场景下NoSql真的很出彩.而我们关系型数据库只能在墙角哭泣&quo ...

  8. sqlserver查询---分配cpu等资源

    数据库资源按需分配 https://www.cnblogs.com/i6first/p/4138365.html https://blog.csdn.net/kk185800961/article/d ...

  9. SQLServer查询语句收集

    常用的SQLServer查询语句,有空可以多练习一下,增加记忆,可以提高工作效率! 1.数据操作 Select      --从数据库表中检索数据行和列Insert      --向数据库表添加新数据 ...

随机推荐

  1. 利用Visual Studio 2017的扩展开发(VSIX、ItemTemplate) 快速实现项目的半自动化搭建

    目录 0.引言 1.什么是Visual Studio项目模板 2.IWizad接口 3.通过Visual Studio扩展开发实现领域驱动开发 3.1 使用VSIX+ProjectTemplate创建 ...

  2. 『Kruscal重构树 Exkruscal』

    新增一道例题及讲解 Exkruscal \(Exkruscal\)又称\(Kruscal\)重构树,是一种利用经典算法\(Kruscal\)来实现的构造算法,可以将一张无向图重构为一棵具有\(2n-1 ...

  3. 从.Net到Java学习第二篇——IDEA and start spring boot

    从.Net到Java学习第一篇——开篇 所谓工欲善其事,必先利其器,做java开发也一样,在比较了目前最流行的几个java IDE(eclipse,myeclipse.IDEA)之后,我果断选择IDE ...

  4. 关于ML.NET v0.6的发布说明

    ML.NET 0.6版本提供了几项令人兴奋的新增功能: 用于构建和使用机器学习模型的新API 我们主要关注的是发布用于构建和使用模型的新ML.NET API的第一次迭代.这些新的,更灵活的API支持新 ...

  5. JAVA数组和集合谁是儿子

    Java有哪些数据存储方式? 基本数据类型(1byte3整2小数1字符1布尔)分别是byte,short,int long,flort,double,char,boolean(颜色好喜庆的样子O(∩_ ...

  6. 通过Python、BeautifulSoup爬取Gitee热门开源项目

    一.安装 1.通过requests 对响应内容进行处理,requests.get()方法会返回一个Response对象 pip install requests 2.beautifulSoup对网页解 ...

  7. 初探Java设计模式2:结构型模式(代理模式,适配器模式等)

    行为型模式 行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰. 策略模式 策略模式太常用了,所以把它放到最前面进行介绍.它比较简单,我就不废话,直接用代码说事吧. 下面 ...

  8. 记录阿里云服务器mysql被黑

    前言 比上次服务器被黑还要恐怖的数据库被黑,再次强调,数据库不备份不做安全,你就可以准备跑路了. 这次记录一下整个被黑的过程,以及整个检查和处理的过程. 发现 上个月某一天,网站出现了无法登录的情况, ...

  9. SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别

    作者其他技术文章 1) Spring Boot 简介 2)SpringCloud入门之YAML格式文件规范学习 3)SpringCloud入门之Spring Boot多环境配置切换指南 4) Elas ...

  10. Tapestry3.0开发概论

    一.TAPESTRY技术的综述. tapestry是平行于struts/Spring MVC/webwork /jsf等开发工具的语言.tapestry是基于组件的开发工具.它具有组件的可重用性.因为 ...