SQLSERVER中KeyHashValue的作用(下)

SQLSERVER中KeyHashValue作用(下) 昨天中午跟高文佳童鞋讨论了keyhashvalue的作用,到最后还是没有讨论出结果 昨天晚上德国的兄弟傅文伟做了一下实验,将实验结果交给我 感谢他们 SQLSERVER中KeyHashValue的作用(上) 虽然对于keyhashvalue的研究还有很

SQLSERVER中KeyHashValue的作用(下)

昨天中午跟高文佳童鞋讨论了keyhashvalue的作用,到最后还是没有讨论出结果

昨天晚上德国的兄弟傅文伟做了一下实验,将实验结果交给我

感谢他们

SQLSERVER中KeyHashValue的作用(上)

虽然对于keyhashvalue的研究还有很多问题还没有解决,但是基本可以确定“keyhashvalue是用来锁定资源的”

而不是我之前说的,在seek的时候根据这个KeyHashValue来快速查找到对应的记录

误导大家了,真的不好意思!!!!

资源                                            说明
RID                             用于锁定堆(heap)中的某一行
KEY                              用于锁定索引上的某一行,或者某个索引键
PAGE                            锁定数据库中的一个8KB页,例如数据页或索引页
EXTENT                        一组连续的8页(区)
HOBT                           锁定整个堆或B树的锁
TABLE                          锁定包括所有数据和索引的整个表
FILE                                   数据库文件
APPLICATION                应用程序专用的资源
METADATA                        元数据锁
ALLOCATION_UNIT             分配单元
DATABASE                     整个数据库

 

KEY是靠生成的这个KeyHashValue来进行锁定索引中的行

KEY                              用于锁定索引上的某一行

 

为什么需要这个KeyHashValue???

由于很苟很苟没有写C#代码,不过我觉得从C#的多线程同步来理解会更加好

例如:

lock 语句    lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代

码,则它将一直等待(即被阻止),直到该对象被释放,大家可以把同步对象理解为KeyHashValue

 c# 多线程同步

 c# 多线程同步

大家还是看给出的文章链接吧,因为本人很苟很苟没有写C#代码了,细节的东西看文章比较好

 

 

网上有很多相关的文章:

火山写作 火山写作

字节跳动推出的中英文AI写作、语法纠错、智能润色工具,是一款集成创作、润色、纠错、改写、翻译等能力的中英文 AI 写作助手。

火山写作 105 查看详情 火山写作

例如

建立索引的时候为什麽有900bytes的限制

为了性能,不可能让您在比较大的数据类型下,而且存储了非常多的数据的字段上建立索引

因为这样做的话,要计算出KeyHashValue就会非常消耗性能

这篇文章:Improvement in minimizing lockhash key collisions in SQL Server 2008R2 and its impact on concurrency

Since the key to a row could be as large as 900 bytes, using the real key values would have inflicted larger memory consumption.

引入

The solution to this problem was found when designing SQL server 7.0 in 1996 and 1997 by using the key of the row and apply

a hash algorithm to it which then results in a 6 byte long lockhash value 

 

我将这些文章整理到我的文章里:undocumented virtual column  %%lockres%%

 

在SQLSERVER2005下跟SQLSERVER2012下,建立相同的聚集索引,你会看到在SQL2005下,表的聚集索引页面有KeyHashValue

但是在SQL2012下,表的聚集索引页面的KeyHashValue列全部为NULL

由于我没有SQL2008,所以没有测试SQL2008,估计从SQL2008开始,,KeyHashValue开始有些变化了

在SQL2005里,你使用dbcc page查看数据页面,数据页面里的每行记录是没有显示KeyHashValue的,不知道要打开哪个跟踪标记才能看到

在SQL2005里唯一能看到数据页面中的keyhashvalue只有使用%%lockres%%

 

而在SQL2012,不用做任何设置,使用dbcc page就可以看到KeyHashValue

当然也可以用%%lockres%%:

lockres表名

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/537366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 13:21:28
下一篇 2025年11月9日 13:27:03

