各位老铁们好,相信很多人对一站式SQL优化工具PawSQL Advisor都不是特别的了解,因此呢,今天就来为大家分享下关于一站式SQL优化工具PawSQL Advisor以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
功能概述
PawSQL Advisor的功能框架如下,
基于规则的SQL审核,包括正确性审核和性能优化审核规则。基于规则的重写优化推荐语义等价但执行效率更高的SQL。智能索引推荐可以在各种SQL语法组合场景下推荐最优的索引组合。优化验证,确保基于SQL 重写和索引建议的新解决方案具有更好的性能。
优化规则
正确性规则
=null 或null 无法确定表达式为空的情况。要判断表达式是否为空,应该使用is null(PawSQL提供重写优化)NOT IN子查询并且选择列可以为空。这种情况下不会返回任何记录(PawSQL提供了重写优化)。 ALL 修改了条件子查询且选择列为空。在这种情况下,不会返回任何记录(PawSQL 提供重写优化)。使用limit 的update 语句可能会导致意外操作。结果(PawSQL提示和警告) 没有使用带ORDER BY的LIMIT查询,可能会导致多次执行结果不一致(PawSQL提示和警告) 使用不带where条件的update/merge/delete语句,或者where 1=1等伪装无条件语句(PawSQL 提示和警告) insert 语句必须指定列,以减少插入列与结果表错位的可能性(PawSQL 提示和警告)
性能优化规则
避免使用全模糊搜索或左模糊搜索;条件下无法使用索引快速定位记录(PawSQL提示和警告) 字段使用函数进行操作;无法使用索引,导致全表扫描(PawSQL对部分函数提供重写优化,提示警告)。条件字段中存在数值和字符的隐式转换;无法使用索引,导致全表扫描(PawSQL提示警告)不建议在不存在的语句中使用select *语法;影响后续优化逻辑,难以维护(PawSQL提示警告)。避免使用最大/最小标量子查询;可以重写以利用B+ 树排序,以避免排序和访问不必要的数据(PawSQL 提供重写优化)标量子查询(count(*)0 或count(col)0)应按现有情况重写;避免访问不必要的数据(PawSQL提供重写优化)并使用union all代替union; union需要分组和去重,影响性能(PawSQL提示警告)delete/update包含or条件,可以拆分成多个独立的update/delete语句;条件包含or可能无法使用索引(PawSQL提供重写优化)or语句替换为union/union all;包含或可能无法使用索引的条件(PawSQL提供重写优化)将条件下推,先过滤,再分组(having子句放在where子句中)以提高性能(PawSQL提供重写优化) ) 删除/更新语句不能无限制地排序;没有Limit的排序是没有意义的,反而会降低性能(PawSQL提供重写优化)使用无where条件,或者where 1=1等变相条件查询语句,并且没有分组、聚合和limit语句(PawSQL提供重写)优化)。嵌套查询超过指定阈值(默认值大于等于2);过于复杂的SQL会影响计划的性能,容易出现性能不佳的情况。执行计划(PawSQL提示和警告)建议JOIN连接表查询次数不超过阈值(默认值大于等于5);过于复杂的SQL影响计划的性能,容易产生性能较差的执行计划(PawSQL提示和警告),谨慎使用select.进行update;对于单个插入语句的更新锁表或锁记录(PawSQL提示和警告),建议批量插入不超过阈值(默认为500)(PawSQL提示和警告)
索引推荐
索引的功能是如下三:
快速定位数据记录(等价条件、范围条件);避免排序(order by/group by/distinct/union/sort merge join);避免表备份,即只需要访问索引文件而不需要访问数据表就可以完成查询操作。 PawSQL Advisor继承了Paw Index Advisor的智能索引推荐能力。它根据不同的语法结构,结合系统的数据字典和统计信息对所有索引选项进行分析和评估,并基于启发式算法和基于成本的算法进行索引。推荐。具体信息请参考Paw Index Advisor的相关介绍。
优化验证(What-if)
PawSQL Advisor 提供了验证推荐的SQL 和索引的功能。它连接测试库,收集推荐前后的执行计划、预估成本等信息,对推荐信息进行验证,验证后向用户呈现有效的推荐。所以最后我们可以在最终的推荐结果中看到:
整体性能提升百分比(单条SQL的性能提升) 单条SQL的性能提升(调优前的查询执行计划) 优化后的单条SQL执行计划(调优后的查询执行计划) 同时所有推荐索引出现在某条SQL执行中计划并有助于此SQL 的性能。
插件安装
与Paw Index Advisor 一样,PawSQL Advisor 也为常用IDE 提供作为插件的服务。对于基于IntelliJ 的IDE,
启动IntelliJ集成开发环境,打开项目Settings,选择Plugins;在Marketplace中输入“PawSQL Advisor”,点击安装;在Setting页面配置PawSQL Advisor的运行参数;右键单击需要分析的SQL文件或文件夹,点击“运行”PawSQL Advisor”;
执行结果解读
整体优化建议(pawTuningSummary.txt)
查看pawTuningSummary文件,获取整体优化信息,主要包括四个部分。
整体优化总结规则审核状态推荐索引信息表sql优化总结/************************************ **********************************\* ** PawSQL 优化总结** ** 由PawSQL 提供支持(2022- ) ** *\************************************************ ****************************/1。优化总结- 分析了104 个查询;- 2 个查询进行了3 次优化重写;- 68 个查询有207 个违反优化规则的情况;- 76 个查询推荐了79 个索引;- 性能提升了7151.69%2。 -stmt1]- RuleNoCond4NonAggSelect: [query8.sql-stmt1、query33.sql-stmt1、query77.sql-stmt1]- RuleNumOfJoinTables: [query46.sql-stmt1、query84.sql-stmt1 .].3。推荐指数- CREATE INDEX PAW_IDX0571264614 ON TPDS.ITEM(I_CURRENT_PRICE,I_ITEM_SK,I_ITEM_ID);- CREATE INDEX PAW_IDX0205789795 ON TPDS.ITEM(I_CATEGORY,I_CURRENT_PRICE);- CREATE INDEX PAW_IDX086641第1600章1600在TPDS 上。 ITEM(I_MANAGER_ID,I_ITEM_SK);4.优化查询列表-query1.sql-stmt1,性能提升438790.26%[costBefore=71231.89,costAfter=16.23]–贡献索引:[PAW_IDX0410610163, PAW_IDX0827928186, AUTO_KEY0, PRIMARY, PRIMARY ]- ,性能提高了3974905.54 %[costBefore=1097101.53,costAfter=27.59]–贡献索引:[PAW_IDX0410610163, PAW_IDX0426775377, PRIMARY, PAW_IDX0410610163, PAW_ IDX0127412485, PAW_IDX0410610163, PAW_IDX1696683664, PRIMARY, PRIMARY]-query11.sql-stmt1,性能提升28.56%[costBefore=322948.99 ,costAfter=251195.7199]–贡献索引:[PAW_IDX0410610163, PAW_IDX2001631254, PRIMARY, PAW_IDX1991665978, PRIMARY, PRIMARY]. 333 60
单SQL优化详情
主要包括:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/121727.html
用户评论
迷路的男人
终于不用手动调优SQL了!使用PawSQL Advisor简直太方便,一键就能发现问题并给出最佳方案,省了一堆时间和精力!
有19位网友表示赞同!
呆萌
这个工具的使用教程很详细,新手也能很快就上手。而且功能强大,涵盖了各种SQL优化场景,强烈推荐!
有9位网友表示赞同!
坠入深海i
体验了一下PawSQL Advisor,感觉还是挺不错的,能自动生成优化的SQL语句,效率确实很高。但是希望能提供更细致的分析报告,以便更好地了解优化方案背后的原理。
有15位网友表示赞同!
裸睡の鱼
对于经常开发数据库应用的人来说,PawSQL Advisor绝对是一把好利器!它能帮助我们快速定位性能瓶颈,优化SQL语句,大大提升代码效率。
有5位网友表示赞同!
棃海
用了两天 PawSQL Advisor,感觉确实不错,针对一些复杂查询,它还能提供多种优化方案供我选择。不过价格稍贵,希望能有更灵活的付费模式。
有7位网友表示赞同!
葵雨
作为一名数据库管理员,我希望这个工具能提供更实时的监控数据和预警功能,以便更好地预防性能问题。
有11位网友表示赞同!
陌上花
PawSQLAdvisor的优化效果怎么样?有没有人试过?我想使用它来提高我开发项目的效率。
有9位网友表示赞同!
↘▂_倥絔
之前一直手工优化SQL,效率真慢啊!现在可以用PawSQL Advisor自动生成优化的语句,简直太节省时间和精力了!强烈推荐给各位开发者!
有5位网友表示赞同!
慑人的傲气
使用这个工具前,我经常遇到性能瓶颈问题,优化很困难。自从用了PawSQL Advisor后,这些问题都迎刃而解了!它真是一个太棒的工具!
有20位网友表示赞同!
败类
这款工具功能强大,但对于新手来说学习曲线可能比较陡峭。希望能提供更全面的教程和文档,方便大家更好地理解和使用。
有19位网友表示赞同!
命该如此
价格确实有点贵,对于个人开发者来说可能不太友好。希望能提供更优惠的套餐或者试用期。
有6位网友表示赞同!
半世晨晓。
PawSQL Advisor这个工具的功能还是很强劲的,特别是针对大规模数据库的优化方案非常实用。但是我发现它对一些小的查询语句的优化效果并不是特别明显。
有8位网友表示赞同!