私は現在、古いデータベースをより新しいスタイルに変換するプログラムに取り組んでいます。私が割り当てたタスクの1つは、古いバイナリ列を削除し、それらをリポジトリのドキュメントに変換することです。.NET - クエリが完了する前にDataReaderからの読み取りを開始しますか?
テーブルには約110万行があり、処理には約12時間かかります。
私はこのすべてを少し速くする方法を探しています。私が見ていることの1つは、データをすばやく取得することです。それが完了する前に私のクエリの結果に到達する方法があれば?私は、クエリアナライザでこのテーブルに対して "select *"ステートメントを実行するとすぐに結果が返ってくることに気がつきましたが、.NETでExecuteReaderを使用すると、クエリの実行に30分ほどかかることがあります。 。
実際のコードはどのように見えますか?索引付けされていない列に対して重いwhere-queriesがあるようです。複数の列でフィルタリングせずにプレーンなSELECTを実行すると、ExecuteReaderでも高速に処理できます。 –
クエリを分割して少数の行に分割し、いくつかのスレッドを実行してそれらを処理できますか? – clyc
@パウリ - 問題はデータの量ほどのインデックスではありません。私はいくつかのBLOB列を扱っています。 :( –