SQL索引优化方法
2024-09-08 06:01:43
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 毫秒。
最新文章
- JS调用android逻辑方法
- mysql-error --(ERROR 1135 (HY000): Can't create a new thread (errno 11); if you are not out)
- HDU2094(产生冠军)题解
- 代码阅读软件kscope源码安装指导
- EXCEL 数字统一转换成文本
- YARN框架详解
- [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门
- poj2331 (IDA*)
- Spring 出现Could not resolve placeholder问题的解决方法
- 烧写树莓派系统,SSH配置,无屏登录流程
- 在平衡树的海洋中畅游(一)——Treap
- [转帖]IBM POWER系列处理器的前世今生
- nodejs利用sequelize-auto 根据数据库的table 生成model
- Liunx 重定向,管道符(转)
- input.text文件提示效果
- PHP中数字检测is_numeric与ctype_digit的区别介绍
- apiDoc自动生成api文档
- Putty全屏/退出全屏快捷键
- Eclipse调用hadoop2运行MR程序(转)
- PL/SQL之DBMS_SQL程序包使用(1)(学习笔记)