SQL Server tempdb 闩锁争用

news2024/12/23 1:53:32

当你反复创建和删除 TempDb 对象(临时表、表变量等)时,你可能会在 tempdb 中看到页面的闩锁争用。当你注意到tempdb 上的 PAGELATCH_* 争用(sysprocesses 中的等待资源以 2: 开头)时,请检查闩锁等待是否在 PFS、GAM 或 SGAM 页面上。当 tempdb 上存在闩锁争用时,你将看到许多会话在PAGELATCH_* 上等待,类似如下等等。

Wait type                Wait resource

PAGELATCH_UP       2:15:121320

PAGELATCH_UP       2:15:121320

上面的会话正在等待资源2:15:121320,数据库id为2,即tempdb,文件号为15,页码为121320。121320 是 8088 的倍数,所以它是一个 PFS 页面,如果不是 PFS 页面,我们也可以识别正在等待的页面是 GAM 还是 SGAM 页面。

如何识别页面是 PFS、GAM、IAM

PFS 页面:一个 PFS 页面在 8088 个页面中出现一次。SQL Server 将尝试在每个 PFS 间隔 (8088页) 的第一页上放置一个 PFS 页。文件头部页在第一个,PFS 页在其后。(页面 ID 从 0 开始,因此第一个 PFS 页面位于页面 ID 1)。如果(page number)/8088 是整数值,则该页为 PFS 页面。

GAM 页面: GAM页面是数据文件中的第 2 页,下一个 GAM 页面放置在第一个 GAM 页面之后的 511230 页(GAM 间隔)。如果 (page number-1)/511230 是整数值,那么页面就是 GAM 页面。

SGAM页面: SGAM 页面是数据文件中的第 3 页,下一个 SGAM 页面放置在第一个 SGAM 页面之后的 511230 Page 处。如果 (pagenumber-2)/511230 是整数,则该页面是 GAM 页面。

何解决闩锁争用?

  • 增加 TEMPDB 数据文件文件的数量,大小均等。这也有通用规则,如果逻辑处理器的数量小于或等于 8,则应使用与逻辑处理器相同数量的数据文件。如果逻辑处理器的数量大于 8,则使用 8 个数据文件。如果争用仍然存在,则将数据文件的数量进一步增加 4 的倍数,不过一旦达到 32 个文件,就可能没什么效果了。 

  • 启用服务器端跟踪标志 1118。跟踪标志 1118 用于启用对象的专用扩展区分配,而不是从混合扩展区分配页面。

  • 如果你在执行上述两个步骤后在 PFS 页面上还能看到闩锁争用,那么唯一的选择是修改你的代码以限制 tempdb 的使用。

  • 如果你在 2:1:103 看到争用(第 103 页用于系统表 sys.sysmultiobjrefs。该表管理每个数据库中创建的对象之间的关系)。减少此页面上的争用的唯一方法是减少关系。使用主键创建大量临时表的示例可能会导致这种争用,因为表和主键约束之间的关系必须在 sys.sysmultiobjrefs 中更新。

最佳实践是什么?

  1. 创建多个 tempdb 数据文件,而不是创建 1 个大文件,并在所有 SQL Server 实例中均等地调整它们的大小。

  2. 默认设置TF1118。

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/450519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【语音之家】AI产业沙龙 —— 三星语言智能团队ICASSP2023论文分享会

由CCF语音对话与听觉专委会 、中国人工智能产业发展联盟(AIIA)评估组、三星电子中国研究院、语音之家、希尔贝壳共同主办的【语音之家】AI产业沙龙——三星语言智能团队ICASSP2023论文分享会,将于2023年4月25日18:30-20:20线上直播。 沙龙简介…

ERP系统有哪些功能模块?

一、ERP系统是什么 现在市面上的管理软件有很多,不少企业都会去选择一些操作简单便捷的软件,优化工作流程,提高工作效率,其中ERP系统就是常见的一种,ERP是企业资源计划(Enterprise Resource Planning)的简称&#xff…

深入了解Lock同步锁的优化

大家好,我是易安。 今天我们来简单谈谈在JDK1.5之后,Java提供的Lock同步锁。 相对于需要JVM隐式获取和释放锁的Synchronized同步锁,Lock同步锁(以下简称Lock锁)需要的是显示获取和释放锁,这就为获取和释放锁…

防止机械/移动硬盘休眠 - NoSleepHD

防止机械/移动硬盘休眠 - NoSleepHD 前言解决方案计算机硬盘移动硬盘 前言 机械硬盘休眠后唤醒需要一定时间,且频繁的启动和停止并不有利于硬盘的寿命,因此可根据自身需求防止机械硬盘休眠,下文以Win10系统为例介绍解决方案。 值得一提的是…

Java核心技术 卷1-总结-9

