国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SQL Server 2008中SQL應(yīng)用之三“阻塞(Blocking)”

數(shù)據(jù)庫(kù) SQL Server
當(dāng)一個(gè)數(shù)據(jù)庫(kù)會(huì)話中的事務(wù)正鎖定一個(gè)或多個(gè)其他會(huì)話事務(wù)想要讀取或修改的資源時(shí),會(huì)產(chǎn)生阻塞(Blocking)。通常短時(shí)間的阻塞沒有問題,且是較忙的應(yīng)用程序所需要的。然而,設(shè)計(jì)糟糕的應(yīng)用程序會(huì)導(dǎo)致長(zhǎng)時(shí)間的阻塞,這就不必要地鎖定了資源,而且阻塞了其他會(huì)話讀取和更新它們。

當(dāng)一個(gè)數(shù)據(jù)庫(kù)會(huì)話中的事務(wù)正鎖定一個(gè)或多個(gè)其他會(huì)話事務(wù)想要讀取或修改的資源時(shí),會(huì)產(chǎn)生阻塞(Blocking)。通常短時(shí)間的阻塞沒有問題,且是較忙的應(yīng)用程序所需要的。然而,設(shè)計(jì)糟糕的應(yīng)用程序會(huì)導(dǎo)致長(zhǎng)時(shí)間的阻塞,這就不必要地鎖定了資源,而且阻塞了其他會(huì)話讀取和更新它們。

在SQL Server中,一個(gè)阻塞的進(jìn)程會(huì)無限期地保持阻塞,或者直到它超時(shí)(根據(jù)set lock_timeout)、服務(wù)器關(guān)閉、進(jìn)程被殺死、連接完成了更新或者其他發(fā)生在原始事務(wù)上的操作導(dǎo)致它釋放了資源上的鎖。

發(fā)生長(zhǎng)時(shí)間阻塞的原因如下:

  1. 在一個(gè)沒有索引的表上的過量的行鎖會(huì)導(dǎo)致SQL Server得到一個(gè)鎖,從而阻塞其他事務(wù)。
  2. 應(yīng)用程序打開一個(gè)事務(wù),并在事務(wù)保持打開的時(shí)候要求用戶進(jìn)行反饋或交互。這通常是讓最終用戶在GUI上輸入數(shù)據(jù)而保持事務(wù)打開的時(shí)候發(fā)生。此時(shí),事務(wù)引用的任何資源都會(huì)被占據(jù)。
  3. 事務(wù)BEGIN后查詢的數(shù)據(jù)可能在事務(wù)事務(wù)開始前被調(diào)用
  4. 查詢不恰當(dāng)?shù)厥褂面i定提示。例如,應(yīng)用程序僅使用很少的行,但卻使用一個(gè)表鎖提示
  5. 應(yīng)用程序使用長(zhǎng)時(shí)間運(yùn)行的事務(wù),在一個(gè)事務(wù)中更新了很多行或很多表(把一個(gè)大量更新的事務(wù)變成多個(gè)更新較少的事務(wù)有助于改善并發(fā)性)

一、找到并解決阻塞進(jìn)程

下面我們演示使用SQL Server動(dòng)態(tài)管理視圖sys.dm_os_waiting_tasks找出阻塞進(jìn)程,該視圖用于代替早期SQL Server版本中的系統(tǒng)存儲(chǔ)過程sp_who

找出阻塞的進(jìn)程后,我們使用sys.dm_exec_sql_text動(dòng)態(tài)管理函數(shù)和sys.dm_exec_Connections(DMV)找出正在執(zhí)行的查詢的SQL文本,然后強(qiáng)制結(jié)束進(jìn)程。

強(qiáng)制結(jié)束進(jìn)程,我們使用kill命令。kill的用法,請(qǐng)參看MSDN:http://msdn.microsoft.com/zh-cn/library/ms173730.aspx

