数据库的服务器卡顿问题怎么解决?

    作者:波波说运维更新于: 2019-09-28 15:56:57

    记一次生产环境SQL Server服务器卡顿问题解决--内存分配不当。数据库(Database)是按照 数据结构来组织、 存储和管理数据的建立在计算机存储设备上的仓库。

    简单来说是本身可视为 电子化的文件柜——存储电子 文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

    概述

    最近有台数据库做了迁移,然后运维人员过了一段时间发现这台服务器非常卡,连远程登录都要很久,下面记录下其中的解决过程。

    1、查看资源情况

    可以发现内存爆满了,而排名第一的正是sqlserver的进程

    数据库的服务器卡顿问题怎么解决_数据库_数据分析_数据管理_课课家

    2、查看sqlserver内存分配

    SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。

    可以看到迁移之前分配的内存是10G,但迁移后的服务器只有8G内存。

    3、调整sqlserver内存

    这里可以把最大服务器内存改成1G,确定后内存就会被强制释放,然后把最大服务器内存改成合适的值。

    4、查看内存分配

    正常只启动sqlserver服务器内存消耗2.34G,打开F5客户端到3.1G,也就是消耗0.7G内存,最后打开下载数据的客户端,应该是下载数据都缓存到sqlserver内存里面了,所以内存一直在增加..目前稳定在5.17G内存,也就是这个下载消耗了2.2G内存。

    5、查看目前内存状态:

    DBCC MemoryStatus

    这些内存一般都是Sql Server运行时候用作缓存的:

     

    1) 数据缓存:执行个查询语句,Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。

    2)执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。
    严格来说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

课课家教育

未登录