0

我正在使用 teiid 对 redshift 数据库执行相当大的 SQL 选择查询。通过避免在查询中使用内部查询和内部选择语句,我优化了查询以提供更好的响应时间。但是,当我执行查询时,teiid 查询引擎将我的查询更改为使用内部查询和内部选择语句的不同版本。有什么方法可以绕过这种行为并直接使用我提供的查询。

她是我执行的原始 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

我想知道如何绕过这种行为并执行我的原始查询?

4

1 回答 1

0

Teiid 只会为特定目的创建内联视图——它通常会在可能的情况下删除它们。您需要提供更多关于用户查询、处理器计划或调试计划的上下文,以便我们了解为什么需要内联视图。

于 2017-12-11T21:45:26.970 回答