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

 

转载于:https://www.cnblogs.com/zfylzl/p/5963064.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值