Pipelined
関数、非常に古典的な例は、SELECT * FROM table name
を実行する場合です。 SQL*Plus
で 。何が起こるかというと、Oracleはテーブルからデータをストリーミングします。
YouTubeで動画を見るようなものです。
'ストリーミングという言葉に注意してください '..そして、この関数では、ストリーミングする行数を定義します。..すべてのストリーミング 行は、呼び出し元がすぐに利用できます。 Pipelined
素人の言葉で言えば、あなたが完了するまで私を待たせないでください、あなたが持っているものを私に与えてください、そして私を同時に処理して更新し続けてください。
最後の手順では、すべての行をパイプ処理した後、sleep
を開始します 10s
を呼び出す 、したがって、レコードはストリーミングされます 10秒ごとに発信者に送信します。
また、通常のテーブル関数は、すべての処理作業が完了するまで待機し続け、その後、結果セットカーソルへの参照を返します。
パイプライン化された関数は、メモリを節約すると主張しており、flushing
によるものです。 コンテンツはすぐに使用されるため、使用されるバッファは常に最小限に抑えられますが、ラウンドトリップ数は多くなります。