Access 2007 を SQL Server 2008 のフロント エンドとして使用しているときに、シーケンシャル GUID を使用する場合に SQL Server のパフォーマンスを向上させる方法を知りたいです (これが唯一のコンテキストであることに注意してください)。
私はいくつかのテストを行いました (そして、特にシーケンシャルGUID を使用する場合の SQL Server から、いくつかのかなり驚くべき結果を得ました: 挿入のパフォーマンスは非常に急速に低下し、私にはそれほど早く低下するのは正しくないようです.
基本的に、テストは次のとおりです。
Access フロントエンドから、VBA のみを使用して、100,000 レコードを 1000 のバッチで順番に挿入します。
- ID とシーケンシャル GUID の両方を PK として試してみました。
- 私はSQL Server 2008 Standard(デフォルトのインストールだけで特別な調整はありません)とAccess 2007データベースをバックエンドとして試しました。フロントエンドにリンクされたすべてのテーブル。
結果の一部 (さらに、テストに関する私のブログ エントリで生データを入手できます):
データベースが大きくなるにつれて、挿入のパフォーマンスが低下することは明らかですが、ここでは SQL Server のパフォーマンスがまったく良くありません。
http://blog.nkadesign.com/wp-content/uploads/2009/04/chart02.png
SQL Server の結果の拡大表示: http://blog.nkadesign.com/wp-content/uploads/2009/04/chart03.png
2009 年 4 月 13 日編集
サーバー構成に問題があることがわかり、ブログのテストを更新しました。
皆さんの回答に感謝します。彼らは私を大いに助けてくれました。