当前位置: 首页 > news >正文

让SQL飞起来:搭建企业AI应用的SQL性能优化实战

我上一篇文章已经讲解过了如何使用公开的AI模型来优化SQL.但这个优化方法存在一定的局限性.因为公开的AI模型并不了解你的数据表结构是什么从而导致提供的优化建议不太准确.而sql表结构又是至关重要的安全问题,是不能泄露出去的.所以在此背景下我决定搭建一个自己的AI应用在内网环境下实现SQL优化.

 1:所需软件 Dify + Ollama+ docker  AI模型: DeepSeek + bge-m3

如果之前不了解Dify的话. 强烈建议参考我的另一篇文章安装所需要的环境https://blog.csdn.net/wang5701071/article/details/146207226?spm=1001.2014.3001.5501

1:为什么要搭建自己的AI应用进行sql优化?

1:准确性

目前主流的AI模型deepseek chatGPT等模型对于复杂sql的优化其实存在一定局限性.比如索引创建后,还是会提示让你重复创建索引,并不能提高sql性能. 

原因1:有可能是sql的字数太多,导致AI模型无法准确识别优化计划

原因2: 也有可能是AI不知道具体的表结构,给出的索引建议与已经存在的索引冲突

2:安全性

给AI模型提供表结构会让AI提供的建议更加准确,但是很多企业内部或者内网办公环境下,表结构是无法提供给公开的AI的,否则会导致泄密风险.

3:提高效率

定制自己的AI应用可以通过编排AI工作流和提示词达到一次询问即可得到想要的答案.避免了公共AI模型的多次询问才能获取想要的结果.能提高工作效率.

2:创建自己的SQL表知识库

2.1:打开navicat数据库->右键需导出数据库->转储SQL文件->仅结构;

打开刚刚导出的.sql文件就会出现这种.这个时候需要批量删掉文本中存在的 DROP TABLE IF EXISTS . 这句话不删掉会影响知识库的识别.然后修改后缀为.txt文本就行了.

这个时候就可以在dify创建自己的sql知识库了.注意我这里的知识库AI模型使用的是 bge-m3

其他都保持默认.进行下一步就创建成功了.

出现这些代表自己的SQL知识库分析完成了.

3:搭建AI应用

3.1:在dify里的探索页面找到问题分类 + 知识库 + 聊天机器人 并添加到工作区.

3.2对AI应用进行编排

右击节点.删掉不想要的节点,只保留一条AI工作流即可.

这个是我编排后的AI工作流

3.3:节点的详细设置

开始节点: 增加了一个参数table (可加可不加看个人需求)

3.4 知识检索节点: 添加刚刚创建好的知识库

3.5 LLM节点:对deepseek进行提示词优化

注意: 如果开始节点没有新增table参数.这个地方的table是没有的.可以去掉.改成自己想要的提示词

然后发布AI应用.就可以使用了.

4:当前AI应用工作流介绍

步骤一:开始节点:对AI进行多参数提问。可以直接输入sql语句,或者explain执行计划

步骤二:知识库检索:知识库对提问的问题进行检索,通过关键字获取到表结构和索引数据。

步骤三:将表结构,索引数据 sql语句汇总起来发给deepseek模型。进行分析如何进一步优化

步骤四:数据分析后的结果。

5:优化sql

例如:使用 EXPLAIN ANALYZE +慢SQL语句进行查询, 然后将获得的结果复制给AI应用即可.

可以看到,即使刚刚没有提供sql表结构,但通过知识库的分析AI依然获取到了已经存在的索引.提高了回答的准确性.而且全程都是本地部署的AI+知识库.所以不用担心数据泄露的问题.能够放心的进行SQL优化.

到这个地方.你已经学会了如何使用本地搭建AI+SQL知识库.赶快去试试吧.


http://www.mrgr.cn/news/98785.html

相关文章:

  • USART讲解
  • OpenHarmony Camera开发指导(五):相机预览功能(ArkTS)
  • Ubuntu20.04配置cartographer记录
  • 【问题】一招解决vscode输出和终端不一致的困扰
  • 十二种存储器综合对比——《器件手册--存储器》
  • MATLAB 控制系统设计与仿真 - 34
  • Java虚拟机(JVM)平台无关?相关?
  • 22、字节与字符的概念以及二者有什么区别?
  • 《Java 并发编程实践》阅读笔记(一):线程重要性
  • 【教学类-102-13】蝴蝶外轮廓03——Python三色图修图代码+制作230灰度的蝴蝶描线图(可以改变描边线条的灰色深浅度)
  • C++编译与链接:从源码到可执行文件的魔法之旅(Visual Studio实践)
  • android如何在生产环境中做到详实的日志收集而不影响性能?
  • 线性回归 (Linear Regression) 多项式回归 (Polynomial Regression)
  • Qt GUI 库总结
  • 批量上传OpenStack镜像
  • 鬼泣:远程攻击
  • MCP理解笔记及deepseek使用MCP案例介绍
  • 关于C语言的模拟物理模型
  • 12孔AG调陶笛音域全解析:从E4到C6的演奏艺术
  • 在高数据速度下确保信号完整性的 10 个关键策略