SQLSERVER 缺少索引检查并且建立索引

SQLSERVER 缺少索引检查并且建立索引

前言

在做报表过程中发现报表数据出来得很慢,百思不得其解,最后发现是SQL语句主子表关联时缺少了索引,通过建立索引后SQL查询语句速度明显加快。

操作

  1. 先运行SQL脚本,得到sqlplan。

--查询执行计划
SELECT top 10
    s.[session_id],
    r.[start_time],
    DATEDIFF(SECOND,r.start_time,GETDATE()) AS elapsed_seconds,
    r.[status] AS RequestStatus,
    DB_NAME(r.database_id) AS DatabaseName,
    r.[reads],
    r.[writes],
    r.[logical_reads],
    r.cpu_time,
    r.total_elapsed_time,
    s.[status] AS SessionStatus,
    SUBSTRING (qt.text,
                 r.statement_start_offset/2,
    (CASE WHEN r.statement_end_offset = -1
           THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
    ELSE r.statement_end_offset END -
    r.statement_start_offset)/2) AS ExecutingSQL,
    qp.query_plan
FROM sys.dm_exec_requests (nolock) r
INNER JOIN sys.dm_exec_sessions (nolock) s
ON r.session_id=s.session_id
LEFT JOIN sys.dm_exec_connections (nolock) c
ON c.session_id=s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) as qt
CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) as qp
order by 3 desc
  1. 找到对应的SQL语句的query_plan
    在这里插入图片描述
  2. 打开sqlplan后,右键打开菜单选中“缺少索引详细信息”
    在这里插入图片描述
  3. sql脚本会带出关键信息:
    ①建立索引后能带来的开销减少率;
    ②缺少索引的字段集。
    在这里插入图片描述
  4. 建立索引,把注释删掉后输入索引名称即可
    在这里插入图片描述
    完结。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值