.NET/C# で Access に大量のレコードを書き込む (一括挿入)
から MS Access データベースに一括挿入を実行する場合.NET では、DAO を利用する方が、利用するよりも速いことが判明することがよくあります。 ADO.NET.
パフォーマンス向上のための DAO の使用
トランザクションの無効化と組み合わせて DAO フィールド経由でテーブル列にアクセスすると、挿入プロセスが最適化されます。推奨されるアプローチとタイミングは次のとおりです:
-
2.8 秒: テーブル列を参照するために DAO.Fields と一緒に DAO を使用し、トランザクションを非アクティブ化します。
-
11.0 秒: DAO を利用し、その列を使用して列を参照します。 Index.
-
17.0 秒: 列を名前で参照するときに DAO を使用します。
パフォーマンスが低下する他のアプローチ
-
79.0 秒: ADO.NET を使用して行ごとに個別の INSERT ステートメントを生成します。
-
86.0 秒: 「バッチ」挿入には、DataTable および DataAdapter を備えた ADO.NET を使用します (Access ではサポートされていません)。
-
2.8 秒: オートメーションを使用してテキスト ファイルに書き込み、Access にインポートする(脆弱なメソッド)。
大規模なレコードの挿入に DAO が優れている理由
- 列とその型を含むテーブル プロパティへの直接アクセス。
- トランザクション処理が簡素化されました。
- 以前と比較してオーバーヘッドが削減されました。 ADO.NET.
追加の観察
- DAO.Fields を使用して列にアクセスすると、プロセスが大幅に高速化されます。
- トランザクション有益な場合もありますが、小規模なバッチではオーバーヘッドが発生する可能性がありますサイズ。
- 名前ではなくインデックスで列を参照すると、パフォーマンスが向上します。
以上が.NET/C# から MS Access へのレコードの一括挿入を最速で実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。