該命令有三個(gè)參數(shù):

  • session ID    要終止的進(jìn)程的會(huì)話 ID。session ID 是在建立連接時(shí)為每個(gè)用戶連接分配的***整數(shù) (int)。在連接期間,會(huì)話 ID 值與該連接捆綁在一起。連接結(jié)束時(shí),則釋放該整數(shù)值,并且可以將它重新分配給新的連接。使用 KILL session ID 可終止與指定的會(huì)話 ID 關(guān)聯(lián)的常規(guī)非分布式事務(wù)和分布式事務(wù)。
  • UOW    標(biāo)識(shí)分布式事務(wù)的工作單元 (UOW) ID。UOW 是可從 sys.dm_tran_locks 動(dòng)態(tài)管理視圖的 request_owner_guid 列中獲取的 GUID。也可從錯(cuò)誤日志中或通過 MS DTC 監(jiān)視器獲取 UOW。有關(guān)監(jiān)視分布式事務(wù)的詳細(xì)信息,請(qǐng)參閱 MS DTC 文檔。使用 KILL UOW 可終止孤立的分布式事務(wù)。這些事務(wù)不與任何真實(shí)的會(huì)話 ID 相關(guān)聯(lián),與虛擬的會(huì)話 ID = '-2' 相關(guān)聯(lián)。可使標(biāo)識(shí)孤立事務(wù)變得更為簡(jiǎn)單,其方法是查詢 sys.dm_tran_locks、sys.dm_exec_sessions 或 sys.dm_exec_requests 動(dòng)態(tài)管理視圖中的會(huì)話 ID 列。
  • WITH STATUSONLY    生成由于更早的 KILL 語句而正在回滾的指定 session ID 或 UOW 的進(jìn)度報(bào)告。KILL WITH STATUSONLY 不終止或回滾 session ID 或 UOW,該命令只顯示當(dāng)前的回滾進(jìn)度。

在***個(gè)查詢窗口:

  1. BEGIN TRAN  
  2. UPDATE Production.ProductInventory  
  3. SET Quantity = 400  
  4. WHERE ProductID = 1 AND 
  5. LocationID = 1 

第二個(gè)窗口:

  1. UPDATE Production.ProductInventory  
  2. SET Quantity = 406  
  3. WHERE ProductID = 1 AND 
  4. LocationID = 1 

第三個(gè)窗口:

  1. SELECT blocking_session_id, wait_duration_ms, session_id  
  2. FROM sys.dm_os_waiting_tasks  
  3. WHERE blocking_session_id IS NOT NULL 
  4.  
  5. /*blocking_session_id    wait_duration_ms    session_id  
  6.            52                  23876             54  
  7. */ 

可以看出是SessionID為52的會(huì)話阻塞了SessionID為54的會(huì)話。

那么,52正在干啥壞事呢?在第三個(gè)窗口中執(zhí)行:

  1. SELECT t.text  
  2. FROM sys.dm_exec_connections c  
  3. CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t  
  4. WHERE c.session_id = 54  
  5.  
  6. /*text(@1 int,@2 tinyint,@3 tinyint)  
  7. UPDATE [Production].[ProductInventory] set [Quantity] = @1    
  8. WHERE [ProductID]=@2 AND [LocationID]=@3  
  9. */ 

注意:這并不是***個(gè)查詢窗口中的原SQL語句,SQL Server進(jìn)行了自動(dòng)參數(shù)化計(jì)劃緩存(預(yù)編譯)。

我們強(qiáng)制終止會(huì)話。在第三個(gè)窗口中執(zhí)行:

kill 52 注意:窗口一的語句和窗口二的語句均終止。

提示:第三個(gè)語句中,使用sys.dm_exec_connections(DMV)返回了Session ID為53的most_recent_sql_handle列。這是SQL文本在內(nèi)存中的指針。作為sys.dm_exec_sql_text動(dòng)態(tài)管理函數(shù)的輸入?yún)?shù)使用。從sys.dm_exec_sql_text返回了text列,該列顯示了阻塞進(jìn)程的SQL文本。如果阻塞成串,必須通過blocking_session_id和session_ID列仔細(xì)查看每一個(gè)阻塞進(jìn)程,直到發(fā)現(xiàn)原始的阻塞進(jìn)程。

二、配置語句等待鎖釋放的時(shí)長(zhǎng)

如果有一個(gè)事務(wù)或語句被阻塞,意味著它在等待資源上的鎖被釋放。我們可以事先通過set lock_Timeout來設(shè)定需要等待的時(shí)間。

語法如下:SET LOCK_TIMEOUT time_period

參數(shù)以毫秒為單位。超過時(shí)會(huì)返回鎖定錯(cuò)誤。示例:

在***個(gè)窗口中執(zhí)行:

  1. USE AdventureWorks  
  2. BEGIN TRAN  
  3. UPDATE Production.ProductInventory  
  4. SET Quantity = 400  
  5. WHERE ProductID = 1 AND 
  6. LocationID = 1 

