0
teiidを使用して、赤色シフトDBに対してかなり大きなSQL選択クエリを実行しています。私は私のクエリ内のクエリと内部のselect文を使用することを避けることにより、より良い応答時間を与えるために私のクエリを最適化しました。どのように私はクエリを実行すると、teiidクエリエンジンは、内側のクエリと内部のselect文を使用する別のバージョンに私のクエリを変更します。この動作をバイパスし、私が提供するクエリを直接使用する方法はありますか?Teiidクエリエンジンは、実行時にクエリの最適化バージョンを最適化されていないクエリに変更します。
彼女は私によって私が実行
CREATE VIRTUAL PROCEDURE GetTop() RETURNS (json clob) OPTIONS (UPDATECOUNT 0, "REST:METHOD" 'GET', "REST:URI" 'GetTop')
AS
/*+ cache(pref_mem ttl:14400000) */
BEGIN
execute immediate
'SELECT JSONOBJECT(
JSONARRAY_AGG(
JSONOBJECT(
total_purchases,
total_invoice,
total_records,
period
)
)
AS "dd"
) as json FROM(
SELECT SUM((CASE
GROUP BY period
Teiidクエリエンジンは、セレクトインナ書
SELECT SUM(v_0.c_1),
COUNT(DISTINCT v_0.c_2),
COUNT(v_0.c_2),
v_0.c_0
FROM (SELECT CASE
GROUP BY v_0.c_0
を有するベローバージョンにクエリ上方変換私はknowhHowたいオリジナルteiidクエリできていますこの振る舞いを渡して元のクエリを実行しますか?
詳細をつけて質問を編集しました – Sanjewa
これはpg/redshiftトランスレータの問題であるようです。 supportsFunctionsInGroupByはtrueでなければなりません。 falseの場合、エンジンはインラインビューを作成して補正します。コードベースで修正する必要があります。問題をログに記録できますか?あなた自身のトランスレータエクステンショントランスレータの作成、委譲トランスレータの使用によるこの機能のオーバーライド、またはSQLをソースに直接送信する場合は直接/ネイティブクエリを使用するなどの回避策があります。 –
ありがとう。私は問題を記録する。この問題を適切に再現するには時間がかかることがあります。私が終わったら、上の質問をサンプルクエリで編集します。そして私は問題を記録する。 – Sanjewa