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.重启服务器(清空占有的缓存,关掉线程,但是只能解决一时问题)

  • 相关阅读:
    android学习地址
    Android获取屏幕高度、标题高度、状态栏高度详解
    学习地址(杂)
    获取控制台应用程序自己的文件名
    学习地址
    如何分配数据库角色权限
    android 近百个源码项目
    深入理解默认构造函数
    深入理解拷贝构造函数
    读权限和执行权限的差别
  • 原文地址:https://www.cnblogs.com/zfylzl/p/5963064.html
Copyright © 2011-2022 走看看