問題タブ [pipelined-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1672 参照

oracle - パイプライン化された弱く型付けされた ref カーソルの使用を最適化する方法

手順に問題があります。「大きな」セット (800 以上の親、1300 以上の子) に対して実行すると、非常に遅くなります (30 ~ 60 秒)。

基本的な考え方は、特定の検索基準に適合するすべての親レコード (およびそれぞれの子レコード) と、計算する必要がある 3 つの追加情報を取得することです。

問題に対する私のアプローチは

  1. 計算値用の追加フィールドを持つカスタム レコード タイプを作成します。
  2. このレコード タイプへの参照は、メイン処理関数によって制御される各関数に渡すことができます。
  3. 親レコードごとに値が計算されるので、それをレコードに追加します。

各プロシージャGET_PARENT_RECORDSGET_CHILD_RECORDSは検索ごとに 1 回呼び出され、各計算関数は N 回実行されます (N は親レコードまたは子レコードの数です)。


質問 1 : これは正しいアプローチですか? (弱く型付けされたカーソル、パイプライン化された関数) そうでない場合、やり直すことができると仮定して、どのように問題に取り組むべきでしたか?

質問 2 : 完全な書き直しを除いて、提供されたコードで明らかに改善できる点はありますか?

質問 3 : または、プロシージャを数回実行したときに、同じ遅いクエリが 20 秒で返されたことに気付いたので、何か他のことが間違っている可能性がありますか?


パッケージ定義

パッケージ本体


更新 昨日、調査を行ったところ、(Toad の) Quest Batch SQL Optimizer に出会いました。パッケージを差し込んで、これが私が得たものです。

バッチ オプティマイザーの結果 バッチ オプティマイザーの結果

複雑なクエリ 複雑なクエリ

問題のあるクエリ 問題のあるクエリ

0 投票する
3 に答える
20386 参照

oracle - SELECT * FROM TABLE(pipelined function): 結果の行の順序を確認できますか?

次の例では、私は常に「1, 2」を取得しますか?それとも「2, 1」を取得することは可能ですか?ドキュメントのどこに記載されているか教えてください。

答えが「はい」の場合は、SELECT ステートメントで結果セットの順序を確認する方法がORDER BYないことを意味します。ORDER SIBLINGS

ありがとうございました。

0 投票する
2 に答える
142 参照

sql - 関数がパイプライン処理されなくなったときに PL/SQL 関数呼び出しを変更する方法は?

次のようなPL/SQL関数があります。

そして、そこから選択します (iBatis コード):

PIPELINED関数からステートメントを削除する場合、この選択をどのように変更すればよいですか?

0 投票する
1 に答える
1081 参照

c# - ODP.NET でのパイプライン関数の実行

「ジャストインタイム」で C# のパイプライン関数からデータを選択したい。つまり、関数は (ステータス レポートのように) 毎秒行をパイプ処理し、C# でデータをすぐに取得したいと考えています。

これまでのところ、次のものがあります。

私のサンプル関数は、PIPE ROW の前に 1 秒のスリープで n 行 (唯一の Function-Parameter) 行を返します。このコードを実行すると、一度に 10 行を取得するまで 10 秒待たなければなりません。

しかし、もう一度実行すると、完全に機能し、毎秒 1 行 (合計で 10 行) が取得されます。行を追加すると、ステートメントキャッシングが原因かもしれません

2回目の実行でも10行のブロックが得られます。

質問は次のとおりです。コードを初めて実行するときに、10 行を「ジャスト イン タイム」(1 秒ごとに 1 行ずつ) 取得する方法を知っている人はいますか?

どうもありがとう!

乾杯クリスチャン