長くなって申し訳ありませんが、分析に役立つように、できるだけ多くの情報を提供したいと思います。
同様の問題のある投稿がいくつかあることは知っていますが、これらのさまざまな投稿やWebで入手可能なその他の情報を既にフォローしていますが、問題は解決しません。
SQL Serverのパフォーマンスに深刻な問題があり、ユーザーを狂わせています。この問題は数年間続き、2016年末までは別のエンティティによって管理され、2017年以降は私が管理するようになりました。
2017年の半ばに、Microsoft SQL Server 2012パフォーマンスダッシュボードレポートに示されているインデックス付けのヒントに従って問題を解決することができました。効果はすぐに現れ、魔法のように聞こえました。最後の数日はほとんど常に100%だったプロセッサーが非常に穏やかになり、ユーザーのフィードバックが鳴り響きました。通常、特定のリストを取得するのに20分かかり、最終的に数秒で完了できるため、ERP技術者でさえ喜んでいました。
しかし、時間の経過とともに、それは徐々に悪化し始めました。インデックスが多すぎるとパフォーマンスが低下するのではないかと心配して、インデックスの作成を避けました。しかし、ある時点で、不要なものを削除して、Performance Dashboardが提案する新しいものを作成する必要がありました。しかし、影響はありません。
ERPでの保存とコンサルティングの際に感じられる遅さは本質的にです。
次の構成のSQL Server 2016 Enterprise(64ビット)専用のWindows Server 2012 R2があります。
- CPU:Intel Xeon CPU E5-2650 v3 @ 2.30GHz
- メモリ:84 GB
- ストレージに関して、サーバーにはオペレーティングシステム専用のボリューム、データ専用のログ、およびログ専用のボリュームがあります。
- 17データベース
- ユーザー:
- 最大のDBでは、ほぼ113人のユーザーが同時に接続されています
- 他には約9人のユーザーがいます
- それらの2つで3 + 3
- 残りのユーザーはそれぞれ1人だけです
- 大規模なデータベース用にも作成するWebがありますが、使用頻度ははるかに低く、約20人のユーザーがいるはずです。
- DBのサイズ:
- 最大のデータベースは290 GBです。
- 2番目に大きいものは100 GB
- 3番目に大きいものは20 GB
- 4番目の14 GB
- 残りはそれぞれ3 GBを少し超えています
これは本番環境のインスタンスですが、ほとんどの場合私がそこに接続しているだけなので、この目的のために無視できると思われる開発のインスタンスもありますが、この問題は、接続していない場合でも常に発生します。
プロセッサはほとんどの場合、次のようになります。
夜間に実行するルーチン(問題はありません)と日中に実行するルーチンがあります。
ユーザーは、リモートデスクトップを介して、ODBC 32で構成された他のマシンに接続し、SQL Serverにアクセスします。
サーバーが配置されているデータセンターには、100/100 Mbpsと私がいる場所があります。ほとんどのサイトはMPLSによってリンクされ、他のサイトはIPSec(FOから4Gまで)によってリンクされています。プロバイダーは多くの分析を行い、回路は大丈夫です。
キャッシュヒット率は99%(ユーザー要求とユーザーセッションの両方)
待機は次のようになります。
私はすでにPerfmonでデータを収集しており、それがあなたの分析に役立つ場合は結果が得られます-個人的には、分析から結論を得ることはできませんでした。
この問題を解決するためのサポートに期待しており、解決に必要と思われる情報を提供することができます。
どうもありがとうございました。
これがsp_blitzマークダウンです(会社名を仮名に置き換えました)。
優先度1:信頼性:
2週間以上前の最後の良いDBCC CHECKDB
- 主人
モデル-最後に成功したCHECKDB:2018-02-07 15:04:26.560
msdb-最後に成功したCHECKDB:2018-02-07 15:04:27.740
優先度10:パフォーマンス:
コア数が奇数のCPU
ノード0には5つのコアが割り当てられています。これは本当に悪いNUMA構成です。
ノード1には5つのコアが割り当てられています。これは本当に悪いNUMA構成です。
優先度20:ファイル構成:
- CドライブtempdbのTempDB-tempdbデータベースには、Cドライブにファイルがあります。TempDBは予期せず頻繁に増大し、サーバーがCドライブの空き容量を使い果たして激しくクラッシュする危険にさらされます。Cは他のドライブよりもかなり遅いことが多いため、パフォーマンスが低下する可能性があります。
優先度50:信頼性:
- デフォルトのトレースに最近記録されたエラー
- master-2018-03-07 08:43:11.72ログオンエラー:17892、重大度:20、状態:1. 2018-03-07 08:43:11.72トリガーの実行が原因で、ログイン 'example_user'のログオンログオンが失敗しました。[クライアント:IPADDR]
(注:ユーザーセッションを制限するトリガーが有効になっているため、このような多くのエラーが発生します-ERPライセンスの使用制御の場合)
ページ検証が最適ではありません
DATABASE_A-データベース[DATABASE_A]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_B-データベース[DATABASE_B]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_C-データベース[DATABASE_C]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_D-データベース[DATABASE_D]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_E-データベース[DATABASE_E]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_F-データベース[DATABASE_F]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_G-データベース[DATABASE_G]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_H-データベース[DATABASE_H]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_I-データベース[DATABASE_I]のページ検証はありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_Z-データベース[DATABASE_Z]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_K-データベース[DATABASE_K]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_J-データベース[DATABASE_J]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_L-データベース[DATABASE_L]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_M-データベース[DATABASE_M]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_O-データベース[DATABASE_O]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_P-データベース[DATABASE_P]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_Q-データベース[DATABASE_Q]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_R-データベース[DATABASE_R]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_S-データベース[DATABASE_S]には、ページ検証用のNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_T-データベース[DATABASE_T]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_U-データベース[DATABASE_U]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_V-データベース[DATABASE_V]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
DATABASE_X-データベース[DATABASE_X]には、ページ検証のためのNONEがありません。SQL Serverでは、ストレージの破損を認識して回復するのが困難な場合があります。代わりにCHECKSUMの使用を検討してください。
リモートDAC無効-専用管理接続(DAC)へのリモートアクセスが有効になっていません。DACを使用すると、SQL Serverが応答しない場合のリモートトラブルシューティングがはるかに簡単になります。
優先度50:サーバー情報:
- インスタントファイルの初期化が有効になっていません-IFIを有効にして、リストアとデータファイルの増大を高速化することを検討してください。
優先度100:パフォーマンス:
変更されたフィルファクター
DATABASE_A-[DATABASE_A]データベースには、フィルファクタ= 70%の417個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_B-[DATABASE_B]データベースには、フィルファクタ= 70%の318個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_C-[DATABASE_C]データベースには、Fill Factor = 70%の346個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_D-[DATABASE_D]データベースには、フィルファクタ= 70%の663個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_E-[DATABASE_E]データベースには、フィルファクタ= 70%の335個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_F-[DATABASE_F]データベースには、フィルファクタ= 70%のオブジェクトが1705個あります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_G-[DATABASE_G]データベースには、フィルファクタ= 70%の671個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_H-[DATABASE_H]データベースには、Fill Factor = 70%の2364個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_I-[DATABASE_I]データベースには、フィルファクタ= 70%の1658個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_Z-[DATABASE_Z]データベースには、フィルファクタ= 70%の673個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_K-[DATABASE_K]データベースには、フィルファクタ= 70%のオブジェクトが312個あります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_J-[DATABASE_J]データベースには、フィルファクタ= 70%の864個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_L-[DATABASE_L]データベースには、フィルファクタ= 70%の1170個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_M-[DATABASE_M]データベースには、フィルファクタ= 70%の382個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_O-[DATABASE_O]データベースには、フィルファクタ= 70%の356個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
msdb-[msdb]データベースには、Fill Factor = 70%の8つのオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_P-[DATABASE_P]データベースには、フィルファクタ= 70%の291個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_Q-[DATABASE_Q]データベースには、フィルファクタ= 70%の343個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_R-[DATABASE_R]データベースには、フィルファクタ= 70%の2048個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_S-[DATABASE_S]データベースには、フィルファクタ= 70%の325個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_T-[DATABASE_T]データベースには、フィルファクタ= 70%の322個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_U-[DATABASE_U]データベースには、フィルファクタ= 70%の351個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_V-[DATABASE_V]データベースには、フィルファクタ= 70%のオブジェクトが312個あります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
DATABASE_X-[DATABASE_X]データベースには、フィルファクタ= 70%の352個のオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
tempdb-[tempdb]データベースには、Fill Factor = 70%の2つのオブジェクトがあります。これにより、メモリとストレージのパフォーマンスの問題が発生する可能性がありますが、ページの分割が妨げられることもあります。
1つのクエリに対する多くのプラン-20763プランは、プランキャッシュ内の1つのクエリに対して存在します。つまり、おそらくパラメーター化の問題があります。
サーバートリガー有効-サーバートリガー[connection_limit_trigger]が有効です。そのトリガーが何をしているのかを理解していることを確認してください-トリガーが少ないほど良いです。
RECOMPILE付きのストアドプロシージャ
master-[master]。[dbo]。[sp_AllNightLog]は、ストアドプロシージャコードにWITH RECOMPILEが含まれているため、コードが常に再コンパイルされるため、CPU使用率が増加する可能性があります。
master-[master]。[dbo]。[sp_AllNightLog_Setup]は、ストアドプロシージャコードにWITH RECOMPILEが含まれているため、コードが常に再コンパイルされるため、CPU使用率が増加する可能性があります。
優先度110:パフォーマンス:
クラスタ化インデックスのないアクティブテーブル
DATABASE_A-[DATABASE_A]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_B-[DATABASE_B]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_C-[DATABASE_C]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_E-[DATABASE_E]データベースには、アクティブにクエリされているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_F-[DATABASE_F]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_H-[DATABASE_H]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_I-[DATABASE_I]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_K-[DATABASE_K]データベースには、アクティブにクエリされているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_O-[DATABASE_O]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_Q-[DATABASE_Q]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_S-[DATABASE_S]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_T-[DATABASE_T]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_U-[DATABASE_U]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_V-[DATABASE_V]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
DATABASE_X-[DATABASE_X]データベースには、アクティブに照会されているヒープ(クラスター化インデックスのないテーブル)があります。
優先度150:パフォーマンス:
(注:ここではアドバイスはありませんが、文字の制限のために含めることができませんでした。他に共有する方法がある場合は、その旨をお知らせください。)