マイクロンさん
マイクロンさんが挙げている、似たような質問のリンクから抜粋しますが、下記はお試しになりましたでしょうか?
>だとすると、単にアクセス対象のデータがキャッシュされているかいないかの違いだけかもしれません。
>2回目のクエリ実行であっても、dbcc dropcleanbuffersを実行後に実行すると、1回目と同じぐらいの時間がかかりますか?
>もし、そうだとすると、データがキャッシュされているかどうかの違いということになるかと思います。
もし、上記を試してみて、2回目のクエリ実行であっても、dbcc dropcleanbuffersを実行後の実行で遅い場合は、データをキャッシュさせればOKということになります。
ということで、もしその場合に「データインポート時に時間かかかる動作はまとめて行いたいと考えています。」ということであれば、
データインポートの処理の最後に、そのテーブルに対してSELECTクエリを一度実行しておけば、キャッシュにデータが乗るので、それ以降高速に実行されると思います。
ちなみに「キャッシュを設定している」という箇所ですが、SQLServerは必ずメモリに一度データをキャッシュする必要があります。そのため、メモリに乗っけるのをデータインポートの処理の最後に連続して行えばいいのでは、という発想です。
---------------------------------------------------------------------
参考になった投稿には回答としてマークいただけると嬉しいです!