如何捕获和记录SQL Server中发生的死锁_MySQL
bitsCN.com
方法一:利用SQL Server代理(Alert+Job)
具体步骤如下:
1.首先使用下面的命令,将有关的跟踪标志启用。
SQL code
DBCC TRACEON (3605,1204,1222,-1)
说明:
3605 将DBCC的结果输出到错误日志。
1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。
1222 返回参与死锁的锁的资源和类型,以及使用了不符合任何 XSD 架构的 XML 格式的受影响的当前命令(比1204更进一步,SQL 2005及以上可用)。
-1 以全局方式打开指定的跟踪标记。
以上跟踪标志作用域都是全局,即在SQL Server运行过程中,会一直发挥作用,直到SQL Server重启。
如果要确保SQL Server在重启后自动开启这些标志,可以在SQL Server服务启动选项中,使用 /T 启动选项指定跟踪标志在启动期间设置为开。(位于SQL Server配置管理器->SQL Server服务->SQL Server->属性->高级->启动参数)
在运行上面的语句后,当SQL Server中发生死锁时,已经可以在错误日志中看到了,但还不够直观(和其它信息混在一起)。(SSMS -> SQL Server实例 -> 管理 -> SQL Server日志)
2.建表,存放死锁记录
SQL code
USE [Cole] --Cole是我的示例数据库,你可以根据实际情况修改。
GO
CREATE TABLE DeadLockLog (
id int IDENTITY (1, 1) NOT NULL,
LogDate DATETIME,
ProcessInfo VARCHAR(10),
ErrorText VARCHAR(MAX)
)
GO
3.建立JOB
新建一个JOB(假设名称为DeadLockJob),在"步骤"中新建一步骤,随便写一个步骤名称,数据库为"Cole"(见2.建表),在"命令"栏中输入以下语句:
SQL code
--新建临时表
IF OBJECT_ID('tempdb.dbo.#ErrorLog') IS Not Null
DROP TABLE #ErrorLog
CREATE TABLE #ErrorLog (Id int IDENTITY (1, 1) NOT NULL, a DATETIME, b VARCHAR(10), c VARCHAR(MAX))
--将当前日志记录插入临时表
INSERT INTO #ErrorLog EXEC master.dbo.sp_readerrorlog
--将死锁信息插入用户表
insert DeadLockLog
select a, b, c
from #ErrorLog
where id >= (select MAX(id) from #ErrorLog WHERE c Like '%Deadlock encountered%')
DROP TABLE #ErrorLog
4.新建警报
在"新建警报"窗体的"常规"选项卡中,进行以下设置:
名称:可根据实际自行命名,这里我用DeadLockAlert
类型:选择"SQL Server性能条件警报"
对象:SQLServer:Locks
计数器:Number of Deadlocks/sec
实例:_Total
计数器满足以下条件时触发警报:高于
值:0
设置完成后,应该如下图所示:
在"响应"选项卡中,选中"执行作业",并选择步骤3中我们新建的作业(即DeadlockJob)
到这里为止,我们已经完成了全部步骤,以后,你就可以随时查询DeadLockLog表,来显示死锁信息了。
方法二:利用服务器端跟踪。
具体实现步骤如下:
1.编写如下脚本,并执行
SQL code
-- 定义参数
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5
-- 初始化跟踪
exec @rc = sp_trace_create @TraceID output, 0, N'e:/DbLog/deadlockdetect', @maxfilesize, NULL
--此处的e:/dblog/deadlockdetect是文件名(可自行修改),SQL会自动在后面加上.trc的扩展名
if (@rc != 0) goto error
-- 设置跟踪事件
declare @on bit
set @on = 1
--下述语句中的148指的是locks:deadlock graph事件(参见sys.trace_events),12指的是spid列(参见sys.trace_columns)
exec sp_trace_setevent @TraceID, 148, 12, @on
exec sp_trace_setevent @TraceID, 148, 11, @on
exec sp_trace_setevent @TraceID, 148, 4, @on
exec sp_trace_setevent @TraceID, 148, 14, @on
exec sp_trace_setevent @TraceID, 148, 26, @on
exec sp_trace_setevent @TraceID, 148, 64, @on
exec sp_trace_setevent @TraceID, 148, 1, @on
-- 启动跟踪
exec sp_trace_setstatus @TraceID, 1
-- 记录下跟踪ID,以备后面使用
select TraceID = @TraceID
goto finish
error:
select ErrorCode=@rc
finish:
go
运行上述语句后,每当SQL Server中发生死锁事件,都会自动往文件e:/DbLog/deadlockdetect.trc中插入一条记录。
2.暂停和停止服务器端跟踪
如果要暂停上面的服务器端跟踪,可运行下面的语句:
SQL code
exec sp_trace_setstatus 1, 0 --第一个参数表示TraceID,即步骤1中的输出参数。第二个参数表示将状态改为0,即暂停
如果要停止上面的服务器端跟踪,可运行下面的语句:
SQL code
exec sp_trace_setstatus 1, 2 --第一个参数表示TraceID,即步骤1中的输出参数。第二个参数表示将状态改为2,即停止
3.查看跟踪文件内容
对于上面生成的跟踪文件(e:/DbLog/deadlockdetect.trc),可通过两种方法查看:
1).执行t-sql命令
SQL code
select * from fn_trace_gettable('e:/DbLog/deadlockdetect.trc',1)
结果中的TextData列即以XML的形式返回死锁的详细信息。
2).在SQL Server Profiler中打开。
依次 进入Profiler -> 打开跟踪文件 ->选择e:/DbLog/deadlockdetect.trc,就可以看到以图形形式展现的死锁信息了。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Pinduoduo-Software bietet viele gute Produkte, die Sie jederzeit und überall kaufen können. Die Qualität jedes Produkts wird streng kontrolliert, jedes Produkt ist echt und es gibt viele Vorzugsrabatte beim Einkaufen, sodass jeder online einkaufen kann. Ich kann einfach nicht aufhören. Geben Sie Ihre Mobiltelefonnummer ein, um sich online anzumelden, fügen Sie online mehrere Lieferadressen und Kontaktinformationen hinzu und prüfen Sie jederzeit die neuesten Logistiktrends. Suchen Sie nach oben und unten, um zu kaufen und eine Bestellung aufzugeben. Sie können den Komfort genießen, ohne das Haus zu verlassen. Mit dem Online-Einkaufsservice können Sie auch alle Einkaufsunterlagen, einschließlich der von Ihnen gekauften Waren, einsehen und erhalten Dutzende von roten Einkaufsumschlägen und Gutscheinen kostenlos Detaillierte Online-Methode zum Anzeigen gekaufter Produktdatensätze. 1. Öffnen Sie Ihr Telefon und klicken Sie auf das Pinduoduo-Symbol.

