1. 程式人生 > >SQL2005中的事務與鎖定(四)

SQL2005中的事務與鎖定(四)

查詢一:

DROP TABLE TB

GO

CREATE TABLE TB (ID INT Primary Key, COL VARCHAR(10))

GO

INSERT INTO TB SELECT 1,'A'

GO

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRAN

SELECT * FROM TB WHERE ID BETWEEN 1 AND 5--OLD資料

--COMMIT TRAN --Don't commit

SELECT @@SPID

/*

IDCOL

----------- ----------

1A

(1 行受影響

)

------

52

(1 行受影響)

*/

查詢二:

SELECT * FROM TB WHERE ID = 1

/*

IDCOL

----------- ----------

1A

(1 行受影響)

*/

INSERT TB SELECT 2,'EE'

/*

--查詢一直進行中……被鎖定無結果

--修改資料設定了排它鎖定必須等到SPID=52的事務結束

*/

UPDATE TB

SET COL = 'SERIALIZABLE'

WHERE ID = 1

/*

--查詢一直進行中……被鎖定無結果

--修改資料設定了排它鎖定必須等到SPID=52的事務結束

*/

查詢三:

exec sp_us_lockinfo

可以明顯的發現出現大量的索引鍵範圍(RangeS-S……),確保在當前事務未結束之前另外的使用者程序無法在索引鍵範圍內插入資料,防此幼影意外行為的發生。可序列化後,除了資料能查詢外,不可以修改、增加、刪除索引鍵範圍內的任意資料行,必須等到索引上的鎖定釋放。

相關推薦

SQL2005事務鎖定

查詢一: DROP TABLE TB GO CREATE TABLE TB (ID INT Primary Key, COL VARCHAR(10)) GO INSERT INTO TB SELECT 1,'A' GO SET TRANSACTION ISOLATION LEVEL SERIALIZABL

SQL2005事務鎖定-- 轉載

ise clas iso state primary sql actions 內容 移除 -------------------------------------------------------------------------- Author : HappyFly

SQL2005事務鎖定

查詢一: BEGIN TRAN --用鎖定提示模擬共享鎖定,並強制共享鎖定持續到事務結束 SELECT * FROM TA with(holdlock) WHERE TCID = 1 --COMMIT TRAN --Don't commit SELECT @@SPID /* tcidTc

SQL2005事務鎖定

------------------------------------------------------------------------ -- Author : HappyFlyStone -- Date: 2009-09-24 21:36:30 -- Versi

認證鑑權API許可權控制在微服務架構的設計實現

引言: 本文系《認證鑑權與API許可權控制在微服務架構中的設計與實現》系列的完結篇,前面三篇已經將認證鑑權與API許可權控制的流程和主要細節講解完。本文比較長,對這個系列進行收尾,主要內容包括對授權和鑑權流程之外的endpoint以及Spring Security過濾器部分踩坑的經歷。歡迎閱讀本系列

模型類的設計實現

介紹 傳遞數據 規則 添加 play using ota 實體類 重要 實體類是現實實體在計算機中的表示。它貫穿於整個架構,負擔著在各層次及模塊間傳遞數據的職責。 一般來說,實體類可以分為“貧血實體類”和“充血實體類”,前者僅僅保存實體的屬性,而後者還包含一些實體間的關系與

三維渲染引擎設計實踐

方式 lora 扇面 多個 幀緩存 binding osg smo tco 五、繪制幾何對象和文字 幀緩存(Frame Buffer)為用戶與顯示設備交互的一個接口,將顯示的畫面抽象成一塊可以進行讀寫操作的內存區域。 幀緩存的每一個存儲單元都對應顯示屏上的一個像素。整個緩存

Spring Boot 揭秘實戰 配置文件篇 - 有哪些很棒的特性

real randint 開發人員 hat mod 配置管理 bsp footer tar 文章目錄 1. 使用屬性文件2. YAML文件 1.1. 自定義屬性 1.2. 參數引用 1.3. 隨機數屬性 1.4. application-{profile}.proper

讀書筆記--C陷阱缺陷

