推理模型對SQL理解能力的評測:DeepSeek r1、GPT-4o、Kimi k1.5和Claude 3.7 Sonnet

引言

隨著大型語言模型(LLMs)在技術領域的應用日益廣泛,評估這些模型在特定技術任務上的能力變得越來越重要。本研究聚焦于四款領先的推理模型——DeepSeek r1、GPT-4o、Kimi k1.5和Claude 3.7 Sonnet在SQL理解與分析方面的能力,特別是它們判斷SQL查詢等價性的表現。

評測方法

我們設計了一個具有挑戰性的測試案例[注1]:使用TPC-H基準測試中的一個原始SQL查詢,以及通過專業SQL優化工具PawSQL重寫后的查詢版本。這兩個查詢在語法結構上有明顯差異,但在語義上是等價的。我們要求四個模型分析這兩個查詢是否等價,并評估它們的推理過程和結論。

測試查詢

原始SQL查詢

select?ps.ps_partkey,?sum(ps.ps_supplycost?*?ps.ps_availqty)?as?value
from?partsupp?as?ps, supplier, nation
where?ps.ps_suppkey?=?supplier.s_suppkeyand?supplier.s_nationkey?=?nation.n_nationkeyand?nation.n_name?=?'JAPAN'
group?by?ps.ps_partkey
having?sum(ps.ps_supplycost?*?ps.ps_availqty)>?(select?sum(ps_supplycost?*?ps_availqty)?*?0.0001from?partsupp, supplier, nationwhere?ps_partkey?=?ps.ps_partkeyand?ps_suppkey?=?s_suppkeyand?s_nationkey?=?n_nationkeyand?n_name?=?'JAPAN')
order?by?value?desc

重寫優化后的SQL查詢:標量子查詢解關聯

select?ps.ps_partkey,?sum(ps.ps_supplycost * ps.ps_availqty)?as?value
from?partsupp?as?ps, supplier, nation , (select?ps_partkey, sum(ps_supplycost * ps_availqty) *?0.0001?as?null_from?partsupp, supplier, nationwhere?ps_suppkey = s_suppkeyand?s_nationkey = n_nationkeyand?n_name =?'JAPAN'group?by?ps_partkey)?as?SQ
where?ps.ps_suppkey = s_suppkeyand?s_nationkey = n_nationkeyand?n_name =?'JAPAN'and?SQ.ps_partkey = ps.ps_partkey
group?by?ps.ps_partkey
having?sum(ps.ps_supplycost * ps.ps_availqty) >?sum(SQ.null_)
order?by?value?desc

模型分析結果

DeepSeek r1(推理用時59秒)

DeepSeek r1推理用時約59秒,正確判斷兩個查詢在邏輯上等價的。

圖片

