5. SQL Server数据库性能监控
对于在线运行的系统,当前数据库性能监控,通常监视以下几点:(1)是否有阻塞(Blocking);(2)是否有等待(Waiting),阻塞就是锁(Lock)等待;(3)是否运行时间过长(Lon
对于在线运行的系统,当前数据库性能监控,通常监视以下几点:
(1) 是否有阻塞 (Blocking);
(2) 是否有等待 (Waiting),阻塞就是锁 (Lock) 等待;
(3) 是否运行时间过长(Long running);
(4) 是否有死锁 (Deadlock);
sys.dm_exec_query_stats之类,等一些统计性的信息,通常不作为实时告警内容,而是在性能优化时,作为参考。
一. 阻塞/等待/长时间运行
1. SQL Server 2005 及以后版本检查
SELECT r.session_id ,r.blocking_session_id ,DB_Name(r.database_id) as database_name ,r.start_time ,r.total_elapsed_time ,r.[status] ,CASE WHEN r.blocking_session_id 0 THEN'Blocking' WHEN r.blocking_session_id= 0 AND r.wait_type is not null THEN 'Waiting' ELSE 'Long-running' END as slowness_type ,r.percent_complete ,r.command ,r.wait_type ,r.wait_time ,r.wait_resource ,r.last_wait_type ,r.cpu_time ,r.reads ,r.writes ,r.logical_reads ,t.[text] as executing_batch ,SUBSTRING(t.[text], r.statement_start_offset/2, (CASE WHENr.statement_end_offset =-1 THENDATALENGTH(t.[text]) --LEN(CONVERT(NVARCHAR(MAX),t.text)) * 2 ELSE r.statement_end_offset END - r.statement_start_offset )/2+ 1) as executing_sql ,bt.[text] as blocking_batch ,SUBSTRING(bt.[text], br.statement_start_offset/2, (CASE WHENbr.statement_end_offset = -1 THENDATALENGTH(bt.[text]) --LEN(CONVERT(NVARCHAR(MAX),bt.text)) * 2 ELSE br.statement_end_offset END - br.statement_start_offset )/2+ 1) as blocking_sql --,p.query_plan FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) as t CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) as p LEFT JOIN sys.dm_exec_requests br ON r.blocking_session_id =br.session_id OUTER APPLY sys.dm_exec_sql_text(br.session_id) as bt WHERE r.session_id > 50 and r.session_id @@SPID AND r.total_elapsed_time >30 * 60 * 1000 ORDER BY r.total_elapsed_timeDESC;以上脚本返回运行超过30分钟的语句,需要注意的是:
(1) 如果返回执行计划,会让以上脚本变慢很多,可以不返回,在收到告警后检查语句时,再去查看执行计划;
(2) 显示TEXT,比如: xp_cmdshell这样的语句,start_offset, end_offset都为0,截取的 text是空白,只有看TEXT才知道是什么语句;还有就是有时需要知道这个请求来自哪个batch或者存储过程;
(3) 有时显示TEXT还不够,还以xp_cmdshell为例,需要dbcc inputbuffer才能看到完整的sql语句;另外已运行结束但还没有commit/rollback的事务,在requests中已经没有了,也需要借用dbcc inputbuffer来查看sql 语句;
dbcc inputbuffer(@@SPID)(4) SQL Agent作业,在这里会被一并检查,也可以通过msdb..sysjobactivity另行检查;
select b.name, * from msdb..sysjobactivity a inner join msdb.dbo.sysjobs b on a.job_id = b.job_id where b.name like '%backup%'

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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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











PHP sendet E-Mails asynchron: Vermeiden Sie lange Wartezeiten auf den Versand von E-Mails. Einleitung: In der Webentwicklung ist das Versenden von E-Mails eine der häufigsten Funktionen. Da das Senden von E-Mails jedoch eine Kommunikation mit dem Server erfordert, führt dies häufig dazu, dass Benutzer lange warten müssen, bis die E-Mail gesendet wird. Um dieses Problem zu lösen, können wir PHP verwenden, um E-Mails asynchron zu versenden und so das Benutzererlebnis zu optimieren. In diesem Artikel erfahren Sie anhand spezifischer Codebeispiele, wie Sie PHP implementieren, um E-Mails asynchron zu versenden und lange Wartezeiten zu vermeiden. 1. Das asynchrone Senden von E-Mails verstehen

Die Hausüberwachung wird in der Regel ein bis zwei Wochen lang durchgeführt. Detaillierte Einführung: 1. Je größer die Speicherkapazität, desto länger kann das Video gespeichert werden. 2. Je größer die Kapazität der Festplatte, desto länger kann das Video gespeichert werden Vorschriften, die Anzahl der Überwachungsvideos Die Speicherzeit kann variieren 4. Einige fortschrittliche Überwachungssysteme können die Aufzeichnung auch basierend auf Bewegungserkennung oder bestimmten Ereignissen auslösen, wodurch Speicherplatz gespart wird und nützlichere Aufzeichnungen bereitgestellt werden.

