この記事では、SQL Server ディスク要求タイムアウトの 833 エラーの原因と解決策を主に紹介します。必要な友達は参考にしてください。
最近、SQL Server サーバーの応答が非常に遅く、クライアント要求でエラーが発生しました。データベース内 ディスク要求が完了するまでに 15 秒以上かかったというエラー メッセージがエラー ログに表示されます。
この種の問題の場合、ストレージ システムやディスクの障害なのか、SQL Server 自体の問題なのか、それともアプリケーションが原因なのか?どうやって解決すればいいでしょうか?
この記事では、この問題を引き起こす特定の要因の簡単な分析を行いますが、潜在的な可能性をすべてカバーできるわけではないため、同様の問題が発生した場合は、具体的な分析を行う必要があります。
SQL Server のディスク リクエスト タイムアウト
英語版のエラー エラー メッセージ は次のとおりです:
SQL Server で %d 回の I/O リクエストが発生し、%d を超える時間がかかりましたデータベース ID %d のファイル [%ls] の完了まで秒です。OS ファイル ハンドルは 0x%p です。0
最新のロング I/O のオフセットは %#016I64x
中国語版のエラー メッセージは次のとおりです。以下の通り
SQL Server は、データベース ID %4! のファイル [%3!] に対して、完了までに %2! 秒以上かかる I/O 要求を検出しました。オペレーティング システムのファイル ハンドルは 0x%5! です。最新の長期 I/O のオフセットは %6!
メッセージ情報のエラーメッセージ No.833 を参照
具体的な 833 エラーアプリケーションディスクリクエストタイムアウト現象
具体的なエラー状況は次のとおりです:
SQL Server はデータベース n 内のファイル *** に対する m 個の I/O 要求を検出しましたが、完了するまでに 15 秒以上かかりました。オペレーティング システムのファイル ハンドルは *** です。最新の長期 I/O オフセットは次のとおりです: ***
つまり、データベース ファイルの自動拡張中にエラーが発生しました。
。
さらに興味深いのは、DBA がこのエラー メッセージをストレージ システムの障害または不安定性が原因である可能性があると考え、ストレージ (接続されたディスクではなく SAN ストレージ) を担当するエンジニアに報告したことです。
ストレージ エンジニアはストレージに問題はないと思ったが、サーバーを確認したところ、サーバーが異常でメモリが「ほぼ満杯」だったという。ストレージを担当するエンジニアが専門の DBA ではないことを考慮すると、SQL Server データベース サーバーのメモリ使用量についてあまり詳しくない可能性があるため、この質問をするのは当然のことです。
データベースサーバーが使用するストレージは高性能のSANストレージであるため、ストレージはサービスとして存在し、他のサーバーでディスクリクエストが発生する可能性は低いです。ストレージ障害」は、単にストレージ障害として識別されます。
それでは、その理由は何でしょうか?
データベースエンジンエラー833の意味
まず、この833エラーの具体的な意味を見てみましょう。これは古典的な本に非常に明確に書かれています。
要するに、SQL Server がディスクの読み取りと書き込みを要求したときに、ビジーなディスクまたはその他の要因が発生し、15 秒以上完了していないことを意味します
たとえば、データの読み取りと書き込みの場合、多忙またはその他の問題により、応答が遅すぎるか、応答が十分にタイムリーではありません。これは間違いなく SQL Server の外部サーバーの応答時間に重大な影響を及ぼします。
上記は単純な分析です。この問題は一般的ではなく、ストレージ システムに問題がある可能性は低いため、現在のサーバー自体の要因を突き止める可能性が非常に高くなります。
原因分析
専用の SQL Server サーバーであるため、他のアプリケーションからのリクエストはなく、おそらく sqlserver データベースへのリクエストに関連しています。
実際、この問題が発生する前に、サーバーは通常非常に安定しています (CPU が 60% を超えることはほとんどなく、メモリの PLE は 20 分以上安定しており、ディスク IO 遅延は低いなど)。 .)、しかし、時々、しばらくの間、けいれんが発生します
けいれんが発生すると、CPU が約 80% に急上昇し、メモリの PLE が大幅に低下し、IO 遅延が大幅に増加します。
SQL Server の Session からのみ開始できます。SQL Server でアクティブなセッションを観察すると、特定の種類の SQL ステートメントの query 時間が非常に長いことがわかりました。一定期間内の SQL クエリ 内部実行の頻度は比較的高いです。
しかし、通常の状況では、この種の SQL の実行効率はまだ比較的高いのに、なぜ突然非常に低くなるのでしょうか。
アクティブなセッションの対応する実行計画を確認したところ、このタイプのアクティブなセッションの待機ステータスは IO 待機 (PAGEIOLATCH_SH) であり、SQL の実行は完全に予期しないことがわかりました。
同様のクエリが比較的頻繁に実行されるため、SQLの実行効率が低下すると、そのようなSessionがサーバー上に大量に蓄積されることになります
なぜSQL文は正常に実行されるのでしょうか?突然非常に遅くなりました
その理由は、ある時点で SQL Server が統計情報の update を自動的にトリガーしたためです。これは比較的大きなテーブルですが、統計情報の更新のためのデフォルトのサンプリング率では十分ではありません、サンプリング率が十分でない場合、この統計情報は完全に利用できません。
統計情報の自動収集が完了すると、現在収集されている統計情報に基づいて、前の SQL ステートメントに対して効率的であると思われる方法 (インデックス シークではなくテーブル スキャン) を発行します。実際には、この方法は合理的ではありません。
これにより、対応する SQL がクエリを実装するために不当な実行プランを使用することになり、クライアントが大量のセッションを送信し、非効率な方法で実行が遅くなります。
そのため、CPU が急増し、IO レイテンシが増加し、メモリの PLE が大幅に低下します。
これを理解するのは難しくありません。何十ものクエリセッションが不当な方法でディスクにリクエストを行っており、ディスクはアクティブなセッションからのデータリクエストでビジー状態であり、データまたは index ファイルが原因で応答できません。自動拡張リクエストにより、冒頭で述べた問題が発生しました。
最終的には、インデックスの再構築により解決しました(統計情報の更新を促進する、もちろん純粋な統計情報の更新も可能です)。長期的な予防のためには、閾値とサンプリング率を人為的に定義するジョブを手配する必要があります。統計情報更新のお知らせです。
概要:
データベースサーバーの問題の多くは、観察された現象の一部に対応して連鎖反応プロセスであり、その反応は表面に現れているものとは異なる可能性が非常に高くなります (ディスク要求のタイムアウト、問題はストレージのせい?これらは問題の根本的な原因ではありません。
問題に直面したとき、私たちは根源に立ち返り、最も根本的な原因を見つけなければなりません。それが問題解決の鍵となります。
以上がSQL Server ディスク要求タイムアウト 833 エラーの原因と解決策_MsSqlの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

MySQLは、データの保存と管理に適した効率的なリレーショナルデータベース管理システムです。その利点には、高性能クエリ、柔軟なトランザクション処理、豊富なデータ型が含まれます。実際のアプリケーションでは、MySQLはeコマースプラットフォーム、ソーシャルネットワーク、コンテンツ管理システムでよく使用されますが、パフォーマンスの最適化、データセキュリティ、スケーラビリティに注意を払う必要があります。

SQLとMySQLの関係は、標準言語と特定の実装との関係です。 1.SQLは、リレーショナルデータベースの管理と操作に使用される標準言語であり、データの追加、削除、変更、クエリを可能にします。 2.MYSQLは、SQLを運用言語として使用し、効率的なデータストレージと管理を提供する特定のデータベース管理システムです。

INNODBは、レドログと非論的なものを使用して、データの一貫性と信頼性を確保しています。 1.レドログは、クラッシュの回復とトランザクションの持続性を確保するために、データページの変更を記録します。 2.Undologsは、元のデータ値を記録し、トランザクションロールバックとMVCCをサポートします。

説明コマンドのキーメトリックには、タイプ、キー、行、および追加が含まれます。 1)タイプは、クエリのアクセスタイプを反映しています。値が高いほど、constなどの効率が高くなります。 2)キーは使用されているインデックスを表示し、nullはインデックスがないことを示します。 3)行はスキャンされた行の数を推定し、クエリのパフォーマンスに影響します。 4)追加の情報を最適化する必要があるというFilesortプロンプトを使用するなど、追加情報を提供します。

Temporaryを使用すると、MySQLクエリに一時テーブルを作成する必要があることが示されています。これは、異なる列、またはインデックスされていない列を使用して順番に一般的に見られます。インデックスの発生を回避し、クエリを書き直し、クエリのパフォーマンスを改善できます。具体的には、expliect出力に使用を使用する場合、MySQLがクエリを処理するために一時テーブルを作成する必要があることを意味します。これは通常、次の場合に発生します。1)個別またはグループビーを使用する場合の重複排除またはグループ化。 2)Orderbyに非インデックス列が含まれているときに並べ替えます。 3)複雑なサブクエリを使用するか、操作に参加します。最適化方法には以下が含まれます。1)OrderbyとGroupB


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
