zoukankan      html  css  js  c++  java
  • sqlserver 索引优化 sql语句执行分析

    前言:很多时候,我们并不知道数据表是否需要重建索引了,也不知道SQL执行的低效率到底问题出现在哪里了。以下内容便是之前在使有SQLSERVER2005数据库的一些日常分析操作,请笑纳~~~

    如何查看数据库表是否需要重建索引

    1、查看当前表的索引碎片情况:

       DBCC SHOWCONTIG('表名')
       注:扫描密度 [最佳计数:实际计数].......: 94.79% [91:96]
           最佳计数与实际计数相当时说明索引是比较好的,如相差太多,就必须可以重新建或组织索引

    2、 对整表重建索引:

      DBCC DBREINDEX('表名','','创建索引时每个索引页上要用于存储数据的空间百分比')
       例:DBCC DBREINDEX('CALLLOG','','90')

    3、重建表中指定索引

    DBCC DBREINDEX('表名','要重建的索引名','创建索引时每个索引页上要用于存储数据的空间百分比')
     例:DBCC DBREINDEX('CALLLOG','CALLID_INDEX','90')

    4、重建完索引,再查看索引碎片情况。对比最佳计数与实际计数。

    5、新建索引

    CREATE CLUSTERED INDEX CALLID_INDEX ON CALLLOG(CALLID) --聚集索引

    CREATE INDEX CALLID_INDEX ON CALLLOG(CALLID)  --非聚焦索引

    DMV查看有关缺失索引的详细信

    SELECT * FROM sys.[dm_db_missing_index_details] order by index_handle

    查看SQL语句的实际执行情况

    set statistics profile on 

    select * from calllog

    set statistics profile off

    查看 查询计划的选择依据

    dbcc show_statistics (Products, IX_CategoryID)
    注:它需要二个参数,1. 表名,2. 索引名

    清空执行计划缓存(在查看SQL执行情况前,用于清除上次查询留下的缓存计划)

    DBCC DROPCLEANBUFFERS

    转:https://blog.csdn.net/fsw4848438/article/details/44594601

  • 相关阅读:
    对html与body的一些研究与理解
    关于文字内容溢出用点点点(...)省略号表示
    CSS3中border-image属性详解
    从TCP协议的原理来谈谈rst复位攻击
    关于Oracle中sysoper这个系统权限的问题
    翻翻git之---有用的欢迎页开源库 AppIntro
    椒盐噪声
    Codeforces Beta Round #1 A. Theatre Square
    log4j:WARN Please initialize the log4j system properly解决的方法
    微信平台开发——日历服务
  • 原文地址:https://www.cnblogs.com/superfeeling/p/15606031.html
Copyright © 2011-2022 走看看