大量のデータが含まれるSybaseデータベースにクエリを実行する必要があり、制限を設定して、DBが10件の結果の後にクエリを停止するようにします。
重要なのはパフォーマンスであるため、すべての結果を検索してから、最後の10件の結果を返しても無駄です。
前もって感謝します
SET ROWCOUNT 10
最初に、次にこのセッションのすべてのクエリをさらにSET ROWCOUNT
は10行以下を返します。コメントが指摘しているように、これはallセッションでのクエリ(SELECT
s!だけでなく)がオフになる(0に設定する)か、別の方法で設定するまで影響します-この「グローバル」な効果により、あまり便利ではなくなります他のエンジンの典型的なLIMIT
句よりも本質的ですが、本質的にはクエリごとですが、それについては何もできないと思います。
Sybase 12.5以降では、selectステートメントで最上位の述語を使用できます。これは、MSSQLがかなり前から持っていた非ANSI機能です。
select top 10 * from people
サブクエリ、更新、または削除でtopを使用することはできません。対応する 'bottom'句はありません。
Topの利点は、リセットすることを心配する必要がないことです。データベース接続プールを使用している場合、これは特に重要です。
私はたまたまこの問題に遭遇し、TOPとSTART AT MySQL LIMITの代わりにsybase docを使用しています。
http://dcx.sybase.com/1101/en/dbusage_en11/first-order-formatting.html
SELECT TOP 2 START AT 5 * FROM Employees ORDER BY Surname DESC;