管理SQL执行计划
我是本际云服务器推荐网的小编小本本,今天给大家分享一下使用 Oracle2PG 迁移数据库过程中遇到的 SQL 执行计划问题的解决方案。

执行计划
在日常运维过程中,SQL 执行计划的问题比较常见。在固定执行计划上,Oracle 提供了丰富的工具,比如 outline 和 coe。而在我们的案例中,在 PG 数据库中测试发现有部分 SQL 的执行计划性能较差。因此,我们使用社区插件 pg_show_plans 和 pg_hint_plan 在数据库层进行调整,成功解决 SQL 性能问题。
首先,PG 提供了 explain 命令来查看 SQL 执行计划,但这个工具不能查看正在执行的 SQL 执行计划,不够人性化。因此,社区提供了插件 pg_show_plans,可以帮助我们查询 pg_stat_activity 中正在执行的 SQL 执行计划。具体文档和安装参考:https://github.com/cybertec-postgresql/pg_show_plans。
而对于如何绑定一个 SQL 的执行计划,这里我们使用 pg_hint_plan 这个插件。文档和安装参考:https://github.com/ossc-db/pg_hint_plan。在计划绑定后,重新发起 SQL 查询,可以成功捕获到该 SQL 并打印出执行计划是我们绑定的计划。
需要注意的是,常量值可以用 ? 代替。另外,Hint 种类繁多,具体可以参考文档。
以上就是我们使用 pg_show_plans 和 pg_hint_plan 插件在 PG 数据库中调整 SQL 执行计划的过程。欢迎大家在 IT那活儿 微信公众号上收藏分享点赞。谢谢!
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6240.html
