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%'

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP は電子メールを非同期に送信します。電子メールの送信を長時間待つ必要がなくなります。はじめに: Web 開発では、電子メールの送信は一般的な機能の 1 つです。しかし、メールの送信にはサーバーとの通信が必要となるため、ユーザーはメールの送信を待つ間、長時間待たされてしまうことがよくあります。この問題を解決するには、PHP を使用して電子メールを非同期に送信し、ユーザー エクスペリエンスを最適化します。この記事では、具体的なコード例を通じてメールを非同期に送信し、長時間の待ち時間を回避するための PHP の実装方法を紹介します。 1. メールの非同期送信について理解する

自宅モニタリングは通常 1 ~ 2 週間継続されます。詳細な紹介: 1. ストレージ容量が大きいほど、ビデオをより長く保存できます; 2. ハードディスクの容量が大きいほど、ビデオをより長く保存できます; 3. さまざまな地域と法律の要件に従って、規制、監視ビデオの数によって保存時間は異なる場合があります; 4. 一部の高度な監視システムでは、動き検出または特定のイベントに基づいて録画をトリガーすることもできるため、ストレージ スペースを節約し、より有用な録画を提供できます。

今日のデジタル時代では、競合他社の Web サイトの更新情報の追跡、製品の入手可能性の監視、重要な情報の把握など、さまざまな目的で Web サイトの最新の変更を認識することが重要です。 Web サイトの変更を手動で確認するのは時間がかかり、非効率的です。ここで自動化が活躍します。このブログ投稿では、Web サイトの変更を監視する Python スクリプトを作成する方法を検討します。 Python といくつかの便利なライブラリを活用することで、Web サイトのコンテンツを取得し、以前のバージョンと比較し、変更があれば通知するプロセスを自動化できます。これにより、監視するサイトの更新や変更に対して積極的に対応し、迅速に対応することができます。環境のセットアップ Web サイトの変更を監視するスクリプトを書き始める前に、P をセットアップする必要があります。

Laravel でのエラーの監視は、アプリケーションの安定性を向上させるための重要な部分です。開発プロセスではさまざまなエラーが必然的に発生します。これらのエラーをタイムリーに検出して解決する方法は、アプリケーションを正常に動作させるための鍵の 1 つです。 Laravel には、開発者がエラーを監視して処理するのに役立つツールや機能が豊富に用意されています。この記事では、重要なメソッドのいくつかを紹介し、具体的なコード例を添付します。 1. ログを使用する ログは、エラーを監視する重要な手段の 1 つです。 Laravel には強力なロギング システムが組み込まれており、開発者は

C# 開発に関する提案: ログおよび監視システムの概要: ソフトウェア開発プロセスでは、ログおよび監視システムは重要なツールです。この記事では、C# 開発におけるログ記録および監視システムの役割と実装に関する提案を紹介します。はじめに: ロギングとモニタリングは、大規模なソフトウェア開発プロジェクトにおいて不可欠なツールです。これらは、プログラムの実行状況をリアルタイムで把握し、問題を迅速に発見して解決するのに役立ちます。この記事では、C# 開発でログおよび監視システムを使用してソフトウェアの品質と開発効率を向上させる方法について説明します。ロギングシステムの役割

コンテナーの監視とパフォーマンス分析に Docker を使用する方法の概要: Docker は、アプリケーションとその依存ソフトウェア パッケージを分離することで、アプリケーションを独立したコンテナーで実行できるようにする人気のコンテナー化プラットフォームです。ただし、コンテナーの数が増加するにつれて、コンテナーの監視とパフォーマンス分析の重要性が増します。この記事では、Docker を使用してコンテナーの監視とパフォーマンス分析を行う方法を紹介し、具体的なコード例をいくつか示します。 Docker が提供する Docker 独自のコンテナ監視ツールを使用する

C++ 開発におけるデッドロックの問題に対処する方法 デッドロックは、マルチスレッド プログラミング、特に C++ での開発でよく見られる問題の 1 つです。複数のスレッドが互いのリソースを待機すると、デッドロックの問題が発生することがあります。デッドロックが時間内に処理されないと、プログラムがフリーズするだけでなく、システムのパフォーマンスと安定性に影響を与えます。したがって、C++ 開発におけるデッドロック問題への対処方法を学ぶことは非常に重要です。 1. デッドロックの原因を理解する デッドロックの問題を解決するには、まずデッドロックの原因を理解する必要があります。デッドロックは通常、次のような場合に発生します。

ひまわりのリモコンは監視されるのでしょうか?ひまわりのリモコンソフトは、他のパソコンなどから情報を素早く取り出すのに役立ちますが、自分のパソコンのセキュリティに不安を感じている方も多いと思いますので、編集部がそんな疑問にお答えします。 Sunflower Remote Control は監視されますか? 回答: いいえ。 Sunflower Remote Control にはこれを行う機能がありますが、Sunflower Remote Control のような長年設立された大手ソフトウェア会社はそのようなことは行いません。オフィスワーカーにとって、コンピュータにインストールしなければならないソフトウェアはおそらくリモートコントロールでしょう。多くの人にとって、自宅で仕事をしているか、外出できないため、離れた場所から別のコンピューターを介して現在のコンピューターを操作することで、時間を大幅に節約できます。
