• Magnus Hagander's avatar
    Track identical top vs nested queries independently in pg_stat_statements · 6b4d23fe
    Magnus Hagander authored
    Changing pg_stat_statements.track between 'all' and 'top' would control
    if pg_stat_statements tracked just top level statements or also
    statements inside functions, but when tracking all it would not
    differentiate between the two. Being table to differentiate this is
    useful both to track where the actual query is coming from, and to see
    if there are differences in executions between the two.
    
    To do this, add a boolean to the hash key indicating if the statement
    was top level or not.
    
    Experience from the pg_stat_kcache module shows that in at least some
    "reasonable worloads" only <5% of the queries show up both top level and
    nested. Based on this, admittedly small, dataset, this patch does not
    try to de-duplicate those query *texts*, and will just store one copy
    for the top level and one for the nested.
    
    Author: Julien Rohaud
    Reviewed-By: Magnus Hagander, Masahiro Ikeda
    Discussion: https://postgr.es/m/20201202040516.GA43757@nol
    6b4d23fe
pg_stat_statements.control 205 Bytes