本文将根据“数据库引擎优化顾问”(DTA)来发现无用或缺失的索引。

要使用“数据库引擎优化顾问”,首先需要对数据库负载进行监控,为数据库负载分析准备数据。从SSMS的工具中,打开SQL Server Profile,输入安全连接方式。在常规的标签下,模板选择“Standard(默认值)”,事件选择标签下,选择事件Stored Procedures→RPC:Completed;TSQL→SQL:BatchCompleted,SQL:BatchStarting,点击运行。如下图所示:

监控一段时间后,停止运行,将跟踪文件保存为trace.trc

在SSMS的工具下,打开“数据库引擎优化顾问”,建立安全连接,如下图。在“工作负荷”下选择跟踪文件所在的路径,选择“工作负荷分析的数据库”,这里我选择的tempdb;最后选择需要优化的数据库和表。

在优化选项中,“限定优化时间”可以不选,或者自己设定结束时间;“在数据库中使用的物理设计结构(PDS)”,选择“索引和索引视图(D)”;“使用的分区策略”选择“对齐分区(A)”;在数据库中保留的物理设计结构(PDS),我选择了“保留对齐分区(R)”,设定如下:

点击开始运行后,获得如下建议

通过测试可以了解到,最终的索引或分区建议,与Profile追踪的时间长短、时间段有关。如果工作负载不代表该数据库的典型工作负载,并且缺少重要的查询,那么索引建议也将是不完整的、不准确的或完全错误的。使用该方法的要求是:

在不影响生产环境的性能的情况下,尽可能的延长跟踪时间,搜集较多的事件;

将需要优化的数据库备份,还原到非生产环境服务器,进行分析(因为保证1的情况下,数据量会非常大,在原生产环境进行分析,会消耗大量的生产环境的资源CPU、IO,降低生产环境的性能,影响业务)

比较动态视图和数据库引擎优化顾问,两者的共同缺点都是可能因搜集的信息不全,导致建议不准确, 所以无论使用动态视图,还是使用数据库引擎优化顾问,其建议都需要审慎使用。

最后再重申一遍,虽然这些特性在确定可能对数据库有益的索引时非常有用,但它们也可能是一把双刃剑,在错误使用时弊大于利。盲目地实现这些特性的建议几乎总是会导致数据库中的索引重复或重叠,以及索引太多而不是太少。

SQL Server 索引优化-----数据库引擎优化顾问的更多相关文章

  1. SQL优化工具 - SQL Server Profiler与数据库引擎优化顾问

    最近项目做到几千个学生分别去人脸识别记录(目前约630000行)中查询最后一次记录,可想而知性能这块是个麻烦.于是乎,GET到了SQL Server Profiler和数据库引擎优化顾问这俩工SHEN ...

  2. 降龙十八掌之一:(亢龙有悔)SQL Server Profiler和数据库引擎优化顾问

    简介 说到Sql的[性能工具]真是强大,SQL Server Profiler的中文意思是SQL Server事件探查,这个到底是做什么用的呢?我们都知道探查的意思大多是和监视有关,其实这个SQL S ...

  3. SQL Server Profiler和数据库引擎优化顾问

    原文:SQL Server Profiler和数据库引擎优化顾问  简介 说到Sql的[性能工具]真是强大,SQL Server Profiler的中文意思是SQL Server事件探查,这个到底 ...

  4. SQL Server 索引基本概念与优化

    数据页和区 页 SQL Server 中的数据以“页”(Page)的形式保存数据,页是SQL Server 的IO单位,读/写一次至少是一页.一页为8K(8192byte). 页由三部分组成,页头,数 ...

  5. 【SQL server初级】数据库性能优化一:数据库自身优化(大数据量)

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第一部分 数据库性能优化一:数据库自身优化 优化①:增加次数据文件,设置文件自动增长(粗略数据分区) 1.1:增加次数据文 ...

  6. 【SQL server初级】数据库性能优化三:程序操作优化

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少 ...

  7. 安装SQL Server提示“等待数据库引擎恢复句柄失败”

    1.如果MSSQLSERVER服务已经启动,则停止. 2.以管理员身份打开命令行,执行命令:"C:\Program Files\Microsoft SQL Server\MSSQL10_50 ...

  8. Sql Server CPU 性能排查及优化的相关 Sql

    Sql Server CPU 性能排查及优化的相关 Sql 语句,非常好的SQL语句,记录于此: --Begin Cpu 分析优化的相关 Sql --使用DMV来分析SQL Server启动以来累计使 ...

  9. SQL Server 事件探查器和数据库引擎优化顾问

    简介 说到Sql的[性能工具]真是强大,SQL Server Profiler的中文意思是SQL Server事件探查,这个到底是做什么用的呢?我们都知道探查的意思大多是和监视有关,其实这个SQL S ...

随机推荐

  1. 微信小程序前端function封装

    funtion的封装 utils =>http.js var tips = { 1: "没有网络", 999: "无效的请求", 5000: " ...

  2. 使用localstorage.setItem()存储对象

    使用localstorage.setItem(name,value)存储JSON对象时会发现浏览器存储的内容为[object,object],并不是我们想要的内容,这是因为我们在存储的时候没有进行类型 ...

  3. 第12组 Alpha事后诸葛亮

    Header 组长博客 Postmortem 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 要解决的是喜欢记录分享旅游生活的人群的行迹记录和分享问题, ...

  4. linux修改固定IP

    点击虚拟机菜单栏的编辑,选择虚拟网络编辑器 选择Vmnet8 NAT模式,查看子网ip:192.168.233.0 我们的虚拟机网络模式也需要选择NAT模式 打开虚拟机,输入:ip addr 查看当前 ...

  5. 微信小程序之页面传参

    效果图: 点击编辑值传过去了,那么编辑支出类型这个界面又是如何获取到值呢? 传值代码: type.js editType: function (e) { var typeId = e.currentT ...

  6. CSS背景和精灵图

    如何设置背景图片? 1.在CSS中有个叫做background-image:url():的属性,就是专门用于设置背景图片的. 2.注意点: 1)图片的地址必须放在url()中,图片的地址可以是本地的地 ...

  7. 日期正则表达式yyyyMMdd

    日期校验yyyyMMdd, 包括闰月等校验. package com.xgcd; import java.util.regex.Matcher; import java.util.regex.Patt ...

  8. oracle远程连接服务器

    一.需要下载的工具 1.PLSQL Developer 下载及安装地址如下: http://www.zdfans.com/html/18196.html 2.下载instantclient-basic ...

  9. 更新Alpine Linux源 sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories apk add xxx

    更新Alpine Linux源 国内镜像源 清华TUNA镜像源:https://mirror.tuna.tsinghua.edu.cn/alpine/中科大镜像源:http://mirrors.ust ...

  10. Aspect切面的使用实例

    一.导入切面库 以maven工程为例,除了springmvc基础的库,需要导入切面库,本例aspectj为例. <properties> <aspectj.version>&l ...