相关推荐

  • css3选择器的作用

    CSS3选择器的作用及代码示例 CSS(层叠样式表)是一种用于定义网页样式的语言,通过CSS3选择器,我们可以精确地选择并修改页面中的特定元素,从而实现更灵活的样式控制。本文将介绍CSS3选择器的作用,并提供一些具体的代码示例。 一、CSS3选择器的作用 精确选择元素:CSS3选择器可以根据元素的标…

    2025年12月24日
    000
  • 什么是CSS的margin-left属性及其功能

    CSS的margin-left属性是用来设置元素的左外边距的。它决定了元素与其父元素左边缘之间的距离。 margin-left属性的作用主要有以下几点: 控制元素的水平位置:通过设置margin-left的值,可以将元素向左移动或向右移动,从而控制元素在父元素中的水平位置。负值的margin-lef…

    2025年12月24日
    000
  • 解密AJAX参数:详解常见参数及其功能

    AJAX参数大揭秘:详解常用参数及其作用,需要具体代码示例 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)已经成为了不可或缺的一部分。它通过JavaScript和XML(现在通常是JSON)的组合,实现了在不刷新整个页面的情况下与服务器进行数据交互的能…

    2025年12月24日
    000
  • 解析粘性定位的作用与优势

    粘性定位的作用与优势解析 随着移动互联网的迅猛发展,用户对于网站的要求也越来越高。在网页设计中,如何提供更好的用户体验成为了一个重要的话题。而粘性定位就是一种能够提升用户体验的设计技术,它的作用与优势备受关注。 粘性定位,顾名思义,指的是在网页上固定某个元素,使其始终处于可见的位置。当用户在浏览网页…

    2025年12月24日
    000
  • DOM操作指南:批量移除子元素的特定CSS类

    本教程详细介绍了如何使用JavaScript高效地从指定父元素下的所有子元素中批量移除特定的CSS类。我们将通过document.querySelectorAll选择目标元素,结合forEach迭代并利用classList.remove方法实现类移除,同时涵盖如何通过事件监听器触发此操作,确保代码的…

    2025年12月23日
    000
  • Angular项目中自定义CSS样式管理:从组件级到全局及特殊场景处理

    本文详细探讨了在Angular项目中有效管理和应用自定义CSS样式的策略。内容涵盖了组件级样式与全局样式的正确导入方法,并深入解析了Angular Material等库中CDK Overlay组件的特殊样式定制需求,提供了通过全局样式和`panelClass`属性实现精准控制的解决方案,旨在帮助开发…

    2025年12月23日
    000
  • JavaScript日程调度器:实现数据本地存储与页面重载持久化

    本教程详细讲解如何利用web storage api中的localstorage,在javascript日程调度器中实现用户输入数据的持久化。通过示例代码演示了数据的保存、加载和更新机制,确保页面刷新后内容不丢失,从而提升用户体验和应用实用性。 在构建Web应用程序时,尤其是像日程调度器这类需要用户…

    2025年12月23日
    000
  • 如何为特定DIV元素应用模拟媒体查询规则

    本文旨在探讨在不使用iframe的情况下,如何为网页中的特定div元素模拟应用独立的媒体查询规则,尤其适用于a/b测试或集成不同响应式组件的场景。通过结合使用css的`max-width`属性和全局媒体查询,我们可以有效地控制单个元素的尺寸和行为,使其在特定视窗大小下呈现出预期的响应式布局,同时不影…

    2025年12月23日
    000
  • JavaScript动态内容更新:解决图片元素未刷新的命名冲突问题

    本文深入探讨了javascript中动态更新内容时,图片元素未能正确刷新的常见问题。核心原因在于自定义函数参数与全局dom元素引用之间存在的命名冲突,导致图片src属性赋值操作指向了错误的变量。通过重命名函数参数以避免变量遮蔽,可以有效解决此问题,确保页面所有内容(包括图片)能够同步且准确地更新。 …

    2025年12月23日
    000
  • 如何编辑网页HTML中的打印样式_如何编辑网页HTML中打印时的CSS样式代码

    首先使用@media print定义打印专用样式,隐藏非必要元素并设置物理单位;其次可通过内联style标签引入打印样式,适用于快速调整;然后推荐链接外部print.css文件以提升维护性;最后可结合JavaScript动态控制打印前后样式变化,确保输出效果。 如果您在打印网页时发现样式不符合预期,…

    2025年12月23日
    000
  • JavaScript动态列表项中删除按钮的精确位置控制

    本教程旨在解决javascript动态创建列表项时,删除按钮位置与预期不符的问题。核心在于理解dom元素创建与追加的顺序。通过调整javascript代码中按钮和文本内容的追加顺序,确保新生成的删除按钮能够正确显示在列表项文本的左侧,从而实现一致的用户界面和功能。 引言 在现代Web应用开发中,动态…

    2025年12月23日
    000
  • JS如何动态加载和解析外部HTML文件_JS动态加载和解析外部HTML文件教程

    使用fetch可动态加载HTML并插入指定容器,但需手动处理脚本执行;通过创建新script元素可确保内联或外链脚本运行;若需隔离环境则推荐iframe嵌入完整页面;在模块化场景中可用异步函数封装HTML片段加载,提升复用性。 在网页开发中,有时需要将某个外部HTML文件的内容动态加载到当前页面,并…

    2025年12月22日
    000
  • React与原生JavaScript中动态创建元素事件绑定失效问题解析与最佳实践

    当在React或原生JavaScript中动态插入HTML字符串时,传统的onClick事件绑定可能失效,导致ReferenceError。本文将深入解析此问题,并提供在React中利用JSX和合成事件、在原生JS中利用addEventListener的正确解决方案,确保动态元素的事件功能正常运作。…

    2025年12月22日
    000
  • 在HTML中通过onClick属性直接调用JavaScript函数

    本文探讨了如何在HTML元素的onClick属性中直接调用JavaScript函数。核心在于被调用的函数必须处于全局作用域,浏览器才能在执行时找到它。虽然这种方法对于简单场景有效,但对于大型应用,推荐使用addEventListener实现更好的事件管理,或采用React、Vue等声明式框架以提升可…

    2025年12月22日
    000
  • HTML中导入ES模块函数并安全绑定DOM事件的实践

    本文旨在解决在HTML onload 事件中直接使用ES模块导出函数时遇到的 Uncaught ReferenceError 错误。文章解释了ES模块的独立作用域导致函数无法全局访问的问题,并提供了一种健壮的解决方案:通过在HTML内联 成功加载了ES模块,这只是将模块及其导出的内容加载到其自身的模…

    2025年12月22日
    000
  • 深入解析HTTP状态码300的功能与作用

    深入解析HTTP状态码300的功能与作用 一、引言HTTP状态码是指在HTTP协议中,服务器向客户端返回的状态信息。它是一个三位数字,分别表示不同的状态,用于告知客户端请求的处理结果。其中,HTTP状态码300代表多种选择。在本文中,我们将深入解析HTTP状态码300的功能与作用,帮助读者更加全面了…

    2025年12月22日
    000
  • 理解HTML全局属性的含义和功能

    了解HTML全局属性的意义和作用 HTML全局属性是指可以应用于HTML中任何标签的属性,它们在整个HTML文档中都起作用。全局属性的使用可以提供一些通用的功能和控制,使得网页更加灵活和易于管理。本文将介绍HTML全局属性的意义和作用,帮助读者更好地理解和运用这些属性。 全局属性主要由以下几个属性组…

    2025年12月22日
    000
  • 链接标签的功能及用途

    link标签有什么作用,需要具体代码示例 link标签是HTML中最常见的一种标签之一,它主要用于在HTML文档中引入外部资源,比如CSS样式表、字体文件等。在网页开发中,link标签有着非常重要的作用,它可以提高网页的可维护性和性能,并且使得HTML结构更加清晰和易读。 link标签的常用属性有以…

    2025年12月22日
    000
  • 理解全局属性在HTML中的重要性及功能

    了解HTML全局属性的重要性与作用 随着互联网的快速发展,网页已经成为人们获取信息、交流、娱乐等活动的重要平台。而作为构建网页的基础语言之一,HTML(超文本标记语言)的应用也变得越来越广泛。在编写HTML代码时,除了标签和标签内的内容外,还有一些全局属性也起到了重要的作用。全局属性是可以应用于HT…

    2025年12月22日
    000
  • 解读HTTP状态码303和307:探究重定向的定义和功能

    HTTP状态码重定向:解析重定向的含义和作用 引言:在HTTP协议中,HTTP状态码用于表示服务器在处理请求时的响应状态。其中,重定向状态码用于指示客户端需要进一步采取的行动,以完成请求的处理。本文将对重定向的含义和作用进行解析。 一、重定向的含义重定向(Redirection)是指当客户端发出的请…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信