So zeigen Sie den Befehlsverlauf unter Linux an: Unter Linux verwenden wir den Befehl „history“, um die Liste aller zuvor ausgeführten Befehle anzuzeigen. Die Syntax ist sehr einfach: „history“ Zu den Optionen für die Kopplung mit dem Befehl „history“ gehören: Optionsbeschreibung –c löscht den Befehlsverlauf für die aktuelle Sitzung –w schreibt den Befehlsverlauf in eine Datei –r lädt den Befehlsverlauf aus der Verlaufsdatei neu – n Begrenzen Sie die Anzahl der Ausgaben der letzten Befehle. Führen Sie einfach den Befehl „history“ aus, um eine Liste aller zuvor ausgeführten Befehle in einem Linux-Terminal anzuzeigen: Zusätzlich zur Anzeige des Befehlsverlaufs können Sie auch den Befehlsverlauf verwalten und Änderungen an zuvor ausgeführten Befehlen vornehmen, rückgängig machen Durchsuchen Sie den Befehlsverlauf oder löschen Sie den Verlauf sogar vollständig

Die Anrufaufzeichnung im iPhone wird oft unterschätzt und ist eine der wichtigsten Funktionen des iPhone. Aufgrund ihrer Einfachheit ist diese Funktion von entscheidender Bedeutung und kann wichtige Erkenntnisse über die auf dem Gerät getätigten oder empfangenen Anrufe liefern. Ob für Arbeitszwecke oder für Gerichtsverfahren, die Möglichkeit, auf Anrufaufzeichnungen zuzugreifen, kann von unschätzbarem Wert sein. Vereinfacht ausgedrückt bezieht sich der Anrufverlauf auf die Einträge, die auf Ihrem iPhone erstellt werden, wenn Sie einen Anruf tätigen oder entgegennehmen. Diese Protokolle enthalten wichtige Informationen, einschließlich des Namens des Kontakts (oder der Nummer, falls nicht als Kontakt gespeichert), Zeitstempel, Dauer und Anrufstatus (gewählt, verpasst oder nicht angenommen). Sie sind eine prägnante Aufzeichnung Ihres Kommunikationsverlaufs. Der Anrufverlauf umfasst auf Ihrem iPhone gespeicherte Anrufverlaufsstreifen

