SQL索引优化方法

以下是代码片段:
SELECT TOP 50
  ROW_NUMBER() OVER(ORDER BY ResumeCreateTime DESC) as [RowID]
  ,[TopDegree]
  ,[DegreeRankID]
  ,[UserResume].[UserResumeID]
  ,[UserResume].[UserID]
  ,[ResumeName]
  ,[BirthDate]
  ,[WorkStartedDate]
  ,[SalaryNeeded]
  ,[BufferTimeSpanID]
  ,[ResumeCreateTime]
  FROM [dbo].[UserResume] INNER JOIN [dbo].[WorkExperience] ON [WorkExperience].[UserResumeID] = [UserResume].[UserResumeID]
  WHERE
  (CONTAINS([WorkExperience].[WorkSummary],"经理") OR CONTAINS([UserResume].[ResumeName],"简历"))   第一次执行:没有建立任何索引。   执行效果:   表 "Worktable"。扫描计数 0,逻辑读取 0 次   表 "UserResume"。扫描计数 1,逻辑读取 18524 次   表 "WorkExperience"。扫描计数 1,逻辑读取 8679 次   (1 行受影响)   SQLServer 执行时间:   CPU 时间 = 2152 毫秒,占用时间 = 3126 毫秒。   第二次执行:   查看执行计划WorkExperience表是表扫描,建立IX_WorkExperience索引(在ID列和JOIN 参照的ID列上)。   调整后效果:   表 "WorkExperience"。扫描计数 1,逻辑读取 1071 次   表 "UserResume"。扫描计数 1,逻辑读取 18524 次   (1 行受影响)   SQL Server 执行时间:   CPU 时间 = 1638 毫秒,占用时间 = 2045 毫秒。   第三次执行:   查看执行计划,UserResume表是表扫描,建立IX_UserResume索引。   调整后效果:   表 "WorkExperience"。扫描计数 11,逻辑读取 48 次   表 "UserResume"。扫描计数 1,逻辑读取 3095 次   (1 行受影响)   SQL Server 执行时间:   CPU 时间 = 1248 毫秒,占用时间 = 1568 毫秒。   第四次执行:   查看执行计划,在IX_UserResume索引扫描后,产生了createtime列的重新排序,调整了IX_UserResume索引中createtime的位置和排序规则。   调整后效果:   (50 行受影响)   表 "WorkExperience"。扫描计数 11,逻辑读取 48 次   表 "UserResume"。扫描计数 1,逻辑读取 3 次   (1 行受影响)   SQL Server 执行时间:   CPU 时间 = 15 毫秒,占用时间 = 404 毫秒。

SQL索引优化方法的更多相关文章

  1. paip.sql索引优化----join 代替子查询法

    paip.sql索引优化----join 代替子查询法 作者Attilax ,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.n ...

  2. SQL索引优化

    序言数据库的优化方法有很多种,在应用层来说,主要是基于索引的优化.本次秘笈根据实际的工作经验,在研发原来已有的方法的基础上,进行了一些扩充,总结了基于索引的SQL语句优化的降龙十八掌,希望有一天你能用 ...

  3. SQL语句优化方法30例

    1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_I ...

  4. 数据库sql常见优化方法

    以前刚开始做项目的时候,开发经验尚浅,每次遇到查询比较慢时,项目经理就会问:是不是又用select * 了?查询条件有没有加索引?一语惊醒梦中人,赶紧检查..果然如此! 有时我们写sql语句时,没有考 ...

  5. 数据库 | SQL语法优化方法及实例详解

    使用复合索引 如果经常执行如上查询,那么建立三个单独索引不如建立一个复合索引,因为三个单独索引通常数据库每次执行只能使用其中一个,虽然这样比不使用索引而进行全表扫描提高了很多效率,但使用复合索引因为索 ...

  6. MySQL - SQL语句优化方法

    1.使用 show status 了解各种 SQL 的执行频率 mysql> show status like 'Com%'; 该命令可以查询 sql 命令的执行次数. 2.定位执行效率较低的 ...

  7. SQL语句优化方法

    1.1 注释使用 在语句中多写注释,注释不影响SQL语句的执行效率.增加代码的可读性. 1.2 对于事务的使用 尽量使事务处理达到最短,如果事务太长最好按功能将事务分开执行(如:可以让用户在界面上多几 ...

  8. SQL 语句优化方法

    尽量避免非操作符的使用,在索引上使用 NOT,<> 等操作符,数据库管理系统是不会使用索引的,可以将查询语句转化为可以使用索引的查询. 避免对查询的列的操作,任何对列的操作都可能导致全表扫 ...

  9. MySql设计规范及SQL索引优化【呕心之作】

    数据库及表结构基本设计规范 1. 所有表必须使用Innodb存储引擎 没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5. ...

随机推荐

  1. JS-让浏览器兼容ES6特性

    babel:将 ES6 翻译为 ES5 PS:ie 还不支持 import 和 export 还是用 gulp 打包一下吧

  2. 使用定时器settimeout、setInterval执行能传递参数的函数

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.经网上查询后整理如下: 例如对于 ...

  3. MySQL replace into 与insert into

    https://blog.csdn.net/helloxiaozhe/article/details/77427266 使用replace带来的问题 1.Replace into 操作在唯一键重复情况 ...

  4. kmp(循环节)

    Cyclic Nacklace Problem Description CC always becomes very depressed at the end of this month, he ha ...

  5. 并行开发 8.用VS性能向导解剖你的程序

    原文:8天玩转并行开发——第八天 用VS性能向导解剖你的程序 最后一篇,我们来说说vs的“性能向导",通常我们调试程序的性能一般会使用Stopwatch,如果希望更加系统的了解程序,我们就需 ...

  6. Can't determine basedir from my_print_defaults mysqld

    我的环境是:centos7 + mysql5.7.26,今天在用 mysqldumpslow 命令查看慢查询日志时出现下面的错误 [root@localhost ~]# mysqldumpslow - ...

  7. 2019-9-2-win10-UWP-MvvmLight入门

    title author date CreateTime categories win10 UWP MvvmLight入门 lindexi 2019-09-02 12:57:38 +0800 2018 ...

  8. rlogin - 远程注册

    SYNOPSIS(总览) rlogin [-8EKLdx ] [-e char ] [-l username ] host DESCRIPTION(描述) Rlogin 在远程主机 host 上开始 ...

  9. vue,一路走来(11)--HTML5 History模式

    HTML5 History模式 项目中我用的是history模式. 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不 ...

  10. vue,一路走来(4)--vuex

    补充 调用外部js,详细介绍如何调用函数. 1.首先在main.js里引用文件 2.然后算是和jquery框架一样需要所谓的入口函数吧 不过令我烦恼的是,在应用的文件中需要把他包含在另一个函数里,才可 ...