我正在使用teiid对redshift 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语句
的波纹管版本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
我想知道如何通过此行为并执行原始查询?
答案 0 :(得分:0)
Teiid只会为特定目的创建内联视图 - 它通常会在可能的情况下删除它们。您需要提供更多用户查询,处理器计划或调试计划的上下文,以便我们了解为什么需要内联视图。