sql server中PageLatch和PageIOLatch等待
sql server中PageLatch和PageIOLatch等待
sql server中PageLatch和PageIOLatch等待一、什么是Latch
Latch是SQL server内部用来同步资源访问的一个数据结构,和操作系统的critical section 或 ReaderWriterLock类似。Latch保护了那些想保护的资源,使得访问同步有序。比方说,当某个线程获得某个资源的latch的独占使用权的时候,别的线程如果也需要访问这个latch则它必须等待。
二、PageLatch
1、PAGELATCH_x类型的latch是SQL Server在缓冲池里的数据页面上经常加的一类latch。它用来同步访问buff pool中的数据页。SQL server中的Buff pool里每个page都有一个对应的LATCH。 要访问某个PAGE必须首先获得这个PAGE的LATCH。
2、在访问数据库的数据页(Data Page或Index Page)时,如果相应的buffer已经存在于Buffer Pool中,那么SQL Server先获取buffer的latch,这个Latch就是 PageLatch,然后读取Buffer中的数据。
3、PageLatch是Buffer Latch, 用来保护:Data page,Index Page, 系统page(PFS,GAM,SGAM,IAM等);在数据更新时,分配新的page,或拆分 index Page,会产生PageLatch 等待。
三、PageIOLatch
1、如果数据页不存在于Buffer Pool中,SQL Server必须从Disk中将数据加载到内存,此时,SQL Server在Buffer Pool中预留一个Buffer,并为该Buffer申请一个PageIOLatch_EX,表示正在加载Data Page或Index Page到内存;如果数据页已经加载到内存,那么 PageIOLatch_EX 释放。
2、在从Disk读取到Buffer期间,需要访问该数据页的所有Thread都需要等待,等待类型是:PageIOLatch_SH,PageIOLatch_EX 和 PageIOLatch_SH是不兼容的。
3、直到Disk的读取过程完成,PageIOLatch_EX释放,Thread申请到PageIOLatch_SH,表示数据页已经存在于Buffer Pool中。
四、当等待中出现很多PAGELATCH_ 等待,一般说明
1、SQL Server没有明显的内存和磁盘瓶颈。
2、应用程序发来大量的并发语句在修改同一张表格里的记录,而表格架构设计以及用户业务逻辑使得这些修改都集中在同一个页面,或者数量不多的几个页面上。这些页面有的时候也被称为Hot Page。这样的瓶颈通常只会发生在并发用户比较多的、典型的OLTP系统上。
3、这种瓶颈是无法通过提高硬件配置解决的,只有通过修改表格设计或者业务逻辑,让修改分散到尽可能多的页面上,才能提高并发性能。
五、当等待中出现很多PAGELATCH_ 等待,一般说明
当你的系统出现大量的 PAGEIOLATCH_ 类等待,说明你磁盘可能存在压力(磁盘速度不能满足当前业务需求)或你的内存不够用,不能缓存业务常用数据而经常要与磁盘交互!
- sql server 进阶教程(SQL Server游标的介绍与使用)
- sql server中PageLatch和PageIOLatch等待
- SQL Server 各个版本支持的功能
- sqlserver 比较日期(解析SQL Server中SQL日期转换出错的原因)
- sqlserver怎么修改表结构(SQL Server中修改“用户自定义表类型”问题的分析与方法)
- vs连接sql语句(vs code连接sql server数据库步骤及遇到的问题小结)
- sqlserver新建连接服务器卡住(SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案)
- sql server中check约束
- sqlserver最大数据导入量(SQL Server批量插入数据案例详解)
- sql server数据库权限(SQL Server中通用数据库角色权限的处理详解)
- SQL Server中SET赋值和SELECT赋值
- 无法启动sql serveragent(SQL Agent服务无法启动的解决方法)
- sqlserver 高级查询(利用 SQL Server 过滤索引提高查询语句的性能分析)
- 数据库sql位置更换磁盘(SQL SERVER迁移之更换磁盘文件夹的完整步骤)
- SQL Server ltrimrtrim函数的用法(SQL Server ltrimrtrim 去不掉空格的原因分析)
- sql server作业的调度信息中各列的含义
- 富士胶片 中国 我们对上海的信心没有任何改变(富士胶片中国)
- 赢麻了 富士公布2021年度财报 营利同比增长240(富士公布2021年度财报)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
热门推荐
- canvas宽高技巧(canvas画图被放大且模糊的解决方法)
- python按顺序遍历字典(Python字典遍历操作实例小结)
- js使用递归解析(关于JavaScript递归经典案例题详析)
- zabbix监控数据库(利用zabbix监控ogg进程Windows平台)
- CSS中overflow的用法
- dedecms5.7能否用5.5的模板(dedecms 5.5 伪静态设置方法)
- JS中sort()和reverse()
- phpstudy服务器怎么设置(PHPStudy打开网页很慢的原因及解决方案)
- laravel关闭错误提示(解决laravel session失效的问题)
- 网页http400错误请求怎么解决(HTTP 错误 403.1禁止访问:禁止执行访问的完美解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9