In this chapter, we will cover the following recipes:
- Finding slow SQL statements
- Collecting regular statistics from pg_stat* views
- Finding out what makes SQL slow
- Reducing the number of rows returned
- Simplifying complex SQL queries
- Speeding up queries without rewriting them
- Discovering why a query is not using an index
- Forcing a query to use an index
- Using parallel query
- Using optimistic locking
- Reporting performance problems