如何理解MSSQL数据库后台进程

技术如何理解MSSQL数据库后台进程本篇文章为大家展示了如何理解MSSQL数据库后台进程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。与Oracle数据库类似,微软数据库产品MS

本文向您展示了如何理解MSSQL数据库的后台进程。内容简洁易懂。它一定会让你的眼睛发光。希望通过这篇文章的详细介绍,你能有所收获。

类似于Oracle数据库,微软数据库产品MSSQL也有很多后台进程,保证数据库系统的高效正常运行。因为MSSQL采用了线程模型,所以应该叫后台线程。为了大家容易理解,我们暂时称之为后台进程。让我们简单了解一下:

类似于Oracle数据库,微软数据库产品MSSQL也有很多后台进程,保证数据库系统的高效正常运行。因为MSSQL采用了线程模型,所以应该叫后台线程。为了大家容易理解,我们暂时称之为后台进程。让我们简单了解一下:

1.数据写入相关流程

1) Lazy writer:这个过程用于确保系统缓冲池中有足够的空闲内存。该过程定期扫描缓冲区内存页面,找出不常用的内存页面,并将其移出缓冲区。在此期间,脏页数据将被写入磁盘,缓冲区将首先被删除。

2)急切写入器:与懒惰写入器类似,这个进程也负责将缓冲区中的脏页写出到磁盘,但它写出来的这些内存页主要与非日志(如大容量插入、选择进入)操作有关,在此期间允许并行读写新页。

3)检查点:该进程定期扫描缓冲区以查找特定数据库的脏页,并将这些脏页写入磁盘。通过创建一个时间点,在此时间点之前,所有脏页都将被写入磁盘,可以减少最近数据库恢复所需的时间。用户可以通过提交检查点命令来请求检查点操作,或者系统可以根据消耗的日志空间或时间自动生成检查点操作。此外,系统中的一些事件也会导致检查点,如添加或删除数据文件或日志文件、关闭实例等。当检查点出现时,进程会将缓冲区中的脏页写入磁盘,而不管相关事务是否已提交。

值得一提的是,这三个后台进程是异步的,即它们可以在执行IO操作的同时做其他工作,之后再检查之前IO的完成情况。

2.事务日志相关流程

1)日志编写器:该进程负责将事务日志从缓冲区刷新到磁盘日志文件。在MSSQL2016之前,每个实例中只有一个日志编写器进程,因此该进程负责实例中的所有数据库日志缓冲区。进程通过异步IO将日志缓冲区写入磁盘。当用户提交事务时,该过程会阻止用户的会话,直到相关数据库的日志缓冲区数据被刷到磁盘上。同时,该进程可以继续其他数据库日志缓冲区的工作。MSSQL系统中的很多事件都会触发日志编写器进程将日志缓冲区的内容写到磁盘上,比如:会话提交当前事务、日志缓冲区已满、检查点等。

此外,当进程将lredo记录从日志缓存/缓冲区写入磁盘日志文件时,写入单位可以更改,范围从512到64k。在这方面,与数据缓冲区写入过程不同,最小值必须是数据页大小。

2)备份日志:虽然这个过程严格来说不是后台过程,但因为是用来完成用户发出的“备份日志……”命令,所以和事务日志有着密切的关系。

3.相关过程的系统监控和管理

1)信号处理程序:这个过程主要负责MSSQL实例的启动和关闭。

2)任务管理器:该进程还会参与MSSQL实例的启动过程,主要用于启动与该实例相关的所有数据库。此外,这个进程还负责启动MSSQL的一些内部任务,并监控实例服务进程和启动时间。

3)资源监控:这个过程主要负责监控内存级别的使用情况和状态,必要时调整MSSQL相关的缓冲区。当检测到没有正在处理的用户需求时,将自动进入空闲状态。

4)锁监控器:该进程负责监控阻塞时间超过系统相关阈值的场景,同时还负责解决死锁问题。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/124812.html

(0)

相关推荐

  • pythondjango3教程(python的django是什么架构)

    技术Python的django-is-core有什么功能这篇文章主要介绍“Python的django-is-core有什么功能”,在日常操作中,相信很多人在Python的django-is-core有什么功能问题上存在疑

    攻略 2021年12月17日
  • 怎么使用css z index属性

    技术怎么使用css z index属性本篇内容主要讲解“怎么使用css z index属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用css z index属性”吧

    攻略 2021年11月12日
  • 如何理解C++属性具体概念

    技术如何理解C++属性具体概念本篇文章给大家分享的是有关如何理解C++属性具体概念,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++编程语言中的属性是一个

    攻略 2021年10月27日
  • 如何通过串口控制树莓派

    技术如何通过串口控制树莓派这篇文章给大家分享的是有关如何通过串口控制树莓派的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过串口控制树莓派需求在没有网络,没用键盘,没有显示器的情况下,控制树莓

    攻略 2021年11月20日
  • css和html的区别有哪些

    技术css和html的区别有哪些这篇文章主要介绍“css和html的区别有哪些”,在日常操作中,相信很多人在css和html的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css

    攻略 2021年11月9日
  • 初探卡特兰数及有关问题

    技术初探卡特兰数及有关问题 初探卡特兰数及有关问题星期日,哥参加了上大学以来的第一次计算导论与程序设计的上机考试,可是最后一道题没AC。
    这道题给了卡特兰数的一种通项公式,让你求卡特兰数的第n项。
    从考

    礼包 2021年11月26日