![]() Note: How to enable QPM and which bits to flip in your parameter groups are ignored here because they're covered extensively in the AWS docs. The rest of this doc is going to cover a high level overview of what those steps look like in practice. It gets you back to a stable state so that you can do you deep dive into the why of the problem without the "prod is down" time pressure hanging over your head. While it's no Silver Bullet, it is pretty dang close. The time from detection to correction is measured in minutes. That's actually it! Once you've Approved/Rejected the plans the work is done. Use QPM to lock in the good plan as Approved and the bad plan(s) as Rejected.Connect to the DB and force a good plan (via hinting, flags, child sacrifice, etc.).Operationally, reacting to a production issue with QPM boils down to three steps: I love it and I want to share how it works. Root cause analysis is for when things are stable. QPM gives you the tools to punch into the planner and quickly correct what's going wrong. Theoretical purity and waxing poetic about how things should have been done to avoid the problem don't matter when you're currently dealing with the problem. It's about maintaining operations even when things go wrong, because things do go wrong. QPM on the other hand lives in the gross and brutal real world. This is why it's a good idea to design them to operate when some things are wrong – Akin's laws of spacecraft design To design a spacecraft right takes an infinite amount of effort. In fact, the postgresql philosophy seems to be that it isn't a problem at all – "you're holding it wrong". And the big problem with all of this is that postgres gives little recourse for correcting these transient planning problems. ![]() Something that previously executed in sub-millisecond can suddenly take minutes or hours (or even an effectively unbounded amount of time!). The difference between a good plan and a bad plan can mean absolutely massive differences in execution times and performance. This is about how to use Aurora's Query Plan Manager in RDS.Īurora's Query Plan Manager (QPM) solves a very specific and painful problem: Postgresql's query planner stabbing you in the back with its terrible choices. How to influence query planning in Postgresql
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |