SQLSERVER 怎样使查询不占锁

对一些相对不怎么敏感的数据,不需要太及时性的数据,不需要占锁。

要在SQL Server中执行查询而不占用锁,可以采取以下几个策略:

1、使用NOLOCK提示: 最直接但风险较高的方法是在查询中使用WITH (NOLOCK)提示。这样,SQL Server会在读取数据时不获取共享锁,从而避免阻塞其他事务的写操作。但是,这可能导致读取“脏读”(未提交的数据)或重复读取(因并发修改而被删除或更改的数据)。因此,这个选项通常仅推荐用于只读查询,尤其是报表或数据分析场景,并且能接受数据可能不完全准确的风险。

SELECT * FROM YourTable WITH (NOLOCK)

此策略不要认为数据库库不会产生任何锁。实质上,使用了WITH(NOLOCK)后,数据库依然对该表对象生成Sch-S(架构稳定性)锁以及DB类型的共享锁,不要认为不会被其它会话阻塞,依然可能会产生Schema Change Blocking

2、 快照隔离级别: 更安全的做法是将数据库或会话的事务隔离级别设置为快照隔离(SNAPSHOT)。在快照隔离下,查询不会阻塞其他事务,也不会被其他事务阻塞,因为每个事务看到的是数据的一个快照版本,而不是实际的行锁。不过,这会增加版本存储的需求。设置会话级别的快照隔离:

SET TRANSACTION ISOLATION LEVEL SNAPSHOT;

3、 使用READ_COMMITTED_SNAPSHOT: 启用数据库的READ_COMMITTED_SNAPSHOT选项,使得在读取已提交隔离级别下执行的查询也能像快照隔离一样不阻塞。这样可以在不改变应用程序代码的情况下减少锁争用。 

实际我倾向于使用第二种策略 

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

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

相关文章

练习题(2024/5/16)

1轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,…

【C语言深度解剖】:(11)函数指针、函数指针数组、指向函数指针数组的指针、回调函数

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》《精通C指针》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多C语言深度解剖点击专栏…

AVDemo漏洞平台黑盒测试

信息收集 说明一下: 因为是本地的环境,端口这些就不扫描了, 还有这个是某个dalao写的平台,也就检测不到什么cms了, 信息收集,端口,cms这些是必做的, 首先,这里先简单的…

web3 ETF软件开发难点

开发一个涉及到 Web3 ETF(Exchange-Traded Fund,交易所交易基金)的软件可能会面临一些挑战和难点,特别是在整合 Web3 技术和金融服务方面。以下是一些可能的难点。北京木奇移动技术有限公司,专业的软件外包开发公司&am…

记一次:mysql统计的CAST函数与json字段中的某个字段

前言:因为需求的问题,会遇到将某个json存入到一个字段中,但在统计的时候,又需要将这个json中的某个字段作为条件来统计,所以整理了一下cast函数和json中某个字段的条件判断 一、浅谈mysql的json 1.1 上例子 SELECTli…

植物大战僵尸杂交版(含下载方式)

最近时间,一款很火的植物大战僵尸杂交版火爆出圈,在玩家之间疯狂扩散。各种奇特的杂交组合让游戏变得更加有趣。 游戏介绍 植物大战僵尸杂交版是一款将《植物大战僵尸》和植物杂交概念结合在一起的独特塔防策略游戏。它将《植物大战僵尸》中的植物与进行…

什么是析构函数?

在编程语言C中,析构函数是一个特别重要的组件,它主要负责在对象生命周期结束时释放资源和执行清理任务。析构函数的正确实现对于资源管理尤为关键,尤其是在处理动态分配内存、文件句柄、网络连接或其他系统资源时。本文将详细介绍析构函数的基…

Minio 对象存储 OSS概述

系列文章目录 第五章 Minio 对象存储 OSS概述 Minio 对象存储 OSS概述 系列文章目录对象存储 OSS基本概念存储空间(Bucket)对象(Object)ObjectKeyRegion(地域)Endpoint(访问域名)Ac…

C#知识|上位机子窗体嵌入主窗体方法(实例)

哈喽,你好啊,我是雷工! 上位机开发中,经常会需要将子窗体嵌入到主窗体, 本节练习C#中在主窗体的某个容器中打开子窗体的方法。 01 需求说明 本节练习将【账号管理】子窗体在主窗体的panelMain容器中打开。 账号管理子窗体如下: 主窗体的panelMain容器位置如图: 02 实现…

一次JAVA接口优化记录

目录 一次接口优化记录首先考虑,添加缓存缓存策略方案一:本地缓存方案二:Redis缓存 优化结果原因分析:原因验证 接口数据分析将响应数据返回大小减少compression压缩配置完美(代指这里的小系统) 一次接口优…

CentOS 的常见命令

CentOS 是一种广泛使用的 Linux 发行版,特别在服务器环境中。本文将详细介绍 CentOS 中常见的命令,以便帮助用户在操作系统中有效地进行各种操作。下面介绍一下文件和目录操作、用户和权限管理、系统信息查看、软件包管理以及网络配置等方面的命令。 一…

应用层协议【HTTP和HTTPS】

1.概念 1.1 协议 协议是指在计算机通信和网络通信中,为了实现数据交换而建立的一套规则、约定或者标准。它定义了通信双方之间的通信格式、传输方式、数据的含义、错误处理等细节,从而确保通信的可靠性、有效性和安全性。 >1在计算机网络中&#x…

Python简易图书管理系统重构

在本篇课文中,我们将使用Python语言结合MySQL数据库,从零开始构建一个简单的图书管理系统。该系统旨在帮助图书馆管理员轻松管理图书的借阅、归还以及查询图书信息等日常操作。我们将分步介绍需求分析、数据库设计、环境搭建、功能实现等关键环节&#x…

注册讲堂 | 体外诊断试剂分类目录的变化

5月11日,千呼万唤的《体外诊断试剂分类目录》(2024年第58号)终于发布! 前世今生 2013年:《6840 体外诊断试剂分类子目录(2013版)》(以下简称2013版目录) 2017年&#xff…

苹果永久版安装PD虚拟机:Parallels Desktop 19 一键激活版

Parallels Desktop 19是一款功能强大的虚拟机软件,专为Mac用户设计,允许用户在同一台Mac电脑上同时运行Windows、Linux等多个操作系统,而无需额外的硬件设备。 下载地址:https://www.macz.com/mac/9581.html?idOTI2NjQ5Jl8mMjcuM…

Kubernetes入门:核心概念

集群架构与组件 一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件。 master:集群的控制平面,负责集群的决策 ( 管理 ) api-server : 资源操作的唯一入口,接收用户输入的命令&…

vue3 项目中 前端实现下载模板 csv文件

做项目时遇到让前端实现模板下载功能&#xff0c;第一次碰到这种需求&#xff0c;记录一下。 下载csv 模板&#xff1a; <el-button type"primary" click"download(data/CSVXX.csv)">下载模板</el-button> const download (url) > {con…

文本控件Text Control示例: 将图像插入 TX 的各种方法

TX Text Control 是一款功能类似于 MS Word 的文字处理控件&#xff0c;包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理&#xff0c;网站内容发布&#xff0c;电子病历中病案模板创建、病历书写、修改历史、连续打…

在Linux上面部署ELK

注明&#xff1a;一下的软件需要自己准备 一、准备环境&#xff1a; 1.两台elasticsearch主机4G内存 2.两台elasticsearch配置主机名node1和node2(可以省略) #vim /etc/hostname #reboot 3. 两台elasticsearch配置hosts文件 #vim /etc/hosts 192.168.1.1 node1 192…