<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>重构 on AI 观察</title><link>https://ai.wujiong.cc/tags/%E9%87%8D%E6%9E%84/</link><description>Recent content in 重构 on AI 观察</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 21 Oct 2026 18:22:00 +0800</lastBuildDate><atom:link href="https://ai.wujiong.cc/tags/%E9%87%8D%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>让 AI 解释并重写 SQL：只读、脱敏、先解释后改</title><link>https://ai.wujiong.cc/posts/2026-10-21-chatgpt-sql-query-explain-rewrite/</link><pubDate>Wed, 21 Oct 2026 18:22:00 +0800</pubDate><guid>https://ai.wujiong.cc/posts/2026-10-21-chatgpt-sql-query-explain-rewrite/</guid><description>&lt;p&gt;&lt;strong&gt;对 SQL 最安全的用法是：只读环境、脱敏数据、先讲清楚再改写。&lt;/strong&gt; 不要把生产写权限交给模型，也不要在未理解的情况下直接应用重写。&lt;/p&gt;
&lt;h2 id="流程"&gt;流程&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;用只读账号导出执行计划或慢查询文本，去掉敏感字面量。&lt;/li&gt;
&lt;li&gt;让模型先用白话解释查询在做什么、连接键是什么。&lt;/li&gt;
&lt;li&gt;让模型列出风险：全表扫描、错误去重、隐式转换等（基于你提供的计划文本，不编造库规模）。&lt;/li&gt;
&lt;li&gt;再要一到两个重写候选，并要求说明等价性假设。&lt;/li&gt;
&lt;li&gt;在预发用真实数据分布验证，再谈上线。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="提示词"&gt;提示词&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;先不要给最终 SQL。请：1) 解释意图 2) 列出你不确定的 schema 点 3) 基于【执行计划文本】指出可能问题 4) 再给重写候选与等价性假设。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;禁止编造表行数；缺少信息就提问。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;【SQL】【计划】【索引信息】
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="实践提醒"&gt;实践提醒&lt;/h2&gt;
&lt;p&gt;重写候选通过后，补一条回归用例或说明文档，写清假设的数据分布。若线上计划与预发差异大，先查统计信息是否过期，再谈改写。把解释阶段的白话结论留给值班同事，降低知识单点。&lt;/p&gt;</description></item></channel></rss>