- - PR -
SQL Server ですこしづつ読み出したい
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-08-08 19:40
Select文でたくさんのレコードが選択される場合に、
例えば100件づつ読み出して、画面(グリッド)に表示してから、 次の100件を読み出して、画面に表示(グリッドに追加)して、 ・・・と最後まで読んで表示する、とするにはどうしたらよいですか? 最初の画面表示を早くして、見た目の応答を早くしたいのです。 (Enterprise Manager で全件表示するときみたいに。) | ||||
|
投稿日時: 2006-08-08 21:04
どういうアプリケーションを使って、そうしたいのかがわからないのですが... 先頭の何件かを取得するような SQL コマンドを発行するか、 SELECT 文発行から制御が戻るまでの時間は考慮しなくても良いのであれば、 全件取得して、少しずつ表示するようにすれば良いのではないでしょうか? "少しずつ表示" といっても、色んな方法があります。 Enterprise Manager や、MDB で使われるような表現の他に、 ページングを用いて表現することもできます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-08-09 09:09
じゃんぬねっとさん、ありがとうございます。
「ページング」について調べてみます。 select文発行から制御が戻るまでの時間を短くしたい、 というのがやりたいです。 ORACLEでは、FIRST_ROWS(n) のヒント文で応答が高速になるよう最適化される、 とありました。 SQL Server 2000 または 2005 でこれに相当する機能を探しています。 | ||||
|
投稿日時: 2006-08-09 13:34
この記事の、「特定ページのデータを検索するクエリの記述方法」のSQLが参考になるかも。
http://www.atmarkit.co.jp/fdotnet/bookpreview/vs2005webapp_10/vs2005webapp_10_03.html | ||||
|
投稿日時: 2006-08-09 15:01
dodoさん、ありがとうございます。
大変参考になりました。試してみます。 一方で、マニュアルをあさっているのですが、 「高速順方向専用カーソル」というのがありました。 SQL_ATTR_ROW_ARRAY_SIZE というので、取得件数を指定できそうな。 これを使って、ストアドプロシージャにすれば、少なくとも高速で、 select 文の条件も変化させられるのではないかと、期待してます。 ただ、気になるのがカーソルをオープンするときに、 結局select文の戻りを待ってしまうのではないか、と疑っています。 ?使えるのかなー? | ||||
|
投稿日時: 2006-09-05 11:14
row_number
| ||||
1
