用ChatGPT帮我进行SQL调优,sql 调优再也没有那么难了

文章目录

  • 问题背景
  • 先看一下调整前的 sql
    • 功能说明
    • 问题分析
  • 通过 ChatGPT 优化此 SQL(sql 调优再也没有那么难了)
    • 准备一下,如何向 gpt 发出提问
    • 第一次提问(没解决问题,但是一定要看,并不是 GPT 的错)
    • 第二次提问(成功解决)
  • 写在最后

问题背景

近期由于订单量激增,我们的 ERP 系统订单查询效率骤降! 查询半年内的 300万数据就要卡到 50多秒才能出结果(有时要一分多钟)。 而订单查询这块由于系统迭代原因,导致查询条件十分复杂, 索引也已经优化到了极限,不能再通过加索引解决问题。
实际业务中,相信很多人也都有 SQL 调优经验,这个问题也有大神能解决。 但是如今有了 ChatGPT,可以大大提升我们解决此类问题的效率,下面我给大家分享一下如何实操:

先看一下调整前的 sql

SELECT a.*, b.poId, d.orderId, d.problemReason, d.workOrderType, d.remark, d.afterSaleCost, d.cause, d.logisticsCosts, d.logisticsType, d.shipmentOA, d.otherFee, d.causeText, d.afterSaleDealCode, d.afterSaleDealName, bo.jyyOppCode AS jyyOppCode, bo.jyyOppName AS jyyOppName, bo.customerName AS customerName
FROM ordermaininfo aLEFT JOIN ordersubinfo b ON a.mainId = b.mainIdLEFT JOIN bizoppinfo bo ON bo.busOppCode = a.busOppCodeAND bo.validStatus = '1'LEFT JOIN orderaftersalesinfo d ON a.id = d.orderId
WHERE 1 = 1AND a.orderCreateDate BETWEEN '2022-12-20 00:00:00' AND '2023-04-27 23:59:59'AND a.returnOrderFlag = '0'AND a.isToKthree NOT IN ('5', '10')AND a.submitFlag = '1'AND a.validStatus = '1'
GROUP BY a.mainId
ORDER BY a.customOrderId ASC, a.mainId ASC, a.orderCreateDate desc;

功能说明

- customOrderId、mainId、orderCreateDate 都是索引字段
- 排序规则是业务需求,要支持分页,所以排序要保留
- 当orderCreateDate查询范围在一个月以内时,效率比较好,索引也可用,但查询范围一扩大,就会出现  1/5 基数量索引失效问题
- `先看下此时的执行计划,订单主表进行了全表扫描,sql 执行时间大约 1分钟`

在这里插入图片描述

问题分析

通过 sql 诊断发现,表达式ORDER BY a.customOrderId ASC, a.mainId ASC, a.orderCreateDate DESC对多个不同条件使用不同方向的排序,将导致无法使用索引。 这是最核心问题。
在这里插入图片描述

通过 ChatGPT 优化此 SQL(sql 调优再也没有那么难了)

准备一下,如何向 gpt 发出提问

根据前面的分析,表达式ORDER BY a.customOrderId ASC, a.mainId ASC, a.orderCreateDate DESC对多个不同条件使用不同方向的排序,将导致无法使用索引。所以,这将是我们问题的突破口!

稍后提问,我们将采取如下策略:

  1. 给 ChatGPT 设定角色:DB、sql 调优专家
  2. 描述出我们的问题,把问题突破口告知它
  3. 提供出我们的 sql 语句

第一次提问(没解决问题,但是一定要看,并不是 GPT 的错)

(注意:这里我着急,就没有分开设定角色提问,而是一次性提问了,大家可以分开聊天提问也是可以的)

  • 开始提问
    在这里插入图片描述
  • GPT 给出的办法如下
    从解决方案来看,其实人家说的一点问题没有,问题原因在于我前面提问的时候,没有告诉他,我已经有索引了,并且不能再创建索引了。 所以这次回答虽然没有解决我实际的问题,但是GPT回答问题本身是正确的。 我们也知道了,如何更加准确的提问。
    在这里插入图片描述

第二次提问(成功解决)

吸取前面的教训,我把索引情况告知 GPT后,它给出了新的回答。 但我还是犯了一个马虎,就是索引没提供全,gpt 还是给出了索引建议。不过无所谓,因为它很聪明,回答的第三点,实际上解决了我的最终问题。而且他给出了完整 sql ,我直接拿这个 sql 实验了一下, 效率提升 将近 8 倍

