想要提升数据库 SQL 性能?这个 JetBrains 插件可以满足您的需求!
【摘要】 概述PawSQL Advisor是 PawSQL 团队为数据库应用开发人员开发的一款自动化、智能的 SQL 优化工具。它结合了数据库优化、审核和重写 SQL 的行业最佳实践,以确保正确性和性能。它还提供基于 SQL 查询结构、数据库对象定义和统计数据的智能索引建议,帮助数据应用程序开发人员通过Clicks提高性能。主要特征SQL审计、目标正确性和性能优化SQL重写优化,推荐语义等价但更高效的...
概述
PawSQL Advisor是 PawSQL 团队为数据库应用开发人员开发的一款自动化、智能的 SQL 优化工具。它结合了数据库优化、审核和重写 SQL 的行业最佳实践,以确保正确性和性能。它还提供基于 SQL 查询结构、数据库对象定义和统计数据的智能索引建议,帮助数据应用程序开发人员通过Clicks提高性能。
主要特征
- SQL审计、目标正确性和性能优化
- SQL重写优化,推荐语义等价但更高效的SQL
- 针对各种SQL语法组合的智能索引建议
- 基于成本的优化验证,确保重写的SQL和推荐索引有更好的性能
- 索引分析引擎识别冗余索引
支持的数据库
PawSQL 使用专有的 SQL 解析器,支持多种数据库类型和 SQL 方言。目前支持的数据库:
- MySQL 5.6及以上版本(官方支持)
- PostgreSQL 9.1及以上版本(官方支持)
- openGauss 1.0及以上版本(官方支持)
- MariaDB 5.6 及更高版本(测试版)
- Oracle 9i 及更高版本(测试版)
- KingbaseES V8(测试版)
用户指南
1. 安装
PawSQL Advisor 是一个 IntelliJ IDE 插件,支持的 IDE 包括 IntelliJ IDEA、DataGrip、PyCharm、Android Studio、AppCode、DataSpell、GoLand、PhpStorm、WebStorm 等。它可以通过 JetBrains Marketplace 安装。
2. 配置
PawSQL Advisor 提供了用于输入、输出、数据源和运行时设置的项目级配置页面。
2.1 优化设置
- 输入类型:SQL 文件或 Mapper 文件
;
SQL 文件,带有as 分隔符的本机 SQL 文件- Mapper 文件,从 MyBatis 映射器文件中提取 SQL 并排列所有可能的 SQL 组合
映射器文件输入对于在应用程序开发期间捕获所有可能的 SQL 组合非常重要。
注意:未使用的 SQL 可能是由编写不当的映射器文件生成的,从而导致无用的索引建议。
输出语言:推荐使用的语言,中文或英文
启用SQL重写:是否启用SQL重写优化。禁用以仅在无法轻松修改 SQL 时获取索引建议。
启用假设验证:是否验证建议优化的性能。通过启用此选项,PawSQL 可以提供 SQL 优化前后的解释计划和成本。
Execute SQL for Validation:是否执行 SQL 来获取实际执行时间,而不是依赖于不完善的 EXPLAIN 信息。
注意:在生产数据库上启用假设验证时请小心,因为它将创建和删除推荐的索引,这可能会影响应用程序性能。
2.2 数据库设置
数据库连接用于:
- 检索表、视图、列、索引等数据库对象作为 SQL 优化的上下文
- 执行假设优化验证
数据库的设置包括:
- 数据库类型:MySQL、PostgreSQL、openGauss、Oracle、MariaDB、KingbaseES
- Host : 托管数据库实例的主机地址,
- Port : PawSQL Advisor 连接的数据库实例的端口
- 用户名: PawSQL Advisor 连接数据库实例的用户名
- 密码: PawSQL Advisor 连接数据库实例的密码
- 默认数据库:PawSQL Advisor 连接的默认数据库
- 数据库/模式列表:数据库(MySQL)或模式(PostgreSQL/openGauss)列表。他们的表、视图、索引和统计数据将用于优化。
2.3 指数顾问设置
- Deduplicate /w Existing Indexes:是否对现有索引覆盖的推荐索引进行重复数据删除。如果您只想添加新索引而不删除现有索引,请启用。禁用将现有索引替换为推荐索引。
- Recommend Covering Indexes:是否推荐覆盖索引,这些索引可以满足纯粹从索引查询而不需要访问表的情况。通过包含非查询列可以显着提高性能,但也可以增加索引大小。
- 覆盖索引中的最大列数:覆盖索引中包含的最大列数。
- 推荐索引中的最大列数:常规索引中的最大列数,用于控制索引大小和索引树的深度。
- 每个表的最大索引数:每个表的索引过多时发出警告的阈值。
3、执行
3.1 优化SQL文件/文件夹
右键单击 SQL 文件或文件夹,单击 PawSQL Advisor -> 优化以优化其中的所有 SQL。
您还可以单击 PawSQL Advisor -> Optimize Config... 打开配置对话框并在执行前调整参数。
3.2 优化选定的SQL
在代码编辑器中,选择要优化的 SQL 文本,右键单击并单击 PawSQL Advisor -> Optimize Selected。
同样,PawSQL Advisor -> Optimize Selected Config... 将在执行前打开配置对话框。
3.3 执行日志
优化过程日志可以在下面的控制台查看。
4. 优化结果
pawTuningSummary
优化完成后,将自动生成并打开一个名为 的摘要 Markdown 文件。安装Markdown插件以获得更好的用户体验,并启用markdown文件中的超链接。
4.1 优化总结
该pawTuningSummary
文件包含:
- 优化概述
- 推荐指标
- 优化SQL列表
4.2 SQL调优细节
单击摘要文件中的 SQL 名称可打开其调整详细信息:
- 原始SQL
- 重写优化
- 重写SQL
- 应用重写策略
- 与每次重写相关的SQL片段
- 审计违规行为
- 违反规则(点击查看规则详解)
- 与违规相关的有问题的 SQL 片段
- 指数推荐
- 推荐指标
- 推荐的索引如何帮助提高性能
- 现有指数分析
- 每个表上的现有索引
- 现有索引如何帮助查询执行
- 冗余索引
- 单表索引数量超过阈值时发出警告
- 性能验证
- 性能改进
- 应用推荐指标
- 优化前后的执行计划
关于 PawSQL
PawSQL专注于MySQL、PostgreSQL、openGauss等自动化、智能SQL和数据库性能优化。产品包括:
- PawSQL Cloud:面向 DBA 和开发人员的基于 SaaS 的替代 SQL 优化解决方案
- PawSQL Advisor:面向应用程序开发人员的 IntelliJ 插件,在 Jetbrain 市场中搜索“PawSQL Advisor”
- PawSQL Engine:后端优化引擎,可以通过 Docker 部署,通过 HTTP/JSON 进行 SQL 优化
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)