1

これがここでの質問なのか、DBA フォーラムでの質問なのかはわかりませんが、私の問題の背景をいくつか示します。Gentle Framework を使用してデータベースとやり取りする C# で記述されたアプリケーションがあります。私が直面している問題は、SQL Server 2008 R2 を実行している 2 つの異なるサーバーで発生しました。1 台のサーバーは 16 GB の RAM を搭載した Windows Server 2003 を実行しており、もう 1 台のサーバーは 64 GB の RAM を搭載した Windows Server 2008 R2 を実行しています。また、ギガビットのイントラネットを実行しているため、リソースまたはネットワークの問題であるとは思えません。

つまり、私の問題は...データベースに挿入するときに、各挿入に約30ミリ秒から始まり、約1900ミリ秒まで時間がかかり、突然189549ミリ秒(3分強)かかります。その 3 分間の挿入の後、時間は約 10 ミリ秒に低下し、再び増加し始めます。これは、ミリ秒単位の時間とクエリを示すログ ファイルへのリンクです。残念ながら、「専有」と呼ばれるもののため、正確な挿入物をあなたと共有することはできませんが、詳細に関する一般的な質問には答えることができます.

いくつかの追加の詳細:

  • リンクされたログ ファイルには、10 ミリ秒以上かかったクエリのみが表示されます。ログには、挿入の間にさらに多くのクエリがありますが、1 ~ 2 ミリ秒しかかかっていません。1 つをすべてのクエリにリンクできます。
  • 同様の問題に関する他の質問を見てきましたが、それらはRAIDまたは複数の挿入と複数の値のステートメントに関するものでした
  • これらはパラメータ化されたクエリです
  • テーブルにはインデックスが付けられており、他のアプリケーションがこれらのテーブルを使用しており、それらのインデックスに依存しているため、これらを削除することはできません。
  • Gentle が SQL を生成しているため、レコードの挿入方法を変更する選択肢はあまりないと思います。
  • 私は近いと思うこの質問を見つけました。
  • Gentle はこれらすべてを 1 回の取引で行っていると思います。
4

0 に答える 0