JDBCを使用してデータベースに依存しないアプリケーションを作成しようとしています。ここで、テーブルから上位N個のエントリをフェッチする方法が必要です。JDBCにメソッドがあるのを見ましたがsetMaxRows
、データベースがすべての結果をプッシュし、JDBCドライバーだけが結果を減らすのではないかと心配しているので、それを使用することに抵抗があります。上位5つの結果が必要な場合、10億行のテーブルになります(テーブルには使用可能なインデックスがあります)。
あらゆる種類のデータベースに対して特別なSQLステートメントを作成することはあまり良いことではありませんが、データベースが巧妙なクエリプランニングを実行し、必要以上の結果のフェッチを停止できるようにします。
setMaxRows
データベースにあまり機能しないように指示することに頼ることはできますか?
最悪の場合、私はこれが期待通りに機能することに頼ることができないと思います。私は主にPostgres9.1とOracle11.2に興味があるので、誰かがこれらのデータベースの経験がある場合は、前に進んでください。