在第二個(gè)窗口中執(zhí)行:

  1. USE AdventureWorks  
  2. SET LOCK_TIMEOUT 1000  
  3. UPDATE Production.ProductInventory  
  4. SET Quantity = 406  
  5. WHERE ProductID = 1 AND 
  6. LocationID = 1  
  7.  
  8. /*1秒后的執(zhí)行結(jié)果Msg 1222, Level 16, State 51,Line 3  
  9. Lock request time out period exceeded.  
  10. The statement has been terminated.  
  11. */ 

解析:在這個(gè)示例中,我們?cè)O(shè)置了鎖超時(shí)時(shí)間為1000毫秒,即1秒。這個(gè)設(shè)置不會(huì)影響資源被進(jìn)程占有的時(shí)間,只會(huì)影響等待另一個(gè)進(jìn)程釋放資源訪問的時(shí)間。

原文鏈接:http://www.cnblogs.com/downmoon/archive/2011/02/18/1957913.html

 【編輯推薦】

  1. SQL Server 2008中SQL應(yīng)用之一“死鎖(Deadlocking)”
  2. SQL Server 2008中SQL應(yīng)用之二“鎖定(locking)”
  3. 淺析SQL Server 2008中的代碼安全之二:DDL觸發(fā)器與登錄觸發(fā)器
  4. 淺析SQL Server 2008中的代碼安全之三:通過PassPhrase加密
  5. 淺析SQL Server 2008中的代碼安全之四:主密鑰 

 

責(zé)任編輯:艾婧 來源: 博客園
相關(guān)推薦

2011-02-18 17:31:18

SQL Server

2011-02-28 13:19:50

SQL Server SQL死鎖

2011-03-11 10:35:31

SQL鎖定SQL Server

2011-08-19 14:38:22

SQL Server 2008遞歸查詢

2011-08-19 14:03:36

SQL Server 檢索集合

2011-08-19 13:46:22

SQL Server 組裝有序集合

2011-03-03 10:45:51

2011-09-01 13:24:42

SQL Server 呈現(xiàn)GeoRSS訂閱的Bing Maps

2011-02-21 13:06:42

Microsoft S

2009-04-16 18:15:19

動(dòng)作審核審核活動(dòng)SQL Server

2009-04-16 17:44:31

2013-03-13 09:53:50

SQL Server

2011-08-19 10:40:27

SQL Server Merge命令

2009-04-16 17:03:12

報(bào)表開發(fā)工具報(bào)表制作SQL Server

2011-08-19 10:13:34

SQL Server Values新用途

2011-08-19 11:00:54

SQL Server WaitFor命令

2011-08-19 10:24:46

SQL Server Top新用途

2010-11-12 13:08:36

動(dòng)態(tài)sql語句

2009-04-16 17:24:56

報(bào)表處理報(bào)表內(nèi)嵌SQL Server

