婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL Server查看未釋放游標的方法

SQL Server查看未釋放游標的方法

熱門標簽:濮陽清豐400開頭的電話申請 樂昌電話機器人 疫情時期電話機器人 南京怎么申請400這種電話 真3地圖標注 地圖標注可以編輯地名嗎 南通智能外呼系統怎么樣 臺灣外呼系統軟件 地圖標注跑線下市場

一直以來對SQL SERVER的游標都不怎么感冒,也很少使用SQL Server里面的游標,前幾天有一位網友問如何檢查數據庫里面沒有釋放的游標,覺得有點意思,就測試驗證了一下,順便整理于此。

會話1:我們模擬一個應用程序或腳本,在打開游標后,忘記關閉、釋放游標。

DECLARE Cursor_Test CURSOR FORSELECT * FROM dbo.TEST;OPEN Cursor_Test; 

此時如果我們如何檢查數據庫里面沒有釋放的游標?其實SQL SERVER提供了一個動態管理函數sys.dm_exec_cursors,它返回有關在各種數據庫中打開的游標的信息。

SELECT * FROM sys.dm_exec_cursors(0) 

關于該動態管理函數返回的表的各個字段的解釋,可以參考MSDN文檔。不同數據庫版有所區別。如果要查詢沒有關閉的游標,則需要對字段is_open進行過濾(指定游標是否處于打開狀態。1為打開,0表示關閉)

會話2:查看沒有關閉的游標

SELECT 
session_id , 
cursor_id , 
name , 
creation_time , 
is_openFROM 
sys.dm_exec_cursors(0)WHERE 
is_open = 1; 

如果想查看已經關閉,但是沒有釋放的游標,可以在會話1執行關閉游標命令CLOSE Cursor_Test;但是不釋放游標,如下截圖所示


另外,可以用下面SQL查看服務器上打開時間超過指定時間(1 小時)的游標的信息,根據需要自行調整查詢條件。

SELECT creation_time 
,cursor_id 
,name 
,c.session_id 
,login_name 
,c.creation_time 
,c.is_openFROM 
sys.dm_exec_cursors (0) AS c 
JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_idWHERE 
DATEDIFF(hh, c.creation_time, GETDATE()) > 1;GO

以上所述是小編給大家介紹的SQL Server查看未釋放游標的方法,希望對大家有所幫助!

您可能感興趣的文章:
  • Sql Server臨時表和游標的使用小結
  • SQL Server使用游標處理Tempdb究極競爭-DBA問題-程序員必知
  • MS SQL Server游標(CURSOR)的學習使用
  • sqlserver游標使用步驟示例(創建游標 關閉游標)
  • SQLServer用t-sql命令批量刪除數據庫中指定表(游標循環刪除)
  • SQL Server 游標語句 聲明/打開/循環實例
  • SQL Server游標的使用/關閉/釋放/優化小結
  • SQL Server遍歷表中記錄的2種方法(使用表變量和游標)
  • sqlserver中觸發器+游標操作實現
  • SQL Server游標的介紹與使用

標簽:河北 馬鞍山 福建 南京 廣安 陜西 通遼 阿里

巨人網絡通訊聲明:本文標題《SQL Server查看未釋放游標的方法》,本文關鍵詞  SQL,Server,查看,未,釋放,游,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server查看未釋放游標的方法》相關的同類信息!
  • 本頁收集關于SQL Server查看未釋放游標的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 蒙山县| 普陀区| 东乌珠穆沁旗| 修武县| 衡南县| 河池市| 陆川县| 静宁县| 大方县| 化隆| 阳原县| 神池县| 西安市| 广水市| 兴文县| 宜春市| 绵阳市| 南岸区| 民丰县| 遂川县| 贺兰县| 南靖县| 昌乐县| 连云港市| 五华县| 老河口市| 辽源市| 东阿县| 海兴县| 仁化县| 离岛区| 互助| 枣阳市| 石棉县| 桐梓县| 伊宁市| 青川县| 谢通门县| 蓬莱市| 玛曲县| 南皮县|