Java核心技术 卷1-总结-9 使用异常机制的技巧为什么要使用泛型程序设计定义简单泛型类泛型方法类型变量的限定 泛型类型的继承规则 使用异常机制的技巧 1.异常处理不能代替简单的测试。 使用异常的基本规则是:只在异常情况下使用异常机制。 2.不要过分地细化异常。…

第三章(3):深入理解Spacy库基本使用方法

第三章(3):深入理解Spacy库基本使用方法 本章主要介绍了Spacy库的基本使用方法,包括安装、加载语言模型、分句、分词、词性标注、停用词识别、命名实体识别、依存分析和词性还原等内容。重点介绍了每个步骤的具体实现方式和应用场…

【TortoiseGit】安装和配置

转自 【TortoiseGit】TortoiseGit安装和配置详细说明_No8g攻城狮的博客-CSDN博客 一、TortoiseGit 简介 TortoiseGit 是基于 TortoiseSVN 的 Git 版本的 Windows Shell 界面。它是开源的,可以完全使用免费软件构建。 TortoiseGit 支持你执行常规任务,…

出道即封神的ChatGPT,现在怎么样了?ChatGPT想干掉测试人员,做梦去吧

从互联网的普及到智能手机,都让广袤的世界触手而及,如今身在浪潮中的我们,已深知其力。 前阵子爆火的ChatGPT,不少人保持观望态度。现如今,国内关于ChatGPT的各大社群讨论,似乎沉寂了不少,现在…

Mosquitto vs NanoMQ | 2023 MQTT Broker 对比

引言 Mosquitto 和 NanoMQ 都是用 C/C 开发的快速轻量的开源 MQTT Broker,完全支持 MQTT 3.1.1 和 5.0。 虽然 Mosquitto 和 NanoMQ 都具有轻量级和低资源消耗的特点,但它们的架构设计却截然不同。Mosquitto 采用单线程模式,而 NanoMQ 则基…

数据结构:单向链表(无头非循环)

朋友们、伙计们,我们又见面了,本期来给大家解读一下数据结构方面有关链表的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C语言专栏:C语言:从入门到…

【云原生】prometheus监控告警之安装部署alertmanager实战

前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 &#xff0c…

Python基础知识:绝对/相对路径等

1 Python处理相对/绝对路径 由于本人在导入数据时,十分喜欢相对路径(在数据的上一级文件中,新建文件夹保存处理整个代码处理过程),因此,将首先简单介绍下Python中相对/绝对路径的处理。 1.1 绝对路径 一…

状态压缩DP-蒙德里安的梦想

题意 求把 NM 的棋盘分割成若干个 12 的长方形,有多少种方案。 例如当 N2,M4 时,共有 5 种方案。当 N2,M3 时,共有 3 种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行&#xff0…

Jupyter notebook安装教程

文章目录 前言一、安装步骤1、安装 Python 编译器2、安装 jupyter3、运行 Jupyter notebook 二、 更改打开文件位置和快捷启动方式1、更改打开文件位置2、创建快捷启动方式 前言 Jupyter Notebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码&…

20230421 | 203. 移除链表元素、707. 设计链表、206. 反转链表

1、203. 移除链表元素 方法1:不添加虚拟节点方式,但是要注意处理删除头部的数据 时间复杂度 O(n) 空间复杂度 O(1) /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* List…

婚恋交友app开发中需要注意的安全问题

前言 随着移动设备的普及,婚恋交友app已经成为了人们生活中重要的一部分。但是,这些应用的开发者需要确保应用的安全性,以保护用户的隐私和数据免受攻击。本文将介绍在婚恋交友app开发中需要注意的安全问题。 在当今数字化时代,…

狗屁不通文章生成器下载-狗屁不通生成器网址

狗屁不通文章生成器 狗屁不通文章生成器(也称为“吹牛生成器”)是使用自然语言处理技术和机器学习算法生成随机文章的工具。这些文章往往没有意义,因为它们是从各种不相关的话语中随机组合而成的。 虽然这些文章看起来毫无意义,…

显卡GPU与CUDA

文章目录 1 什么是GPU1.1 独立显卡1.2 核心显卡 2 驱动3 深度学习显卡CUDA4 GPU VS CPU5 深度学习环境配置中各软件的关系windows下判断有无NVIDIA GPU16G512G8核14核 1 什么是GPU GPU就是显卡Graphics Processing Unit 图像处理单元显卡主要用于在屏幕上显示图像,…

ROS学习第二十六节——机器人仿真相关组件

1.URDF URDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种 XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度.....,该文件可以被 C 内置的解释器…

服务(第十篇)Nginx和tomcat反向代理(动静分离)

正向代理: 当用户想访问某一网址时,用户先访问代理服务器,然后由代理服务器向目标网址发送请求最终将数据返回代理服务器,最后代理服务器将数据返回给用户这一过程我们称之为正向代理。 反向代理:基本流程是与正向代理…