TOP nはSELECT文のオプションで、問合わせの出力を特定の行数に自動的に制限します。このオプションを使用すると、テーブル全体をスキャンせずにテーブルのデータの小規模なサンプルを迅速に取得できます。例えば、Ordersテーブルのうち10行だけを出力して、テーブルのデータを確認することができます。
nの値は、マクロ、ストアド プロシージャ、またはUSINGリクエスト修飾子パラメータを使ってオペレータに渡すことができます。
パフォーマンスの最適化
TOP nオプションは、TOP nおよび「あらゆるN」リクエストの処理に対して最適化されています。次のような最適化があります。
- TOP n PERCENT操作に関してAMP実行時の最適化を追加
- 「あらゆるn」の最適化をINSERT ... SELECTおよびCREATE TABLE ... ASリクエスト、ビュー、nのすべての値の派生テーブルに拡張
- window関数のグループ列にソース リレーションのPIが含まれている場合、ハッシュ パーティション ケースで列の再配布を避ける最適化を追加
- WITH TIESオプションを指定しない、TOP n操作のRankLimit最適化を追加
- ORDER BY指定を指定するリクエストのTOP nに関する実行時の最適化を追加
TOP nオプションのパフォーマンスに関する考慮事項
最高のパフォーマンスを得るには、RANKまたはROW_NUMBERを指定したQUALIFY句の代わりにTOP nオプションを使用します。
- 最適の場合、TOP nオプションではパフォーマンスが向上します。
- 不適切な場合、TOP nオプションではパフォーマンスが変わりません。
TOP nオプションを使用したSELECT文で、ORDER BY句も指定しない場合、FastExportよりもBTEQを使用した方がSELECT文のパフォーマンスは向上します。