REATE PROCEDURE SimulateDelay
AS
BEGINPRINT '開始耗時操作...';-- 模擬等待 5 秒WAITFOR DELAY '00:00:05';PRINT '耗時操作完成。';
END
方法二:使用忙循環(不推薦,CPU 占用高)
CREATE PROCEDURE SimulateBusyLoop
AS
BEGINDECLARE @start DATETIME = GETDATE();DECLARE @now DATETIME;PRINT '開始忙循環...';WHILE DATEDIFF(SECOND, @start, GETDATE()) < 5BEGIN-- 空循環模擬CPU消耗SET @now = GETDATE();ENDPRINT '忙循環完成。';
END
方法3
CREATE PROCEDURE SimulateSlowQuery
AS
BEGINPRINT '開始執行慢查詢...';-- 創建臨時表CREATE TABLE #TempData (ID INT PRIMARY KEY, Name NVARCHAR(100));-- 插入大量數據DECLARE @i INT = 0;WHILE @i < 100000BEGININSERT INTO #TempData VALUES (@i, CONCAT('Name', @i));SET @i += 1;END-- 執行一個聚合+排序查詢SELECT TOP 1 NameFROM #TempDataORDER BY NEWID(); -- 強制慢排序DROP TABLE #TempData;PRINT '慢查詢完成。';
END
🔒 模擬“鎖等待/阻塞”的存儲過程示例
我們先創建一個簡單的表:
CREATE TABLE LockTest (ID INT PRIMARY KEY,Value NVARCHAR(100)
);INSERT INTO LockTest VALUES (1, 'A');
過程 A:開啟事務但不提交(保持鎖)
sql
CREATE PROCEDURE HoldLock
AS
BEGINBEGIN TRANSACTION;UPDATE LockTestSET Value = 'Locked by A'WHERE ID = 1;-- 等待 30 秒(持鎖)WAITFOR DELAY '00:00:30';-- 記得別忘了 COMMIT,否則鎖一直持有COMMIT;
END
過程 B:嘗試獲取鎖但會被阻塞
CREATE PROCEDURE BlockedProc
AS
BEGINUPDATE LockTestSET Value = 'Trying to update in B'WHERE ID = 1;
END
模擬“死鎖”的兩個事務(需兩個會話窗口)
會話 A:
BEGIN TRANSACTION;UPDATE LockTest
SET Value = 'A got ID=1'
WHERE ID = 1;-- 等待幾秒,讓會話 B 搶鎖
WAITFOR DELAY '00:00:05';-- 此處會被阻塞或死鎖
UPDATE LockTest
SET Value = 'A wants ID=2'
WHERE ID = 2;
會話 B:
BEGIN TRANSACTION;UPDATE LockTest
SET Value = 'B got ID=2'
WHERE ID = 2;-- 等待幾秒
WAITFOR DELAY '00:00:05';-- 此處會造成死鎖
UPDATE LockTest
SET Value = 'B wants ID=1'
WHERE ID = 1;
顯式共享鎖:阻止更新(用于 SELECT)
SELECT * FROM LockTest WITH (HOLDLOCK, ROWLOCK)
WHERE ID = 1;
-- 持有共享鎖直到事務結束,別人不能寫這個行
顯式排他鎖:其他讀寫都阻塞
BEGIN TRANSELECT * FROM LockTest WITH (XLOCK)
WHERE ID = 1;
查看死鎖檢測結果
SQL Server Profiler 或 Extended Events:追蹤鎖等待與死鎖。
sp_who2、sys.dm_tran_locks、sys.dm_exec_requests:觀察鎖與阻塞情況。
使用 sp_who2 和鎖視圖查看當前鎖情況
-- 查看阻塞和運行狀態
EXEC sp_who2;
-- 查看鎖信息
SELECTrequest_session_id,resource_type,resource_description,request_mode,request_status
FROM sys.dm_tran_locks;
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。 如若轉載,請注明出處:http://www.pswp.cn/diannao/87894.shtml 繁體地址,請注明出處:http://hk.pswp.cn/diannao/87894.shtml 英文地址,請注明出處:http://en.pswp.cn/diannao/87894.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!相關文章
Zookeeper的典型應用場景?
大家好,我是鋒哥。今天分享關于【Zookeeper的典型應用場景?】面試題。希望對大家有幫助; Zookeeper的典型應用場景?
超硬核AI學習資料,現在永久免費了!
Zookeeper 是一個分布式協調服務,廣泛應用于需要高可用性、分…
STM32F103_LL庫+寄存器學習筆記12.3 - 串口DMA高效收發實戰3:支持多實例化的版本
導言 《STM32F103_LL庫寄存器學習筆記12.2 - 串口DMA高效收發實戰2:進一步提高串口接收的效率》基于上一個版本,進一步提升代碼的模塊化水平,支持多實例化。 如上所示,收發大量的數據,沒有丟包。
項目地址:…
跨平臺的重構版Notepad++文本編輯器
跨平臺 Notepad 替代方案
Notepad 是 Windows 平臺上的流行文本編輯器,但其原生版本不支持跨平臺。以下是功能相似且支持多平臺的替代工具:
Notepadqq(Linux/macOS/Windows)
Notepadqq 是 Notepad 的開源跨平臺版本,…
意法STM32F103C8T6 單片機ARM Cortex-M3 國民MCU 電機控制到物聯網專用
STM32F103C8T6 單片機全面解析
1. 產品定位
STM32F103C8T6 是意法半導體(ST)推出的 經典ARM Cortex-M3內核單片機,采用 LQFP48封裝,以 高性能、豐富外設和超高性價比 成為嵌入式開發領域的"國民MCU"。
2. 核心功能特…
Sui 技術如何助力 Claynosaurz 成功推出 Popkins NFT
像 Claynosaurz 這樣的品牌利用 Sui 推動鏈上創新的邊界,展示了 Web3 如何結合互動娛樂并帶來獨特全新的體驗。Claynosaurz 最近在 Sui 上推出的 Popkins NFT 系列及其大型抽獎活動,不僅在社區參與度上取得了成功,也有力地展示了 Sui 獨特的技…
OpenCV CUDA模塊設備層-----反正弦運算函數asin()
操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11
算法描述
對一個 uchar 類型的像素值(范圍 [0, 255]),先歸一化到浮點范圍 [0.0, 1.0],然后計算其反正弦值 …
PixiJS 中 HTMLText 富文本渲染問題探究與優化思考?
起因 在使用 PixiJS 進行富文本渲染開發過程中,遭遇 HTMLText 組件處理中文字體加載時出現顯著卡頓現象。針對此問題,在開源社區提交 issue 并附上相關技術細節與運行表現,期望獲得解決方案。 提issues 從 issue 反饋內容來看,項目…
五、Redis的IO模型
簡介 在談及Redis為什么快的時候,很多人都只能回答redis是基于內存,所以快。但他們往往不知道,決定redis快的因素,還有它的IO模型-Reactor模型。談及Redis的IO模型之前,先補充一下IO模型的基礎知識。 IO模型演化 1.堵塞…
Cesium、ThreeWebGL詳解(二)渲染引擎向GPU傳數據、性能優化、引擎對比
下面從 API 定位、坐標體系、性能表現、面試常問點幾個維度詳細對比 Cesium、Three.js 與原生 WebGL 的繪制差異。 🧭 1. API 定位與典型應用 Cesium 聚焦全地球 GIS 場景,支持地形、影像、時空動態等地理信息功能,是專業級地圖應用首選。 T…
單點登錄(SSO)系統
設計一個 Java 單點登錄(SSO)系統需要解決跨系統認證和會話共享問題。以下是核心設計和實現方案,包含關鍵組件和代碼示例: 一、核心概念
認證中心 (Auth Center):中央身份驗證服務令牌 (Token):用戶身份憑…
《信息技術》科技核心期刊推薦
【科研必看】《信息技術》——科技核心期刊,助力你發表高影響力論文! 如果你是一位科研工作者、學者或者在校學生,正在為發表論文而努力,那么《信息技術》期刊無疑是你不可錯過的選擇!這本期刊以其卓越的學術影響力&am…
界面組件DevExpress WPF中文教程:Grid - 如何遍歷節點?
DevExpress WPF擁有120個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…
2D寫實交互數字人:讓AI形象擁有“真人溫度“的技術革命
在人工智能技術日新月異的今天,數字人已不再是科幻電影中的概念,而是逐步滲透到我們日常生活的各個領域。然而,市場上大多數數字人產品仍停留在"能說會動"的初級階段,缺乏真正的情感交互能力,這種"機械…
2025 年拓客系統排行榜
在數字化營銷時代,拓客系統成為企業獲取客戶資源、提升銷售效率的關鍵工具。以下為您盤點 2025 年表現出色的中文名字拓客系統,其中 微拓客 憑借強大功能脫穎而出,成為眾多從業者的首選。 一、微拓客:精準拓客的全能王者
微拓客堪…
TikTok 矩陣如何快速漲粉
在社交媒體的廣袤天地里,TikTok 以其強大的影響力和龐大的用戶基礎,成為眾多創作者和品牌競相角逐的舞臺。構建 TikTok 矩陣,是擴大影響力、實現快速漲粉的有效策略。那么,究竟如何讓 TikTok 矩陣快速漲粉呢?下面將為您…
基于微信小程序和云開發的企業綠色融資平臺的設計與實現
文章目錄 摘要前言緒論1. 課題背景2. 國內外現狀與趨勢2.1 國內研究現狀2.2 國外研究現狀2.3 發展趨勢3. 課題內容相關技術與方法介紹1. 微信小程序開發技術2. 騰訊云開發平臺3. 綠色項目評估模型4. 智能匹配算法5. 碳核算方法系統分析1. 需求分析1.1 用戶需求1.2 功能需求1.3 …
如何自建服務器并開啟公網IP:本地內網網址讓外網訪問詳細教學
本地內網環境自建服務器后,如何讓外網訪問,提供互聯網連接服務呢?有不少方法都可以實現,常見的有如公網IP、DDNS動態域名、nat123內網穿透等,下面詳細教學。
一、申請開公網IP-----------------公網IP篇-------------…
企業公用電腦登錄安全管控的終極方案:ASP操作系統安全登錄管控方案
一、引言:公用電腦——企業安全管理的“灰色地帶”
在企業辦公場景中,公用電腦(如會議室電腦、生產線終端、客服工位)因多用戶共用、權限復雜,往往成為安全管理的薄弱環節。員工隨意登錄、弱密碼泛濫、敏感數據泄露事…
HarmonyOS-ArkTS開發指南:從基礎到實戰
目錄 一、基礎語法
二、聲明式 UI 開發
基本組件結構
三、狀態管理
四、生命周期鉤子
五、組件化開發
1. 創建自定義組件
2. 組件嵌套
六、事件處理
七、布局系統
八、樣式設置
九、條件渲染與列表渲染
十、異步操作
十一、路由導航
開發建議 一、基礎語法
ArkT…