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. selenium 访问网页抛出ElementNotVisibleException异常

    问题描述: 在使用selenium时遇到如下异常导致程序终止: selenium.common.exceptions.ElementNotVisibleException: Message: {&qu ...

  2. ruby file

    E:/AutoTHCN/lib/report/generate_report/web14/20190516/LoanTool.636936123857869205_190516_140514.xlsx ...

  3. leetcode 88. C++ 合并两个有序数组

    Leetcode 88. 合并两个有序数组 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 ...

  4. 135、TensorFlow SavedModel工具类的使用

    # SavedModelBuilder 类提供了保存多个MetaGraphDef的功能 # MetaGraph是一个数据流图,加上它的关联变量,资产和标签 # 一个MetaGraphDef是一个协议缓 ...

  5. Xmanger远程连接Centos7(成功配置)

    参考1:https://blog.csdn.net/wuzhimang/article/details/51523867 参考2:https://blog.csdn.net/name_kongkong ...

  6. Picture【HDU - 1828】【扫描线】

    题目链接 这道题求的是这些可能存在重叠的小方块可能构成的合成方块的周长的值是多少,有简单却会很复杂的做法就是去跑纵向和横向两次的扫描线,求得最后的两个周长和,但是这样的做法未免显得复杂了,我们完全可以 ...

  7. vuejs基础-跑马灯效果

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  8. HRESULT是什么类型

    HRESULT 是一种简单的数据类型,可以判断函数执行的结果.HRESULT 常被用作COM调用的返回值.充分利用HRESULT返回信息可以帮助提高我们的代码质量,提供程序的健壮性. HRESULT ...

  9. luoguP1966 火柴排队(NOIP2013)(归并排序)

    luogu P1966 火柴排队 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include ...

  10. 2.openshift授权策略和scc理解

    policy管理概念 查看policy的方式可以通过cli进行查看 Roles grant various levels of access in the system-wide cluster po ...