SQL查询优化--使用索引

1 .执行计划
执行计划的作用:执行计划可以是根据 SQL Server 查询优化器估算的计划 , 不需要查询语句真正执行 , 减少数据库负荷
使用执行计划的方式:不实际执行 , 只估算出执行计划、实际执行 SQL 语句后 , 根据实际情况总结出执行计划
执行计划的常用图标;
案例需求 : 通过两种执行计划查看在数据库 adventureWorks 上的查询语句 :
   Select * From PRODUCTION.WORKORDER Where PRODUCTID =732 的执行情况。
实施方法一 : 事先查看执行计划
实施方法二 : 执行查询后显示执行计划
2 客户端统计
客户端统计信息功能获取查询后的实际花销信息 , 与查询计划一起配合使用分析查询效率更加方便有效
实施方法 :
选择客户统计信息按钮
输入 SQL 语句
选择执行计划的全局效果图
查看显示的执行计划
查看执行计划图
查看节点内容
3.使用索引的查询语句的写法
查询语句基本写法 :
    Select [ 字段列表 ] From table1 Where 条件表达式 1 {and|or} 条件表达式 2 {and|or} … 条件表达式 n;
查询语句使用索引的最基本要求就是要以索引字段为查询条件
条件表达式的样式为 {[ 索引字段 ] 条件运算符 [ ]}
使用查询语句的注意事项:
查找条件中不要将字段进行运算
LIKE 模糊查询字段的通配符是第一个字符,查询不会使用索引
查询条件使用 not 或者 != 操作符时,查询不会使用索引
使用组合索引,查询条件必须包含组合索引里第一个索引字段
如果查询结果字段与查询条件的字段总是成对出现,建议使用索引表查询
查找条件中不要将字段进行运算
案例需求 : 对比下列语句 , 分析索引使用情况 :
  1 Select * From PRODUCTION.WORKORDER Where ProductID + 10=742
  2 Select * From PRODUCTION.WORKORDER Where ProductID=732
查询没有使用索引的情况
查询使用索引的情况
查询条件使用not 或者!= 操作符时
案例需求 : 查看
   Select * From PRODUCTION.WORKORDER Where ProductID!=732 的索引使用情况
 
使用组合索引的效果
案例需求 : 数据表 PRODUCTION.WORKORDER 建立两个组合索引:
  索引 1:
       IX_WorkOrder_ProductIDStartDateEndDate 
      包含三个字段 (ProductID StartDate EndDate)
索引 2:
       IX_Workorder_StartdateEnddate 包含字段
      两个字段 (StartDate EndDate)
查询结果字段与查询条件字段成对出现
案例需求 : 分析查询语句
   Select ProductID From PRODUCTION.WORKORDER
   Where startdate >cast( 2001-07-12 As datetime) And startdate < cast( 2001-07-14 As datetime) 使用以下哪组索引 ?
索引 1:
    IX_WorkOrder_ProductIDStartDateEndDate 包含字段 (ProductID,StartDate,EndDate)
  索引 2 : 
    IX_Workorder_StartdateEnddate 包含字段 (StartDate,EndDate)
 
 

本文出自 “乐成的技术笔记” 博客,谢绝转载!

你可能感兴趣的:(数据库,索引,查询,职场,休闲)