缺陷 目標 命名 整合 編譯器 修飾 調用 檢查 含義 第四章 1. 連接器 C語言的一個重要思想就是分別編譯:若幹個源程序可在不同的時候單獨進行編譯,恰當的時候整合到一起。 連接器一般與C編譯器分離,其輸入是一組目標模塊(編譯後的模塊)和庫文

事務4.3-事務

sele 字段 防止 對數 實際應用 影響 功能 更新 read 數據庫和操作系統一樣,是一個多用戶使用的共享資源。當多個用戶並發地存取數據時,在數據庫中就會產生多個事務同時存取同一數據的情況。若對並發操作不加控制就可能會讀取和存儲不正確的數據,破壞數據庫的一致性。加鎖是實

07-LinuxDNS詳解

用戶 mail all 驗證 src 更改 條目 http nslookup 接“06-Linux中DNS詳解(三)” 九、配置主從DNS服務器實現域名解析容錯 1、實驗環境zhangyujia.com(192.168.80.100)為主區域,com(192.168.8

Docker學習實踐

registry docker 四、倉庫管理 1.創建本地倉庫 ①獲取官方registry鏡像 [root@dockertest ~]# docker run -d -p 5000:5000 --restart=always --name registry registry:2 Unable to f

0x10軟考|網路工程師經驗分享之網路互聯網際網路

目錄 一、傳輸層協議TCP 二、傳輸層協議UDP 三、常見應用層協議 一、傳輸層協議TCP TCP協議:傳輸控制協議,面向位元組流按順序、連線、可靠、全雙工,可變滑動視窗、緩衝累積傳送。協議號6 下面是TCP段(斷頭),TCP頭(傳輸頭),TCP包

PythonFlask基礎入門

資料庫基本操作 在Flask-SQLAlchemy中,插入、修改、刪除操作,均由資料庫會話管理。會話用db.session表示。在準備把資料寫入資料庫前,要先將資料新增到會話中然後呼叫commit()方法提交會話。 資料庫會話是為了保證資料的一致性,避免因部分更新導致資料不一致。提交操作把會

Git的學習使用——Git 工作區、暫存區和版本庫

基本概念 我們先來理解下Git 工作區、暫存區和版本庫概念 工作區:就是你在電腦裡能看到的目錄。 暫存區:英文叫stage, 或index。一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。 版本庫:工作區有一個隱

使用CefSharp在.Net程式嵌入Chrome瀏覽器——啟動優化

在實際使用過程中,發現有的客戶端會出現chrome載入網頁過慢問題,定位後發現很多是因為設定系統代理所致,此時可以通過如下啟動引數禁止系統代理。 {"proxy-auto-detect", "0"},{"no-proxy-server", "1"}, 另外一個小技巧是: 由於cef本

JS的DOM操作

目錄   Tips 1. 繫結事件的區別 2.為元素解綁事件 3.事件冒泡 程式碼 1.為元素繫結事件和解綁事件的相容程式碼 2.為同一個元素繫結多個不同的事件,指向相同的事件處理函式 Tips 1. 繫結事件的區別   &n

Python基礎學習---類方法

1 #!/usr/bin/python3 class MyClass: """一個簡單的類例項""" i = 12345 def f(self): return 'hello world' # 例項化類 x = MyClass() #

第二章 程序的控制同步 -- 經典同步問題2

黑白棋子問題 問題描述 兩個人下棋,一方執黑棋,一方執白棋。要求雙方輪流下子。給出兩種情況的解決辦法:   1)執黑子一方先下  2)雙方都可以先下,誰先搶到棋盤誰先下。然後開始輪流下子。 嗜睡的理髮師問題 問題描述   一個理髮店有N個沙發,1

高並發處理思路手段:應用拆分

入口 服務架構 都是 class 分布式事務 問題: 特性 實時性 處理機 比如一個股票系統有用戶信息、開戶、股票行情、交易、訂單等,拆分後如下圖所示: 原則 業務優先 每個系統都會有多個模塊,每個模塊又有多個業務功能;按照業務邊界進行切割,再對模塊進行拆分。 循序漸