2012-02-22 8 views
0

SQL Serverから大きなデータを選択する際に問題が発生しました。私は200列と200 000行のビューを持っています。そして、私はSolrインデックス作成のためのビューを使用しています。SQL Server 2008 R2から大きなデータを選択する方法は?

ページングでデータを選択しようとしましたが、それに多くの時間がかかりました(6時間以上)。今私はページングせずにそれを選択して、それは1時間かかる。しかし、SQL Serverには多くのメモリが必要です。

SQL Server 2008 R2からこのような状況で大きなデータを選択する最良の方法または方法は何ですか?

ありがとうございます。

+0

ページングとフィルタリングの仕組みを示すために使用しているクエリを投稿できますか?ここ – u07ch

+0

が AS SpecialTable WITHページング 'のためのコードである(*、[DBO] FROM \t 'RowNumber関数' ASデータID BY(ORDER)OVER \t SELECT ROW_NUMBER()。[データ] )SpecialTable FROM SELECT * {0}と{1}の間のRowNumber; ' – Mirodil

+0

DataIDはインデックスに登録されていますか? – u07ch

答えて

0

200k行はそれほど多くはありません。間違いなく6時間かかりません.1時間でもありません。 私が問題になっている場合には、アプリケーションを選択したり、結果をアプリケーションに持ってきたりしませんでした。あなたは問題があなたが必要とするアプリケーションにデータをもたらすことにある

SELECT * FROM TABLE WITH(NOLOCK) 

場合は、クエリを実行しているとき、私はブロッキングをを無視するNOLOCKで選択を実行しているお勧めします は、多分あなたのテーブルには、他のプロセスによってアクセスbeeingてさあなたのやり方についての詳細を提供する

0

あなたの実行計画を見てみることをお勧めします。非常に最初の演算子のプロパティを見て、 "Good Enough Plan Found"またはタイムアウトが得られているかどうかを確認してください。後者の場合、非常に複雑なビューを持つことも、ビューを入れ子にすることもできます(ビューを呼び出すビュー)。オプティマイザに適切な実行計画を作成する機会を与えるために、クエリを簡略化するためにできることを確認してください。

関連する問題