Hi, I think its not going to a trivial task to take out only the LOG duration lines from a PostgreSQL logfile. We need to extract the duration and the actual statement. I think i will put a custom delimeters around the statements for the time being so that the log parser can parse it unambigiously. Is there any better method? Regds Mallah. Example Log file: LOG: duration: 3.725 ms statement: SELECT c.oid, n.nspname, c.relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE pg_catalog.pg_table_is_visible(c.oid) AND c.relname ~ '^users$' ORDER BY 2, 3; other log messages other log messages other log messages LOG: duration: 0.705 ms statement: SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules FROM pg_catalog.pg_class WHERE oid = '17411' LOG: duration: 5.929 ms statement: SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod), a.attnotnull, a.atthasdef, a.attnum FROM pg_catalog.pg_attribute a WHERE a.attrelid = '17411' AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum LOG: duration: 0.799 ms statement: SELECT substring(d.adsrc for 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = '17411' AND d.adnum = 1 LOG: duration: 0.965 ms statement: SELECT substring(d.adsrc for 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = '17411' AND d.adnum = 31 LOG: duration: 0.998 ms statement: SELECT substring(d.adsrc for 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = '17411' AND d.adnum = 33 LOG: duration: 2.288 ms statement: SELECT c2.relname, i.indisprimary, i.indisunique, pg_catalog.pg_get_indexdef(i.indexrelid) FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i WHERE c.oid = '17411' AND c.oid = i.indrelid AND i.indexrelid = c2.oid ORDER BY i.indisprimary DESC, i.indisunique DESC, c2.relname LOG: duration: 2.288 ms statement: SELECT c2.relname, i.indisprimary, i.indisunique, pg_catalog.pg_get_indexdef(i.indexrelid) FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i WHERE c.oid = '17411' AND c.oid = i.indrelid AND i.indexrelid = c2.oid ORDER BY i.indisprimary DESC, i.indisunique DESC, c2.relname :statement end (<-- custom delimit) |
- Re: [ADMIN] fishing out LOG: duration lines from the l... Rajesh Kumar Mallah
- Re: [ADMIN] fishing out LOG: duration lines from ... Bruce Momjian