调整前:500 rows retrieved starting from 1 in 1 m 13 s 524 ms
调整后:500 rows retrieved starting from 1 in 8 s 899 ms

虽然,8s 也很慢,但是这是我测试的系统使用极限,实际业务应用中,不会出现这种低效的 sql 组合。 按此优化后,真实使用中,最慢的 2-3s 也出结果了(不要较真,对于这类系统,订单查询这个效率,已经很高了,以前小编的其他项目中,也有要求 200ms 返回结果)
在这里插入图片描述

写在最后

人工智能的浪潮已经来袭,这次是 AI 2.0 的时代,抓住先机,你就赢了一半了。 3月份我也没太关注,以为它不会掀起什么大浪,就像元宇宙一样,离我们还很远。 但是这次真的不一样,ChatGPT 3.5+ 的来临,很多事情都发生了变化。因为我本身是程序员,我使用最多的就是让他帮我写代码,调 sql 等。而且它写的真的很好,我一个 java8年的程序员,质量跟他都没法比,而且它写的是真快,质量真高!

同时,我近期已经实现的 微信公众号对接 ChatGPT的 python 代码基本上都是用 ChatGPT 写出来的开发了三天就在公众号上实现了与 ChatGPT 实时聊天,两天时间公众号分析增加了 230 人。 在大家的试用之下,公众号 ChatGPT 聊天功能现在已经趋于完美。虽然还有优化空间,但是对于个人而言,两三天做到这个效果着实不容易了。

感兴趣的小伙伴,欢迎一起探讨,想体验的也可以过来体验一下,真正的免费开放。
公众号:javastarboy (注意,我微信与公众号都叫 javastarboy ,大家不要进错哦~)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6405.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅试ChatGPT优化SQL

一段sql语句 select id ,name, age, gender, clazz from student.student s where id in ( select max(student_id) as id from student.score group by cource_id ); 此条语句性能分析 此时会扫描全表 讲上方sql语句丢到ChatGPT中要求它优化一下 SELECT s.id, s.name, …

不会写SQL?ChatGPT 来帮你

想必当前最火的软件就是ChaGPT了,它是一款基于人工智能技术的大型语言模型,在数据库方面,ChaGPT可以被用来进行自然语言处理,实现自然语言查询和分析数据库。通过将ChaGPT与数据库集成,可以使得数据库更加智能化,提高数…

使用chatgpt探索SQL注入

今天尝试使用chatgpt尝试探讨咨询一下SQL注入的问题以及如何解决。 首先问的是“作为一个安全工作人员,写一篇关于Java SQL注入以及如何预防的文章,包含所有使用SQL可能存在注入的情况” 结果,结果就是没有等到结果,直接出错了。…

如何利用ChatGPT自动生成SQL语句

作为一名开发者,你可能已经使用过自然语言处理(NLP)及其可能彻底改变我们与技术互动的方式。由OpenAI提供支持的文本到SQL工具是一种强大的方法,可以从自然语言文本中生成SQL语句。在本博客文章中,我们将探讨七个创造性…

chatGPT实战之「基于你的数据库,为你智能生成SQL」

原文:chatGPT实战之「基于你的数据库,为你智能生成SQL」 - 腾讯云开发者社区-腾讯云 chatGPT 为你生成 SQL 的落地效果演示 这几天很很多粉丝进行了深度交流,发现大家对于 SQL 学习或者编写都遇到过困难,因此勇哥突发奇想是否可以…

数据库ChatGPT插件来了,SQL使用体验进一步起飞

简介 基于 ChatGPT API 和 OpenMLDB 数据库实现的 openmldb-chatgpt-plugin 项目开源了,作为人类迄今为止最强AI模型之一(GPT4未开放API),集成了 ChatGPT 模型的数据库有多好用,下面将带大家体验一下。 原理 实现原…

AI编程 | 用ChatGPT提升SQL技能,用人工智能轻松学习数据库编程

ChatGPT能够完成许多酷炫的任务。其中的一项是进行代码编写。只要您提供正确的指示,ChatGPT就会为您完成任务。 ChatGPT是一个很好的SQL入门资源,如果你有学习SQL的需求。该工具能够帮助用户以自然语言方式创建SQL查询,解决潜在的编码问题&a…

