[解決済み] オラクルによるページング
2022-05-13 08:51:50
質問
私はOracleにあまり詳しくありません。 25万件のレコードがあり、1ページあたり100件表示させたいと思っています。 現在、私はデータアダプタとデータセットを使用してデータセットに25万件のすべてのレコードを取得する1つのストアドプロシージャを持っており、データアダプタはストアドプロシージャからの結果に対してFill(dataset)メソッドを実行します。 パラメータとして渡すことができる整数値として、"ページ番号" と "ページあたりのレコード数" がある場合、その特定のセクションだけを取得する最良の方法は何でしょうか。 例えば、ページ番号として10を、ページ数として120を渡すと、select文から1880番目から1200番目までが得られるとか、そんな感じですが、頭の中の計算が狂っているかもしれません。
私はこれをC#の.NETでやっていますが、それは重要ではなく、SQL側でそれを正しく行うことができれば、私はクールであるべきだと思いました。
更新: Brian の提案を使用することができ、それは素晴らしい動作をしています。 いくつかの最適化に取り組みたいと思いますが、ページは 1 分ではなく 4 ~ 5 秒で表示され、私のページング制御は私の新しいストアド プロックと非常にうまく統合することができました。
どのように解決するのですか?
次のような方法があります。 Frans Bouma氏のブログより
SELECT * FROM
(
SELECT a.*, rownum r__
FROM
(
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
) a
WHERE rownum < ((pageNumber * pageSize) + 1 )
)
WHERE r__ >= (((pageNumber-1) * pageSize) + 1)
関連
-
[解決済み] SQL Server : 列を行に変換する
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] カラム名の変更 SQL Server 2008
-
[解決済み] 複数の列に対してSELECT DISTINCTする方法(またはできる方法)は?
-
[解決済み] オラクル:テーブルが存在する場合
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
-
[解決済み】OracleでAUTO_INCREMENTでidを作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
windows mysql prompt access denied for user ''@'localhost' to database.
-
[解決済み] MySQLの「スキーマの作成」と「データベースの作成」 - 違いはあるのか?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] PostgreSQLからのPL/pgSQL出力をCSVファイルに保存する
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] SQL Serverで、ある日付より大きいすべての日付を照会するにはどうすればよいですか?
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?