これがここでの質問なのか、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 回の取引で行っていると思います。