■99149 / ) |
Re[11]: Adapter.Fill実行1回目が遅い |
□投稿者/ 魔界の仮面弁士 (3291回)-(2022/02/10(Thu) 21:59:45)
|
■No99147 (ど さん) に返信 > コードをはしおってしまって申し訳ないです。 > OleDbConnection nwindConn = new OleDbConnection(connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C\:test\mydb.accdb"); これ、そもそも構文エラーになりません? パスだけでなく、トランザクション処理もなんだか不自然…。
> OleDbCommand selectCMD = new OleDbCommand("SELECT CustomerID, CompanyName FROM Customers", nwindConn); nwindConn という名前からして、Access テンプレートの 「ノースウィンド 2007」サンプルデータベースかと思いましたが、 Customers テーブルの列定義が違っていますね。
第三者が検証できるよう、初回低速化が発生している accdb のサンプルを共有いただくことはできますか? あるいはデータベースファイルを新規に作成し、そこにテーブルをエクスポートしてみた場合、 新規ファイルでも同様に初回低速の現象が見られますか? (特定のファイルだけで起きる事象なのか、環境依存の問題なのかを切り分ける意図です)
で。 Open が特に遅いわけではなく、初回の Fill のみが遅いとなると、 (1) 断片化などにより、初回のスキーマ抽出に時間がかかっている (2) 使用中のセキュリティソフトによる監査が初回アクセス時にのみ発生してしまっている (3) ADO.NET 内部のビルトイン データ アクセス トレース(BidTrace) による影響 ぐらいしか思い当たりませんでした。
|
|