2010-10-14 09:32:52

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久悠悠精品综合网| 国产精品亚洲综合久久| 欧美日韩国产中文字幕| 日本欧美视频在线观看| 日日天天久久| 亚洲美女精品成人在线视频| 在线中文字幕视频| 99久久99久久精品免费观看| 国产香蕉精品| 在线欧美日韩精品| www.99热这里只有精品| 久久蜜桃精品| 国产有码在线一区二区视频| 91精品在线免费视频| 日韩欧美在线123| 伊人永久在线| 自拍偷拍国产亚洲| 亚洲国产精品无码观看久久| 亚洲一区网站| 亚洲一区国产精品| 精品在线99| 欧美国产日本在线| 成人国产网站| 亚洲另类xxxx| 欧美四级在线| 欧美精品自拍偷拍| 色综合久久网女同蕾丝边| 亚洲精品五月天| 韩国中文字幕av| 91在线你懂得| 日本欧美视频在线观看| 紧缚捆绑精品一区二区| 日韩wuma| 老鸭窝毛片一区二区三区| 成人影片在线播放| 综合精品一区| 98国产高清一区| 亚洲一级淫片| 亚洲影院高清在线| 五月天久久久| 国产精品久久久久久久久粉嫩av| 男人的天堂久久| 91av在线免费观看视频| 日韩在线网址| 97国产suv精品一区二区62| 91成人短视频| 91av在线看| 成人在线视频免费观看| 国产精品高清网站| 欧美精选视频在线观看| 日本精品视频在线观看| 亚洲aaa级| 国产精品jvid在线观看蜜臀| 日韩国产一区| 国产不卡一区二区在线观看| 日本一道高清一区二区三区| 91精品国产91久久久久| 亚洲国产国产| 国产日韩欧美自拍| 亚洲第一区色| 亚洲精品无人区| 国产精品一卡二卡在线观看| 欧美乱大交xxxxx潮喷l头像| 99久久国产综合精品女不卡| 激情网站五月天| 国产精品青草久久| 裸体网站视频| 欧美色图片你懂的| av中文资源在线资源免费观看| 夜夜嗨av色一区二区不卡| 久久久91麻豆精品国产一区| 国产成人精品在线观看| 国一区二区在线观看| 亚洲人成网站在线观看播放| 成人午夜电影网站| 日本黄大片一区二区三区| 一区二区视频在线看| 国产高清在线观看| 日韩精品丝袜在线| 136国产福利精品导航网址应用| 国产成人免费av电影| 99视频精品| 中文字幕制服丝袜在线| 国产日韩高清在线| 亚洲嫩模一区| 亚洲人成电影在线播放| 精品女人视频| 国产在线精品一区二区三区》| www污在线观看| 成人涩涩网站| 国产精品亚洲综合| 大美女一区二区三区| 黄色激情网站| 精品国产一区二区三区久久久蜜月| 日韩最新av| 免费看成人av| 国产精品国产自产拍在线| 调教视频免费在线观看| 欧美第一淫aaasss性| 中文高清一区| 国产免费网址| 亚洲久久久久久久久久久| 成人影院中文字幕| 久久久水蜜桃| 亚洲女爱视频在线| 小h片在线观看| 91精品久久久久久久久不口人| 极品少妇一区二区三区精品视频| 超碰在线人人| www国产精品视频| 国产日韩1区| 宅男深夜国产| 久久久精品电影| 久久久人人人| 一级视频在线免费观看| 久久精品国产成人精品| 亚洲欧美日韩专区| 91短视频在线观看| 久久精品欧美视频| 久久亚洲二区| 一级视频在线免费观看| 九九热精品视频国产| 老司机一区二区| аⅴ资源新版在线天堂| 国产精品jvid在线观看蜜臀| 成人sese在线| 日本动漫理论片在线观看网站| 国产精品午夜视频| 久久久久国产精品厨房| 国产精选在线| 久久综合给合久久狠狠色| 亚洲国产综合视频在线观看| 欧美电影院免费观看| 中文字幕色呦呦| 欧美日韩国产色站一区二区三区| re久久精品视频| **三级三级97片毛片| 色噜噜国产精品视频一区二区| 欧美激情图区| 91美女片黄在线观看| 国产高清中文字幕在线| 国产视频精品网| 欧美日韩国产一区在线| 美国成人xxx| 成年人免费大片| 日韩在线观看av| 成人av网站在线| 国产一区二区三区朝在线观看| 午夜精品区一区二区三| 欧美一区二区三区小说| 在线亚洲欧美| 欧美三级电影一区二区三区| 产国精品偷在线| 欧美性色黄大片| 99热精品在线观看| 麻豆传媒在线观看| 久久综合一区| 欧美一级艳片视频免费观看| 精品9999| 欧美性天天影视| 国产福利久久精品| 日韩欧美视频一区二区三区| 久久精品国产www456c0m| 欧美精品一区二区三区涩爱蜜| 国产精品亚洲激情| 激情成人中文字幕| 88国产精品视频一区二区三区| 嘿咻视频在线看| 91在线视频免费| 欧美日韩www| 久久国产日韩欧美精品| 三上悠亚一区二区| avav在线看| 日本欧美国产在线| 日韩欧美有码在线| 国产精品美女久久久| 人人超在线公开视频| 亚洲女人毛片| 一本一道久久a久久精品逆3p| 99re这里都是精品| 日韩欧美美女在线观看| 日本福利视频| 91九色偷拍| 精品国产免费一区二区三区四区 | 欧美第一黄色网| 亚洲精品国产精华液| 亚洲女同另类| 在线中文字幕第一页| 欧美一区二区视频在线播放| 欧美精品在线免费观看| 亚洲精品国产品国语在线app| 国内自拍视频一区二区三区 | 国产精品激情偷乱一区二区∴| 自拍偷拍一区| 91在线看片| 黄色污污在线观看| 日本高清不卡在线| 日韩一区二区在线观看视频| 99精品视频一区二区| 97精品中文字幕|