如何理解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)

相关推荐

  • 怎么搭建Solr8与ikanalyzer

    技术怎么搭建Solr8与ikanalyzer今天就跟大家聊聊有关怎么搭建Solr8与ikanalyzer,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。服务安装并启

    攻略 2021年10月19日
  • 利用PHP使用Redis常见的使用场景有哪些

    技术利用PHP使用Redis常见的使用场景有哪些这篇文章主要为大家展示了“利用PHP使用Redis常见的使用场景有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“利用PHP

    攻略 2021年11月25日
  • mysql中如何将日期转为时间戳

    技术mysql中如何将日期转为时间戳本篇内容主要讲解“mysql中如何将日期转为时间戳”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中如何将日期转为时间戳”吧!

    攻略 2021年12月2日
  • Oracle锁的面试题有哪些

    技术Oracle锁的面试题有哪些本篇内容介绍了“Oracle锁的面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

    攻略 2021年11月5日
  • mobx报错

    技术mobx报错 mobx报错错误信息
    Support for the experimental syntax 'decorators-legacy' isn't currently enab
    安装mo

    礼包 2021年12月13日
  • 黑盒测试、白盒测试与灰盒测试方法

    技术黑盒测试、白盒测试与灰盒测试方法 黑盒测试、白盒测试与灰盒测试方法测试奇谭,BUG不见。
    大家好,我是谭叔。
    对于黑盒、白盒与灰盒测试方法的理解,几年前我在某乎做过一个概念性的回答,当时提问者询问:

    礼包 2021年12月24日