問題タブ [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.
oracle - パイプライン化された弱く型付けされた ref カーソルの使用を最適化する方法
手順に問題があります。「大きな」セット (800 以上の親、1300 以上の子) に対して実行すると、非常に遅くなります (30 ~ 60 秒)。
基本的な考え方は、特定の検索基準に適合するすべての親レコード (およびそれぞれの子レコード) と、計算する必要がある 3 つの追加情報を取得することです。
問題に対する私のアプローチは
- 計算値用の追加フィールドを持つカスタム レコード タイプを作成します。
- このレコード タイプへの参照は、メイン処理関数によって制御される各関数に渡すことができます。
- 親レコードごとに値が計算されるので、それをレコードに追加します。
各プロシージャGET_PARENT_RECORDS
とGET_CHILD_RECORDS
は検索ごとに 1 回呼び出され、各計算関数は N 回実行されます (N は親レコードまたは子レコードの数です)。
質問 1 : これは正しいアプローチですか? (弱く型付けされたカーソル、パイプライン化された関数) そうでない場合、やり直すことができると仮定して、どのように問題に取り組むべきでしたか?
質問 2 : 完全な書き直しを除いて、提供されたコードで明らかに改善できる点はありますか?
質問 3 : または、プロシージャを数回実行したときに、同じ遅いクエリが 20 秒で返されたことに気付いたので、何か他のことが間違っている可能性がありますか?
パッケージ定義
パッケージ本体
更新 昨日、調査を行ったところ、(Toad の) Quest Batch SQL Optimizer に出会いました。パッケージを差し込んで、これが私が得たものです。
バッチ オプティマイザーの結果
複雑なクエリ
問題のあるクエリ
oracle - SELECT * FROM TABLE(pipelined function): 結果の行の順序を確認できますか?
次の例では、私は常に「1, 2」を取得しますか?それとも「2, 1」を取得することは可能ですか?ドキュメントのどこに記載されているか教えてください。
答えが「はい」の場合は、SELECT ステートメントで結果セットの順序を確認する方法がORDER BY
ないことを意味します。ORDER SIBLINGS
ありがとうございました。
sql - 関数がパイプライン処理されなくなったときに PL/SQL 関数呼び出しを変更する方法は?
次のようなPL/SQL関数があります。
そして、そこから選択します (iBatis コード):
PIPELINED
関数からステートメントを削除する場合、この選択をどのように変更すればよいですか?
c# - ODP.NET でのパイプライン関数の実行
「ジャストインタイム」で C# のパイプライン関数からデータを選択したい。つまり、関数は (ステータス レポートのように) 毎秒行をパイプ処理し、C# でデータをすぐに取得したいと考えています。
これまでのところ、次のものがあります。
私のサンプル関数は、PIPE ROW の前に 1 秒のスリープで n 行 (唯一の Function-Parameter) 行を返します。このコードを実行すると、一度に 10 行を取得するまで 10 秒待たなければなりません。
しかし、もう一度実行すると、完全に機能し、毎秒 1 行 (合計で 10 行) が取得されます。行を追加すると、ステートメントキャッシングが原因かもしれません
2回目の実行でも10行のブロックが得られます。
質問は次のとおりです。コードを初めて実行するときに、10 行を「ジャスト イン タイム」(1 秒ごとに 1 行ずつ) 取得する方法を知っている人はいますか?
どうもありがとう!
乾杯クリスチャン