ChatGPT画玫瑰花 | prompt

很明显,失败了!!!!!救命啊啊啊啊啊啊啊啊啊啊啊 和chatgpt-3.5完整的对话过程如下:http://t.csdn.cn/AeEae

Idea中的NexChatGPT如何使用

按照下面的截图一步一步来就可以的 打开settings 找到Plugins,搜索nex,出现NexChatGpt,点击Installed 安装好了之后点击右上方设置图标,点击HTTP Proxy Settings... 勾选Auto-detect proxy settings,点击OK 切记先点击Apply,在点击…

IntelliJ IDEA使用bito插件集成chatgpt

打开设置安装插件 打开IntelliJ IDEA编辑器,在菜单栏中选择“File” -> “Settings”->“Plugins”,选择“Marketplace”页面,输入“bito”,点击下载安装 注册账号 安装后,在ide右侧点击bito插件 填写邮箱接…

记录一次听了ChatGPT花言巧语导致idea无法启动的错误

原因: 如图 错误: 打开idea弹窗 解决: 在目录:C:\Users\当前用户名\AppData\Roaming\JetBrains\IntelliJIdea2021.1下找到idea64.exe.vmoptions文件打开 把之前添加的东西删掉:

idea可以集成chatGPT插件了 让编码效率加倍

打开idea搜索插件安装ChatGPT插件、 配置简单只需两步 登录后 点击创建一个key 复制其中的key值打开idea配置,搜索 配置key到官方源中 点击右侧开始聊天吧

IDEA 基本使用

1. IDEA刚开始使用时候,设置eclipse的快捷键,百度可以进行搜索 2. IDEA 中的几个窗口之间的跳转,快捷键ALT 对应的数字键,以及TODO和favorite的使用 3. IDEA中如果设置eclipse快键键后,那么 搜索常用的两个键 CTRL SHITF R (搜索…

IDEA安装及设置

官网下载:IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains以2017版为例,双击安装文件,如下所示:勾选如下两项,其它选项可根据自己需求勾选。点击Next ,直到安装完成,如下图所…

idea 内置集成chatGPT

1:打开idea,找到File>settings 2:找到pulgins>Marketplace,点击下载就好了 3:在最右侧,就能找到你的chatgpt了

IDEA集成chatGPT

IDEA集成chatGPT目前需要准备 1.爬墙的梯子 2.一个chatGPT的登录账号 一.GPT现在开放的是gpt-3.5-Turbo 下载插件 在Idea右侧可以看到chatGPTer 二.登录gpt网址 此链接:https://platform.openai.com/account/api-keys 获取Create key然后到Idea 找到这个工具 配置chatGPT的…

IntelliJ IDEA 的chatGPT插件 Bito -ChatGPT to write code, explain code,create tests

1、chatGPT爆火 最近你是否听说过“ChatGPT”这个词?它指的是一种基于深度学习技术的人工智能语言生成模型。自从2018年由OpenAI发布以来,ChatGPT就备受关注,甚至在2022年成为了全球最强AI模型之一。 2、chatGPT介绍 ChatGPT(G…

对话大模型中的事实错误:ChatGPT 的缺陷

©PaperWeekly 原创 作者 | 愁云 引言 随着 ChatGPT 的横空出世,智能对话大模型俨然已成为 AI 发展的焦点,更是在整个自然语言处理 (NLP) 领域掀起了一阵海啸。自去年席卷全球以来便引起各行各业空前的热度,数亿用户纷纷惊叹于 ChatGPT …

ChatGPT总是答非所问?如何使用chatgpt定义角色

一、📝 定义角色:ChatGPT 的角色设定 背景信息:提供详细、准确的背景信息和前提条件,以便 ChatGPT 提供有针对性的回答和建议 任务目标:清晰地描述希望 ChatGPT 完成的任务 输出要求:告知 ChatGPT 如何完…

华为的大模型终于来了,我的评价是:相当震撼

华为的大模型终于来了,我的评价是:相当震撼 原创 2023-07-08 10:21 差评 老被人说在大模型竞赛中掉队的华为,这次终于带着它的家伙事儿来了。 这不,在昨天的华为开发者大会 2023 上,华为就狠狠地秀了一把。 将近三个小…