它的分析重點包括:

  1. 查詢邏輯對比:區分了第一個查詢使用關聯子查詢與第二個查詢使用內聯視圖預計算的不同實現方式。

  2. 等價性驗證:詳細分析了子查詢作用域、計算值一致性和過濾條件,指出第二個查詢中的sum(SQ.null_)實際上等價于直接取SQ.null_,因為每個ps_partkeySQ中唯一。

  3. 性能差異:識別出第二個查詢通過預計算和連接優化避免了多次掃描,執行效率可能更高。PawSQL的優化結果也確實證明整體性能從192秒降低到0.065s,性能提升超過1000倍[1]。

    GPT-4o(推理時間26秒)

    GPT-4o推理用時26秒,同樣得出了兩個查詢等價的正確結論。

    圖片

    它的分析主要關注:

    1. 子查詢的寫法差異:識別出第一個SQL使用相關子查詢,而第二個SQL將計算邏輯放到內聯子查詢中。

    2. 執行方式差異:指出盡管執行計劃有所不同,但兩個查詢的語義和最終結果相同。

    GPT-4o的分析簡潔明了,直接抓住了查詢優化的本質:通過提前計算派生表的聚合值以提高性能,同時保持結果一致性。

    Kimi k1.5(用時1分鐘8秒)

    Kimi k1.5推理用時1分鐘8秒,而且錯誤地認為兩個查詢不完全等價。

    圖片

    其重點分析包括:

    1. 子查詢位置和邏輯:認為兩個查詢在子查詢位置和處理邏輯上存在差異。

    2. 分組和篩選邏輯:誤解了第一個查詢是全局計算一個單一閾值,而第二個查詢按ps_partkey分組計算獨立閾值。

    3. 結果差異:基于上述誤解,得出兩個查詢可能返回不同結果的錯誤結論。

    Kimi的分析反映出它在理解SQL查詢語義,特別是子查詢與主查詢關系方面的局限性。

    Claude 3.7 Sonnet

    Claude 3.7 Sonnet也得出了查詢不等價的錯誤結論。

    圖片

    它的分析關注點包括:

    1. 子查詢處理方式:正確識別出兩個查詢在子查詢實現上的差異。

    2. HAVING子句條件比較:誤認為第二個查詢中的sum(SQ.null_)會對派生表結果再次聚合,改變比較語義。

    3. 修改建議:提出將第二個查詢的HAVING條件修改為直接使用SQ.null_而非sum(SQ.null_)

    Claude的分析顯示了對SQL聚合函數在不同上下文中行為理解的不足。

    評測結論

    1. DeepSeek r1和GPT-4o展示了較強的SQL語義理解能力,不僅給出了正確結論,還能準確解釋優化過程中的語義保持。

    2. Kimi k1.5和Claude 3.7 Sonnet在處理復雜SQL轉換和子查詢優化時存在明顯局限,尤其是在理解聚合函數與JOIN操作的交互方面有待提高。

    3. 模型表現差異可能反映了訓練數據中SQL相關內容的質量和數量差異,以及模型對數據庫查詢執行機制的理解深度不同。

    啟示

    盡管大型語言模型在SQL理解和分析方面取得了顯著進展,本研究結果也凸顯了專業SQL優化工具(如PawSQL)在實際數據庫優化工作中的不可替代性。

    1. 優化精確性與可靠性:專業工具基于數據庫理論和實踐,確保查詢轉換的語義等價性,而LLMs在復雜SQL查詢的理解上仍存在不確定性。

    2. 性能優化的系統性與全面性:專業工具可以基于數據庫引擎特性和統計信息進行優化,考慮索引使用、連接順序、謂詞下推等多維度優化,生成可預測的、一致的優化結果。

    3. 生產環境中的穩定性與可控性:在生產環境中,SQL查詢優化需要考慮優化的可預測性和一致性、與現有應用系統的兼容性以及對邊緣情況的穩健處理。專業工具在這些方面提供了更高的可靠性和可控性。

    4. 工具協同:?構建LLMs與專業SQL優化工具協同工作的方法,可能是提高數據庫優化效率和可靠性的有效途徑。

    總結

    通過SQL等價性分析任務,揭示了當前頂級推理模型在處理專業技術領域問題時的能力差異。盡管部分模型展現了對SQL語義理解的能力,但專業SQL優化工具在實際生產環境中的價值仍不可替代。隨著技術發展,LLMs與專業工具的結合使用可能成為未來數據庫優化的最佳實踐。

    [*注1] 本文使用的優化案例:

    https://www.pawsql.com/statement/1897947325217640449

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/pingmian/71990.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71990.shtml
    英文地址,請注明出處:http://en.pswp.cn/pingmian/71990.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    IDEA接入阿里云百煉中免費的通義千問[2025版]

    安裝deepseek 上一篇文章IDEA安裝deepseek最新教程2025中說明了怎么用idea安裝codeGPT插件,并接入DeepSeek,無奈接入的官方api已經不能使用了,所以我們嘗試從其他地方接入 阿里云百煉https://bailian.console.aliyun.com/ 阿里云百煉?是阿…

    實施一套先進的智能攝像頭服務系統。

    一、項目背景 隨著物聯網、人工智能和大數據技術的飛速發展,智能攝像頭已成為家庭、企業以及公共安全領域的重要設備。其便捷、高效、智能的特點,使得市場需求日益增長。為了滿足用戶對智能監控的多樣化需求,提供更加全面、可靠的監控服務&a…

    linux自啟動服務

    在Linux環境中,systemd是一個系統和服務管理器,它為每個服務使用.service文件進行配置。systemctl是用于控制系統服務的主要工具。本文將詳細介紹如何使用systemctl來管理vsftpd服務,以及如何設置服務自啟動。 使用Systemd設置自啟動服務 創…

    010-Catch2

    Catch2 一、框架簡介 Catch2 是一個基于 C 的現代化單元測試框架,支持 TDD(測試驅動開發)和 BDD(行為驅動開發)模式。其核心優勢在于: 單頭文件設計:v2.x 版本僅需包含 catch.hpp 即可使用自然…

    數字人分身開發指南:從概念到實戰

    一、什么是數字人分身? 想象一下,在電腦或手機屏幕里,一個能跟你聊天、回答問題,甚至還能做表情的虛擬角色。這就是數字人分身,它用上了人工智能技術,讓機器也能像人一樣交流。無論是在線客服、網絡主播還…

    Pixelmator Pro for Mac 專業圖像處理軟件【媲美PS的修圖】

    介紹 Pixelmator Pro,是一款非常強大、美觀且易于使用的圖像編輯器,專為 Mac 設計。采用單窗口界面、基于機器學習的智能圖像編輯、自動水平檢測,智能快速選擇及更好的修復工具等功能優點。許多非破壞性的專業編輯工具可讓您進行最佳的照片處…

    LiveGBS流媒體平臺GB/T28181常見問題-視頻流安全控制HTTP接口鑒權勾選流地址鑒權后401Unauthorized如何播放調用接口流地址校驗

    LiveGBS流媒體平臺GB/T28181常見問題頻流安全控制HTTP接口鑒權勾選流地址鑒權后401Unauthorized如何播放調用接口流地址校驗? 1、安全控制1.1、HTTP接口鑒權1.2、流地址鑒權 2、401 Unauthorized2.1、攜帶token調用接口2.1.1、獲取鑒權token2.1.2、調用其它接口2.1.…

    C++設計模式-抽象工廠模式:從原理、適用場景、使用方法,常見問題和解決方案深度解析

    一、模式基本概念 1.1 定義與核心思想 抽象工廠模式(Abstract Factory Pattern)是創建型設計模式的集大成者,它通過提供統一的接口來創建多個相互關聯或依賴的對象族,而無需指定具體類。其核心思想體現在兩個維度: …

    【prompt實戰】知乎問題解答專家

    本文原創作者:姚瑞南 AI-agent 大模型運營專家,先后任職于美團、獵聘等中大廠AI訓練專家和智能運營專家崗;多年人工智能行業智能產品運營及大模型落地經驗,擁有AI外呼方向國家專利與PMP項目管理證書。(轉載需經授權&am…

    數據結構第八節:紅黑樹(初階)

    【本節要點】 紅黑樹概念紅黑樹性質紅黑樹結點定義紅黑樹結構紅黑樹插入操作的分析 一、紅黑樹的概念與性質 1.1 紅黑樹的概念 紅黑樹 ,是一種 二叉搜索樹 ,但 在每個結點上增加一個存儲位表示結點的顏色,可以是 Red和 Black 。 通過對 任何…

    Spring Boot3.3.X整合Mybatis-Plus

    前提說明: 項目的springboot版本為:3.3.2 需要整合的mybatis-plus版本:3.5.7 廢話不多說,開始造吧 1.準備好數據庫和表 2.配置全局文件application.properties或者是application.yml(配置mapper的映射文件路徑&am…

    可視化圖解算法:鏈表指定區間反轉

    1. 題目 描述 給你單鏈表的頭指針 head 和兩個整數 left 和 right &#xff0c;其中 left < right 。請你反轉從位置 left 到位置 right 的鏈表節點&#xff0c;返回 反轉后的鏈表 。 示例1 輸入&#xff1a; 輸入&#xff1a;head [1,2,3,4,5], left 2, right 4 輸…

    ?SQL-遞歸CTE

    &#x1f4d6; SQL魔法課堂&#xff1a;CTE「時間折疊術」全解 &#x1f3a9; 第一章&#xff1a;什么是CTE&#xff1f; CTE&#xff08;Common Table Expression&#xff09; 就像 SQL 里的「臨時筆記本」&#x1f4d2;&#xff1a; WITH 臨時筆記本 AS ( SELECT ... FRO…

    Cursor 新手入門使用教程

    一、Cursor 是什么&#xff1f; Cursor 是一個集成了 GPT-4、Claude 3.5 等先進 LLM&#xff08;大語言模型&#xff09;的類 VSCode 編譯器&#xff0c;可以理解為在 VSCode 中集成了 AI 輔助編程助手。從界面布局來看&#xff0c;Cursor 與 VSCode 基本一致&#xff0c;且使…

    如何在Spring Boot中配置和使用MyBatis-Plus

    在當今的Java開發中&#xff0c;Spring Boot已經成為了一個非常流行的框架&#xff0c;而MyBatis-Plus則是一個強大的ORM框架&#xff0c;為開發人員提供了更簡便的數據庫操作方式。很多開發者都在使用Spring Boot和MyBatis-Plus的組合來快速構建高效的應用。今天就來聊聊如何在…

    【貪心算法3】

    力扣1005.k次取反后最大化的數組和 鏈接: link 思路 既然要求最大和&#xff0c;那么不妨先給數組排個序&#xff0c;如果有負數&#xff0c;先處理負數從前往后給數組取反&#xff0c;如果負數處理完后k還有次數&#xff0c;此時數組全是正數了&#xff0c;只需要對第一個元…

    自然語言處理中的語音識別技術:從聲波到語義的智能解碼

    引言 語音識別&#xff08;Automatic Speech Recognition, ASR&#xff09;是自然語言處理&#xff08;NLP&#xff09;的關鍵分支&#xff0c;旨在將人類語音信號轉化為可處理的文本信息。隨著深度學習技術的突破&#xff0c;語音識別已從實驗室走向日常生活&#xff0c;賦能…

    1688店鋪所有商品數據接口詳解

    ??一、接口概述淘寶開放平臺提供 1688.items.onsale.get/taobao.item_search_shop 接口&#xff0c;可批量獲取店鋪在售商品列表&#xff0c;包含商品 ID、標題、價格、銷量、圖片等核心信息。該接口適用于商品庫管理、競品監控、數據分析等場景 ?二、接口調用流程 前期準…

    ArduPilot開源代碼之AP_OSD

    ArduPilot開源代碼之AP_OSD 1. 源由2. 簡介3. 補丁4. 框架設計4.1 啟動代碼 (AP_OSD::init)4.2 任務代碼 (AP_OSD::osd_thread)4.3 實例初始化 (AP_OSD::init_backend) 5. 重要例程5.1 AP_OSD::update_stats5.2 AP_OSD::update_current_screen5.3 AP_OSD::update_osd 6. 總結7.…

    qt open3dAlpha重建

    qt open3dAlpha重建 效果展示二、流程三、代碼效果展示 二、流程 創建動作,鏈接到槽函數,并把動作放置菜單欄 參照前文 三、代碼 1、槽函數實現 void on_actionAlpha_triggered();//alpha重建 void MainWindow::