博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
超闩锁和子闩锁如何工作的
阅读量:4604 次
发布时间:2019-06-09

本文共 616 字,大约阅读时间需要 2 分钟。

原文:

闩锁是应用在用户模式下,在读写锁结构应用在sql server 中用来保护内部结构。trace latch 是sql server 使用闩的例子,被trace controller 类创建并且使用。不管你是开着trace或者关了trace,当物理状态被修改的时候,都会分配一个x模式来阻止其他线程访问数据。

 
sql server 有个进程来监视某一些latch,如果负载比较重,并且是只读的访问,那么就可以变成子闩。
每个闩结构都包含了状态(当天的闩模式),等待队列,其他状态信息。每次要从闩上获取信息都要使用内部锁定(interlock)模式。那么有些闩就变成热点闩从而影响性能。
为了增加性能,那么就减少全局的信息
 
 
使用超闩锁和子闩锁,这样每个调度器分配一个 子闩锁。子闩锁访问超闩锁来获取信息,那么就不需要使用内部锁定的方式来访问被保护的对象。当调度器调用资源的时候,会通过超闩锁来重新定向到保护的对象。这种方式在只读访问能大大的提升性能,因为减少了热点。但是在写访问的时候,调度器必须对每个子闩都处理,并降级为普通的闩。
因此sql server 使用了自动升级闩和降级闩 来增加性能
 
posted on
2012-03-10 16:56 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/Amaranthus/archive/2012/03/10/2389298.html

你可能感兴趣的文章
nginx获取经过层层代理后的客户端真实IP(使用正则匹配)
查看>>
YII实现dropDownList 联动事件
查看>>
历届试题 高僧斗法
查看>>
linux命令系列 stat & touch
查看>>
[Tools] Webstorm Github的配置与使用
查看>>
鬼谷子绝学
查看>>
用Html5与Asp.net MVC上传多个文件
查看>>
Xcode中匹配的配置包的存放目录
查看>>
JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
查看>>
MySQL服务使用
查看>>
C语言练手自己编写学生成绩管理系统
查看>>
20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
查看>>
How to lisp Lisp output a paragraph"500 Tph Dry Process Cement Plant Machinery Manufacturers"
查看>>
OpenMobile's Application Compatibility Layer (ACL)
查看>>
竞价广告系统-广告检索
查看>>
强哥PHP面向对象学习笔记
查看>>
[转]基于.NET平台常用的框架整理
查看>>
Symbian (Read Inbox)读取收件箱的内容
查看>>
良好的编程规范
查看>>
struts2 入门
查看>>