Auf der 115-Netzwerkfestplatte befinden sich viele Ressourcen. Wie findet man also Ressourcen? Benutzer können in der Software nach den benötigten Ressourcen suchen, dann die Download-Schnittstelle aufrufen und dann das Speichern auf der Netzwerkfestplatte auswählen. Diese Einführung in die Methode zum Auffinden von Ressourcen auf 115 Netzwerkfestplatten kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich um. Wie finde ich Ressourcen auf 115 Netzwerkfestplatten? Antwort: Suchen Sie den Inhalt in der Software und klicken Sie dann, um ihn auf der Netzwerkfestplatte zu speichern. Ausführliche Einführung: 1. Geben Sie zunächst die gewünschten Ressourcen in der App ein. 2. Klicken Sie dann auf den angezeigten Schlüsselwort-Link. 3. Rufen Sie dann die Download-Oberfläche auf. 4. Klicken Sie im Inneren auf „Auf Netzwerkfestplatte speichern“.

Mit dem iPhone können Sie Medikamente zur Gesundheits-App hinzufügen, um die Medikamente, Vitamine und Nahrungsergänzungsmittel, die Sie täglich einnehmen, zu verfolgen und zu verwalten. Anschließend können Sie eingenommene oder ausgelassene Medikamente protokollieren, wenn Sie eine Benachrichtigung auf Ihrem Gerät erhalten. Nachdem Sie Ihre Medikamente protokolliert haben, können Sie sehen, wie oft Sie sie eingenommen oder ausgelassen haben, um Ihren Gesundheitszustand besser im Auge zu behalten. In diesem Beitrag zeigen wir Ihnen, wie Sie den Protokollverlauf ausgewählter Medikamente in der Health-App auf dem iPhone anzeigen. Eine kurze Anleitung zum Anzeigen Ihres Medikamentenprotokollverlaufs in der Gesundheits-App: Gehen Sie zu Gesundheits-App>Durchsuchen>Medikamente>Medikamente>Medikament auswählen>Optionen&a

C#-Entwicklungsvorschläge: Protokollierungs- und Überwachungssystem Zusammenfassung: Im Softwareentwicklungsprozess sind Protokollierungs- und Überwachungssysteme entscheidende Werkzeuge. In diesem Artikel werden die Rolle und Implementierungsvorschläge von Protokollierungs- und Überwachungssystemen in der C#-Entwicklung vorgestellt. Einleitung: Protokollierung und Überwachung sind wesentliche Werkzeuge in großen Softwareentwicklungsprojekten. Sie können uns helfen, den laufenden Status des Programms in Echtzeit zu verstehen und Probleme schnell zu erkennen und zu lösen. In diesem Artikel wird erläutert, wie Protokollierungs- und Überwachungssysteme in der C#-Entwicklung verwendet werden, um die Softwarequalität und Entwicklungseffizienz zu verbessern. Die Rolle des Protokollierungssystems

Han Xiaoquan ist eine Software, mit der man viele koreanische Dramen ansehen kann. Warum gibt es also plötzlich keine Ressource mehr? Aufgrund von Netzwerkproblemen, Versionsproblemen oder Urheberrechtsproblemen verfügt diese Software möglicherweise nicht über Ressourcen. Dieser Artikel über den Grund, warum Han Xiaoquan plötzlich keine Ressourcen mehr hat, kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich um. Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Antwort: Aufgrund von Netzwerkproblemen, Versionsproblemen und Urheberrechtsproblemen, detaillierte Einführung: 1. Lösung von Netzwerkproblemen: Sie können ein anderes Netzwerk auswählen und sich dann erneut bei der Software anmelden, um es zu versuchen . 2. Lösung von Versionsproblemen: Benutzer können die neueste Version dieser Software von der offiziellen Website herunterladen. 3. Lösungen für Urheberrechtsprobleme: Einige koreanische Dramen werden aufgrund von Urheberrechtsproblemen aus den Regalen genommen. Sie können andere koreanische Dramen zum Ansehen auswählen.

So protokollieren und überwachen Sie Java-Entwicklungsprojekte 1. Einführung in den Hintergrund Mit der rasanten Entwicklung des Internets haben immer mehr Unternehmen damit begonnen, Java zu entwickeln und verschiedene Arten von Anwendungen zu erstellen. Im Entwicklungsprozess sind Protokollierung und Überwachung ein wichtiges Bindeglied, das nicht ignoriert werden darf. Durch Protokollierung und Überwachung können Entwickler Probleme rechtzeitig erkennen und lösen, um die Stabilität und Sicherheit von Anwendungen zu gewährleisten. 2. Die Bedeutung der Protokollierung 1. Problemverfolgung: Wenn ein Anwendungsfehler auftritt, kann die Protokollierung uns dabei helfen, das Problem schnell zu lokalisieren.
