zoukankan      html  css  js  c++  java
  • sqlserver性能调优常用方法

    1.检查数据库空间使用情况,查看哪些表占用了比较大的磁盘空间

    执行语句如下:

    select o.name,
            SUM(p.reserved_page_count) as reserved_page_count,
            SUM(p.used_page_count) as used_page_count,
            SUM(
            case
            when(p.index_id<2) then (p.in_row_data_page_count+
            p.lob_used_page_count+p.row_overflow_used_page_count)
            else p.lob_used_page_count+p.row_overflow_used_page_count
            end
            ) as DataPages,
            SUM(
            case
            when (p.index_id<2) then row_count
            else 0
            end
            ) as rowCounts
            from sys.dm_db_partition_stats p inner join sys.objects o
            on p.object_id=o.object_id
            group by o.name
            order by rowCounts desc
    View Code

    2.通过活动监视器查看性能消耗

    通过磁盘IO,CPU占用时间,逻辑读写的次数来判断哪些语句消耗性能比较大

    3.通过执行时间,磁盘IO和执行计划查看sql语句情况,包括编译执行时间,索引扫描查找,读写等等

    查看sql语句的执行时间和表扫描,逻辑读写情况的语句:

    SET STATISTICS TIME ON
    SET STATISTICS IO ON

    预读:在查询计划生成的过程中,用统计信息去硬盘读取数据到缓存中,读一次就是读了一页数据

    物理读:查询计划生成好以后,如果缓存缺少所需要的数据,再从硬盘里读取缺少的数据到缓存里,读一次就是读了一页数据

    逻辑读:直接从缓存中读取数据,读一次就是读了一页数据,可以通过索引减少逻辑读的次数

    因为物理读需要从硬盘从读取数据,会增加IO读开销,所以尽量减少物理读

     4.处理内存占用过高方法

    1.增加服务器内存
    2.设置sqlserver占用服务器内存的大小
    3.清空sqlserver占用缓存
    4.查找占用内存比较大的sql语句进行优化,这个是主要办法
    5.重启服务器(清空占有的缓存,关掉线程,但是只能解决一时问题)

  • 相关阅读:
    安装cloudbase-init和qga批处理
    Windows添加自定义服务、批处理文件开机自启动方法
    Windows批处理:自动部署常用软件(静默安装)
    windows auto activate
    XML转译字符
    Leetcode908.Smallest Range I最小差值1
    Leetcode917.Reverse Only Letters仅仅反转字母
    Leetcode896.Monotonic Array单调数列
    Leetcode905.Sort Array By Parity按奇偶排序数组
    Leetcode892.Surface Area of 3D Shapes三维形体的表面积
  • 原文地址:https://www.cnblogs.com/zfylzl/p/5963064.html
Copyright © 2011-2022 走看看