Im heutigen digitalen Zeitalter ist es aus verschiedenen Gründen von entscheidender Bedeutung, die neuesten Änderungen auf Ihrer Website zu kennen, z. B. um Aktualisierungen auf den Websites Ihrer Mitbewerber zu verfolgen, die Produktverfügbarkeit zu überwachen oder über wichtige Informationen auf dem Laufenden zu bleiben. Die manuelle Überprüfung Ihrer Website auf Änderungen kann zeitaufwändig und ineffizient sein. Hier kommt die Automatisierung ins Spiel. In diesem Blogbeitrag erfahren Sie, wie Sie ein Python-Skript erstellen, um Website-Änderungen zu überwachen. Indem wir die Leistungsfähigkeit von Python und einigen praktischen Bibliotheken nutzen, können wir den Prozess des Abrufens von Website-Inhalten, des Vergleichs mit früheren Versionen und der Benachrichtigung über etwaige Änderungen automatisieren. Dadurch können wir proaktiv bleiben und zeitnah auf Aktualisierungen oder Änderungen der von uns überwachten Websites reagieren. Einrichten der Umgebung Bevor wir mit dem Schreiben von Skripten zur Überwachung von Website-Änderungen beginnen, müssen wir P einrichten

Die Überwachung von Fehlern in Laravel ist ein wichtiger Bestandteil zur Verbesserung der Anwendungsstabilität. Während des Entwicklungsprozesses treten zwangsläufig verschiedene Fehler auf. Die rechtzeitige Erkennung und Behebung dieser Fehler ist einer der Schlüssel zur Gewährleistung des normalen Betriebs der Anwendung. Laravel bietet eine Fülle von Tools und Funktionen, die Entwicklern bei der Überwachung und Behandlung von Fehlern helfen. In diesem Artikel werden einige wichtige Methoden vorgestellt und spezifische Codebeispiele angehängt. 1. Protokollierung nutzen Die Protokollierung ist eines der wichtigsten Mittel zur Fehlerüberwachung. Laravel verfügt über ein leistungsstarkes integriertes Protokollierungssystem, Entwickler

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

Überblick über die Verwendung von Docker zur Containerüberwachung und Leistungsanalyse: Docker ist eine beliebte Containerisierungsplattform, die die Ausführung von Anwendungen in unabhängigen Containern ermöglicht, indem Anwendungen und ihre abhängigen Softwarepakete isoliert werden. Da jedoch die Anzahl der Container zunimmt, werden Containerüberwachung und Leistungsanalyse immer wichtiger. In diesem Artikel stellen wir die Verwendung von Docker für die Containerüberwachung und Leistungsanalyse vor und stellen einige spezifische Codebeispiele bereit. Verwenden Sie Dockers eigenes Container-Überwachungstool, das Docker bereitstellt

Umgang mit Deadlock-Problemen bei der C++-Entwicklung Deadlock ist eines der häufigsten Probleme bei der Multithread-Programmierung, insbesondere bei der Entwicklung in C++. Deadlock-Probleme können auftreten, wenn mehrere Threads auf die Ressourcen des anderen warten. Wenn ein Deadlock nicht rechtzeitig behoben wird, führt er nicht nur zum Einfrieren des Programms, sondern beeinträchtigt auch die Leistung und Stabilität des Systems. Daher ist es sehr wichtig zu lernen, wie man mit Deadlock-Problemen in der C++-Entwicklung umgeht. 1. Verstehen Sie die Ursachen von Deadlocks. Um das Deadlock-Problem zu lösen, müssen Sie zunächst die Ursachen von Deadlocks verstehen. Deadlock tritt normalerweise auf, wenn

Wird die Sunflower-Fernbedienung überwacht? Die Sunflower-Fernbedienungssoftware kann Benutzern helfen, schnell Informationen von einem anderen Computer usw. abzurufen. Es gibt jedoch auch viele Benutzer, die sich Sorgen um die Sicherheit ihrer eigenen Computer machen. Lassen Sie den Benutzer diese Frage beantworten. Wird die Sunflower-Fernbedienung überwacht? Antwort: Nein. Obwohl Sunflower Remote Control dazu in der Lage ist, werden große Softwareunternehmen wie Sunflower Remote Control, die seit vielen Jahren etabliert sind, so etwas nicht tun. Für Büroangestellte ist eine Software, die möglicherweise auf ihren Computern installiert werden muss, die Fernsteuerung. Für viele Menschen kann die Bedienung des aktuellen Computers aus der Ferne viel Zeit sparen, unabhängig davon, ob sie von zu Hause aus arbeiten oder weil sie nicht in der Lage sind, das Haus zu verlassen.
