让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.mzph.cn/bicheng/77759.shtml

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

相关文章

小迪安全-112-yii反序列化链,某达oa,某商场,影响分析

yii是和tp一样的框架 入口文件 web目录下 相对tp比较简单一些,对比tp找一下他的url结构 对应的位置结构 这个contorllers文件的actionindex就是触发的方法 控制器,指向的index文件,就可以去视图模块看index文件 这就是前端展示的文件 自…

自定义多头注意力模型:从代码实现到训练优化

引言 在自然语言处理和序列生成任务中,自注意力机制(Self-Attention)是提升模型性能的关键技术。本文将通过一个自定义的PyTorch模型实现,展示如何构建一个结合多头注意力与前馈网络的序列生成模型(如文本或字符生成)。该模型通过创新的 MaxStateSuper 模块实现动态特征…

动态LOD策略细节层级控制:根据视角距离动态简化远距量子态渲染

动态LOD策略在量子计算可视化中的优化实现 1. 细节层级控制:动态简化远距量子态渲染 在量子计算的可视化中,量子态通常表现为高维数据(如布洛赫球面或多量子比特纠缠态)。动态LOD(Level of Detail)策略通过以下方式优化渲染性能: 距离驱动的几何简化: 远距离渲染:当…

Java 泛型使用教程

简介 Java 泛型是 JDK 5 引入的一项特性,它提供了编译时类型安全检测机制,允许在编译时检测出非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 泛型的好处: 编译期检查类型安全 避免强制类型转…

Leetcode - 周赛446

目录 一、3522. 执行指令后的得分二、3523. 非递减数组的最大长度三、3524. 求出数组的 X 值 I四、3525. 求出数组的 X 值 II 一、3522. 执行指令后的得分 题目链接 本题就是一道模拟题,代码如下: class Solution {public long calculateScore(String…

【更新完毕】2025泰迪杯数据挖掘竞赛A题数学建模思路代码文章教学:竞赛论文初步筛选系统

完整内容请看文末最后的推广群 基于自然语言处理的竞赛论文初步筛选系统 基于多模态分析的竞赛论文自动筛选与重复检测模型 摘要 随着大学生竞赛规模的不断扩大,参赛论文的数量激增,传统的人工筛选方法面临着工作量大、效率低且容易出错的问题。因此&…

计算机视觉与深度学习 | RNN原理,公式,代码,应用

RNN(循环神经网络)详解 一、原理 RNN(Recurrent Neural Network)是一种处理序列数据的神经网络,其核心思想是通过循环连接(隐藏状态)捕捉序列中的时序信息。每个时间步的隐藏状态 ( h_t ) 不仅依赖当前输入 ( x_t ),还依赖前一时间步的隐藏状态 ( h_{t-1} ),从而实现…

AI速读:解锁LLM下Game Agent的奇妙世界

在 AI 浪潮中,大语言模型(LLMs)正重塑游戏智能体格局。想知道基于 LLMs 的游戏智能体如何运作,在各类游戏中有何惊艳表现,未来又将走向何方? 大型语言模型(LLMs)的兴起为游戏智能体的…

【每日八股】复习计算机网络 Day3:TCP 协议的其他相关问题

文章目录 昨日内容复习TCP 的四次挥手?TCP 为什么要四次挥手?在客户端处于 FIN_WAIT_2 状态时,如果此时收到了乱序的来自服务端的 FIN 报文,客户端会如何处理?何时进入 TIME_WAIT 状态?TCP 四次挥手丢了怎么…

学习笔记十五——rust柯里化,看不懂 `fn add(x) -> impl Fn(y)` 的同学点进来!

🧠 Rust 柯里化从零讲透:看不懂 fn add(x) -> impl Fn(y) 的同学点进来! 🍔 一、什么是柯里化?先用一个超好懂的生活比喻 假设你在点一个汉堡: 你说:我要点一个鸡腿汉堡! 店员…

深入理解 TCP 协议 | 流量、拥塞及错误控制机制

注:本文为 “TCP 协议” 相关文章合辑。 原文为繁体,注意术语描述差异。 作者在不同的文章中互相引用其不同文章,一并汇总于此。 略作重排,如有内容异常,请看原文。 TCP 三向交握 (Three-way Handshake) 2016-12-21 …

PCL库编译指南

PCL(Point Cloud Library)的编译过程会根据不同操作系统有所差异。以下是详细的编译步骤: Linux/Ubuntu系统编译 1. 安装依赖项 bash sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get install cmake cmake-gui sud…

【Linux】条件变量、基于阻塞队列的生产者消费者模型

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🌐 C 语言 进程是资源分配的基本单位,线程是调度的基本单位,线程是在进程内部运行的(是进程内部…

32-工艺品商城小程序

技术: 基于 B/S 架构 SpringBootMySQLvueelementuiuniapp 环境: Idea mysql maven jdk1.8 node 可修改为其他类型商城 用户端功能 1.系统首页展示轮播图及工艺品列表 2.分类模块:展示产品的分类类型 3.购物车:进行商品多选结算 或者批量管理操作 4.…

SLAM | 激光SLAM中的退化问题

在激光SLAM中,判断退化环境的核心是通过数学建模分析环境特征对位姿估计的约束能力。除了LOAM中提出的退化因子D外,还存在多种基于表达式和阈值设定的方法。以下是几种典型方法及其实现原理: 1. 协方差矩阵特征值分析 原理:通过分析点云协方差矩阵的特征值分布,判断环境中…

【2025最新版】火鸟门户v8.5系统源码+PC、H5、小程序 +数据化大屏插件

一.介绍 火鸟地方门户系统V8.5源码 系统包含4端: PCH5小程序APP 二.搭建环境 系统环境:CentOS、 运行环境:宝塔 Linux 网站环境:Nginx 1.2.22 MySQL 5.6 PHP-7.4 常见插件:fileinfo ; redis 三.测…

PHP腾讯云人脸核身获取NONCE ticket

参考腾讯云官方文档: 人脸核身 获取 NONCE ticket_腾讯云 前提条件,已经成功获取了access token。 获取参考文档: PHP腾讯云人脸核身获取Access Token-CSDN博客 public function getTxFaceNonceTicket($uid) {$access_token file_get_c…

多人3D游戏完整实现方案

以下是一份完整的代码实现方案,涵盖架构设计、核心模块实现和部署流程。我们以 多人3D游戏 为例,结合之前讨论的Nano服务端框架和Unity客户端: 技术栈 模块技术选型服务端Golang + Nano框架 + MongoDB客户端Unity 2022 + C# + Mirror Networking通信协议Protobuf + WebSock…

【Linux我做主】GDB调试工具完全指南

Linux下GDB调试工具完全指南:25个核心命令详解与实战示例 github地址 有梦想的电信狗 前言 GDB(GNU Debugger)是Linux开发中不可或缺的调试工具,尤其在定位代码逻辑错误和内存问题时表现卓越。本文基于实际开发经验&#xff0…

QT中栅格模式探索

1、Qt中选择了栅格模式,如下图所示: 2、在进行整个大的UI界面布局时,需了解每个控件所需要选择的属性sizePolicy。 sizePolicy包含如下几种选择: 3、举个例子:此时整个UI界面,我采用了栅格模式&#xf…