2 json explain plans for the same query/plan - why does one have constants while the other has parameter markers?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We are currently on 13.  We are capturing the explain plans for query executions taking 1 second or longer and storing the json files.  We are most of the way through implementing a home grown solution to generate a consistent hash value for a query plan, so we can find queries with multiple plans.  I've attached 2 query plans that we've captured that differ in a seemingly strange way.  (All executions are from the same exact code path.)  One of the plans has parameter markers in the predicates in the values for "Recheck Cond" and "Index Cond", while the other does not.  

Any insight into why we are seeing parameter markers in the body of the query plan?

Examples of the parameter markers:
                "Recheck Cond": "((destinationid = $1) AND (contactid IS NOT NULL) AND (status = $2))",
                    "Index Cond": "((destinationid = $1) AND (contactid IS NOT NULL) AND (status = $2))",

What we normally see:
                "Recheck Cond": "((destinationid = 67) AND (contactid IS NOT NULL) AND (status = 1))",
                    "Index Cond": "((destinationid = 67) AND (contactid IS NOT NULL) AND (status = 1))",

The full query text:
SELECT /* ISNULL:pc_message.FrozenSetID:, KeyTable:pc_message; */ qRoot.ID col0, qRoot.CreationTime col1
FROM pc_message qRoot
WHERE qRoot.DestinationID = $1 AND qRoot.Status = $2 AND qRoot.contactID IS NOT NULL AND qRoot.FrozenSetID IS NULL AND qRoot.SendOrder IN
     (
        SELECT MIN (qRoot0.SendOrder) col0
        FROM pc_message qRoot0
        WHERE qRoot0.DestinationID = $3 AND qRoot0.contactID = qRoot.contactID)
ORDER BY col1 ASC, col0 ASC LIMIT 100000

Thanks,
Jerry

Attachment: pc_message674c4226db3858b916bd6d363b52f9f1_fullqueryplanwithparametermarkers.json
Description: application/json

Attachment: pc_message415bc88c610f40c448a9c7a3eb19b704_fullqueryplanwithconstants.json
Description: application/json


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux