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. IHttpHandler

    https://docs.microsoft.com/en-us/dotnet/api/system.web.ihttphandler?view=netframework-4.8 Defines th ...

  2. Oracle DataGuard日志传输

    1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志,其示意图如下: 注:上图来自<大话Oracle RAC> 其大致过程如下: 1)主库:日志先写入 ...

  3. 【黑科技】花几分钟和孩子动手DIY,即可用手机完成全息影像!

    http://baobao.sohu.com/20160902/n467277059.shtml [黑科技]花几分钟和孩子动手DIY,即可用手机完成全息影像! 杭州亲子圈2016-09-02 07:2 ...

  4. Socket错误详解及处理方法

    例如错误代码10061, 说明服务器已经找到,但连接被服务器拒绝, 连接失败原因可能是: 端口号设置错误: 2.服务器没有处于监听状态 (即ServerSocket –>Active=true) ...

  5. Python变量和字符串详解

    Python变量和字符串详解 几个月前,我开始学习个人形象管理,从发型.妆容.服饰到仪表仪态,都开始做全新改造,在塑造个人风格时,最基础的是先了解自己属于哪种风格,然后找到参考对象去模仿,可以是自己欣 ...

  6. Jmeter接口自动化培训

    课程前提 速成班,讲的不会非常深,每个人基础不一样,但是实现接口自动化没有问题,因为jmeter更多的用来做性能测试.当然有兴趣我们也可以穿插一点 课程基本大纲 接口基础概念 部署本地测试环境(使用d ...

  7. PAT甲级【2019年9月考题】——A1164 DijkstraSequence【30】

    7-4 Dijkstra Sequence (30 分) Dijkstra's algorithm is one of the very famous greedy algorithms. It is ...

  8. ubuntu离线安装mysql

    一:ubuntu离线安装mysql 转载来源:https://blog.csdn.net/liuhuoxingkong/article/details/80696574 参考文章:https://ww ...

  9. 好用的for循环与range

    for循环 # for 变量 in 可迭代对象: # pass s = "1234567890" for each in s: # 遍历字符串 print(each) # 1 2 ...

  10. 关于URL和URI的最简单理解

    以下面网址为例: http://www.sina.com/news/1.html 那么,http://www.sina.com/news/1.html就表示URL,用于标识互联网中的某一资源:/new ...