Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

SQL Sent to Database Does Not Include Filter Criteria

Received Response
2
Views
1
Comments
EricPSU05
EricPSU05 Rank 2 - Community Beginner

Upon investigating long query times, I noticed the SQL being sent to the server does not include the date filter provided in Answers.  This results in the query run on the database to return all rows, then the result set is being filtered at the BI Server.  While the end result is correct, the production database has millions of rows and this is not an idea situation.  Below is an example of my log file.  As you can see, the "Execution Plan" includes a filter for Request.Date Created and Request.Status, but the query sent to the database only includes the filter on Request.Status.

Does anyone have any ideas on why this particular column is not being filtered via the SQL sent to the database?  I'm using OBIEE 10g.

-------------------- Logical Request (before navigation):

RqList  distinct

    Request.Request Id as c1 GB,

    Request.Status as c2 GB,

    Request.Date Created as c3 GB

DetailFilter: Request.Status = 'Open' and Request.Date Created > TIMESTAMP '2017-01-01 00:00:00.000'

OrderBy: c1 asc, c2 asc, c3 asc

-------------------- Execution plan:

RqList <<8326>> [for database 0:0,0] distinct

    D1.c1 as c1 GB [for database 0:0,0],

    D1.c2 as c2 GB [for database 0:0,0],

    D1.c3 as c3 GB [for database 0:0,0]

Child Nodes (RqJoinSpec): <<8375>> [for database 0:0,0]

    (

        RqList <<8412>> [for database 0:0,0]

            D1.c1 as c1 [for database 0:0,0],

            D1.c2 as c2 [for database 0:0,0],

            D1.c3 as c3 [for database 0:0,0]

        Child Nodes (RqJoinSpec): <<8427>> [for database 0:0,0]

            (

                RqList <<8333>> [for database 3023:48433:CSRP,2]

                    _REQUEST (VW_R_REQUEST).request_num as c1 GB [for database 3023:48433,2],

                    _REQUEST (VW_R_REQUEST).status as c2 GB [for database 3023:48433,2],

                    _REQUEST (VW_R_REQUEST).create_date as c3 GB [for database 3023:48433,2]

                Child Nodes (RqJoinSpec): <<8361>> [for database 3023:48433:CSRP,2]

                    vw_r_request T48474

                DetailFilter: _REQUEST (VW_R_REQUEST).status = 'Open' [for database 0:0]

            ) as D1

        DetailFilter: TIMESTAMP '2017-01-01 00:00:00.000' < D1.c3 [for database 0:0]

    ) as D1

OrderBy: c1 asc, c2 asc, c3 asc [for database 0:0,0]

-------------------- Sending query to database named CSRP (id: <<8333>>):

select distinct T48474."request_num" as c1,

     T48474."status" as c2,

     T48474."create_date" as c3

from

     "vw_r_request" T48474

where  ( T48474."status" = 'Open' )

Answers

  • EricPSU05
    EricPSU05 Rank 2 - Community Beginner

    Posting this for the benefit of others.  The database used for queries is PostgreSQL 9.6.  I had to enable the "DATE_LITERAL_SUPPORTED", "TIME_LITERAL_SUPPORTED", and "DATE_TIME_LITERAL_SUPPORTED" feature under the database features tab in Administration.