A very important pg_stat_statements feature is the normalization of queries that can be planned (SELECT, INSERT, DELETE, and UPDATE). You might have indeed noticed some ? characters in the query field returned by the queries outlined in the previous section. The normalization process intercepts constants in SQL statements run by users and replaces them with a placeholder (identified by a question mark).
Consider the following queries:
SELECT * FROM bands WHERE name = 'AC/DC';
SELECT * FROM bands WHERE name = 'Lynyrd Skynyrd';
After the normalization process, these two queries appear as one in pg_stat_statements:
gabriele=# SELECT query, calls FROM pg_stat_statements;
query | calls
---------------------------------------+-------
SELECT * FROM bands WHERE name = ?; | 2
… <snip> …
This is the expected behavior, isn't it?
The extension comes with a few configuration options, such as the maximum number of queries to be tracked.