国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

Sleeping會(huì)話導(dǎo)致阻塞原理(下)

2024-07-21 02:51:57
字體:
供稿:網(wǎng)友

Sleeping會(huì)話導(dǎo)致阻塞原理(下)

背景

最近給客戶做優(yōu)化時(shí),有幾個(gè)客戶都存在.SLEEPING 會(huì)話中開啟了事務(wù),導(dǎo)致的大量阻塞,從而產(chǎn)生嚴(yán)重的性能問題。雖然在之前的文章我分享了Sleeping會(huì)話導(dǎo)致阻塞原理(上) 。說明了什么是Sleeping會(huì)話,以及他可能導(dǎo)致的問題。但是對如何解決問題,給出的方案,還是太簡單了,沒有給出解決的細(xì)節(jié)。本文將對這些細(xì)節(jié)進(jìn)行說明。希望大家面對類似問題時(shí)更容易下手

下面分享2個(gè)案例,分別針對針對問題來著存儲(chǔ)過程程序 中的情況。

存儲(chǔ)過程

以下是某醫(yī)藥公司的案例截圖:

從圖中可以看到,230 處于SLEEPING 狀態(tài)并且產(chǎn)生了大量的阻塞。查看子語句可以知道230運(yùn)行的是一個(gè)存儲(chǔ)過程。

問題就在于:在這個(gè)存儲(chǔ)過程中,開啟事務(wù)(如下圖所示),并且運(yùn)行到后面某個(gè)語句時(shí)出錯(cuò)了(可能是超時(shí),或者其他錯(cuò)誤)。但是開啟的事務(wù)并沒有回滾.

有的同學(xué),可能知道,在存儲(chǔ)過程中 加入tray catch ,出錯(cuò)時(shí)回滾事務(wù)。這個(gè)解決辦法并不徹底。對應(yīng)有些錯(cuò)誤是無法捕捉,對應(yīng)這種情況,,我們可以在存儲(chǔ)過程中直接加上:SET XACT_ABORT ON 。當(dāng)存儲(chǔ)過程執(zhí)行時(shí)發(fā)生問題時(shí),會(huì)自動(dòng)回滾所有事務(wù),從而避免了阻塞。

程序

這是某制造行業(yè)的財(cái)務(wù)的案例截圖:

查看子語句,和父語句都是單獨(dú)的一個(gè)查詢,說明3185 開啟的事務(wù)來著 程序0

對應(yīng)這種情況,只能修改程序。因?yàn)榭蛻舻拇a不好分享,下面是我自己寫的測試程序代碼:

在修改時(shí)有幾個(gè)細(xì)節(jié)需要注意:

1.在代碼中加入TRY CATCH。

2.在CATHC 中必須使用close,dispose 來關(guān)閉連接,當(dāng)然使用了using也是可以的3.程序建立了新的連接,并執(zhí)行了查詢。此時(shí)會(huì)出現(xiàn) sp_reset_connection事件,此時(shí),事務(wù)會(huì)被回滾。注意 。兩次建立連接的connectsting.就是連接字符串必須完全一致。多個(gè);都不可以。

只有滿足上面3個(gè)條件,,sleeping狀態(tài)的的會(huì)話對應(yīng)是事務(wù)才會(huì)被回滾。從而解除上面的阻塞。

總結(jié)

在解決實(shí)際問題時(shí),在知道解決辦法后,還有很多技術(shù)細(xì)節(jié),這是我們必須要關(guān)注的


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 恩施市| 双牌县| 五峰| 天全县| 江孜县| 阿克苏市| 五大连池市| 思南县| 依安县| 岳普湖县| 昂仁县| 高碑店市| 许昌市| 林甸县| 温泉县| 焦作市| 木兰县| 若尔盖县| 凉城县| 句容市| 都昌县| 平定县| 涞水县| 大化| 江西省| 桐城市| 永川市| 桐柏县| 大埔县| 奉贤区| 东乌珠穆沁旗| 丘北县| 夏邑县| 罗甸县| 岳西县| 望谟县| 长沙市| 保定市| 文水县| 济宁市| 尼玛县|