- PR -

SQL Server ですこしづつ読み出したい

1
投稿者投稿内容
okaP
会議室デビュー日: 2003/08/28
投稿数: 4
投稿日時: 2006-08-08 19:40
Select文でたくさんのレコードが選択される場合に、
例えば100件づつ読み出して、画面(グリッド)に表示してから、
次の100件を読み出して、画面に表示(グリッドに追加)して、
・・・と最後まで読んで表示する、とするにはどうしたらよいですか?
最初の画面表示を早くして、見た目の応答を早くしたいのです。
(Enterprise Manager で全件表示するときみたいに。)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-08 21:04
引用:

okaPさんの書き込み (2006-08-08 19:40) より:

Select文でたくさんのレコードが選択される場合に、例えば100件づつ読み出して、画面(グリッド)に表示してから、次の100件を読み出して、画面に表示(グリッドに追加)して、・・・と最後まで読んで表示する、とするにはどうしたらよいですか?


どういうアプリケーションを使って、そうしたいのかがわからないのですが...

先頭の何件かを取得するような SQL コマンドを発行するか、
SELECT 文発行から制御が戻るまでの時間は考慮しなくても良いのであれば、
全件取得して、少しずつ表示するようにすれば良いのではないでしょうか?

"少しずつ表示" といっても、色んな方法があります。
Enterprise Manager や、MDB で使われるような表現の他に、
ページングを用いて表現することもできます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
okaP
会議室デビュー日: 2003/08/28
投稿数: 4
投稿日時: 2006-08-09 09:09
じゃんぬねっとさん、ありがとうございます。
「ページング」について調べてみます。

select文発行から制御が戻るまでの時間を短くしたい、
というのがやりたいです。
ORACLEでは、FIRST_ROWS(n) のヒント文で応答が高速になるよう最適化される、
とありました。
SQL Server 2000 または 2005 でこれに相当する機能を探しています。
dodo
ベテラン
会議室デビュー日: 2004/05/12
投稿数: 99
お住まい・勤務地: 東京都渋谷区
投稿日時: 2006-08-09 13:34
この記事の、「特定ページのデータを検索するクエリの記述方法」のSQLが参考になるかも。
http://www.atmarkit.co.jp/fdotnet/bookpreview/vs2005webapp_10/vs2005webapp_10_03.html
okaP
会議室デビュー日: 2003/08/28
投稿数: 4
投稿日時: 2006-08-09 15:01
dodoさん、ありがとうございます。
大変参考になりました。試してみます。

一方で、マニュアルをあさっているのですが、
「高速順方向専用カーソル」というのがありました。
SQL_ATTR_ROW_ARRAY_SIZE というので、取得件数を指定できそうな。
これを使って、ストアドプロシージャにすれば、少なくとも高速で、
select 文の条件も変化させられるのではないかと、期待してます。

ただ、気になるのがカーソルをオープンするときに、
結局select文の戻りを待ってしまうのではないか、と疑っています。
?使えるのかなー?



ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-09-05 11:14
row_number
1

スキルアップ/キャリアアップ(JOB@IT)