Саймон Уиллисон выпустил SQLite Query Explainer для разбора SQL-запросов

Саймон Уиллисон выпустил инструмент SQLite Query Explainer, веб-страницу, где можно выполнить SQL-запрос к базе SQLite прямо в браузере и увидеть, как именно SQLite его исполняет. Инструмент запускает запрос, а затем построчно аннотирует вывод и EXPLAIN QUERY PLAN (план запроса), и низкоуровневого EXPLAIN (байт-код виртуальной машины SQLite), поясняя простым языком, что делает планировщик запросов и виртуальная машина на каждом шаге. Сам SQLite при этом работает в браузере через Python, запущенный в Pyodide поверх WebAssembly.

Поводом послужил пост Джулии Эванс «Learning a few things about running SQLite», где она написала: «Может быть, когда-нибудь я научусь читать план запроса». Уиллисон, испытывая то же чувство, поручил ИИ-агенту по имени Fable собрать этот интерактивный инструмент-объяснитель.

Сам автор предупреждает, что не настолько разбирается в планах запросов SQLite, чтобы самостоятельно проверить корректность объяснений, которые выдаёт инструмент, но, по его оценке, результаты выглядят правдоподобно ("cromulent").

Ключевые факты

  • Саймон Уиллисон опубликовал SQLite Query Explainer, браузерный инструмент для разбора выполнения SQL-запросов в SQLite
  • Инструмент построчно аннотирует и EXPLAIN QUERY PLAN, и низкоуровневый байт-код EXPLAIN, объясняя простым языком, что делает планировщик и виртуальная машина
  • SQLite работает прямо в браузере: Python в Pyodide поверх WebAssembly, без сервера
  • Идею подсказал пост Джулии Эванс о сложности чтения планов запросов SQLite
  • Код собирал ИИ-агент Fable по поручению Уиллисона; сам автор признаёт, что не может проверить точность объяснений, но считает их правдоподобными

Почему это важно

Чтение EXPLAIN QUERY PLAN и особенно низкоуровневого байт-кода EXPLAIN в SQLite, задача, которая ставит в тупик даже опытных разработчиков: вывод компактный и требует знания внутреннего устройства виртуальной машины SQLite. Инструмент Уиллисона снимает этот барьер, добавляя построчные объяснения на понятном языке поверх штатного вывода SQLite, не требуя от пользователя изучать документацию по байт-коду.

Кому это важно

Разработчикам и инженерам, которые используют SQLite (в приложениях, встраиваемых базах, локальной разработке) и хотят понять или оптимизировать конкретный запрос, но не владеют внутренней механикой планировщика запросов SQLite.

Как это применить

Инструмент бесплатный и работает полностью в браузере: SQLite исполняется через Python в Pyodide поверх WebAssembly, сервер не требуется. Достаточно открыть страницу, ввести SQL-запрос к базе SQLite и получить построчный разбор плана выполнения и байт-кода на понятном языке.

Можно ли доверять

Сам Уиллисон, опытный разработчик с многолетним опытом, но прямо признаёт: он недостаточно разбирается в планах запросов SQLite, чтобы самостоятельно проверить точность объяснений, которые выдаёт инструмент. Инструмент собирал ИИ-агент Fable, а не сам автор писал логику разбора.

Риски и подводные камни

Главный риск явно назван самим автором: объяснения могут содержать неточности, поскольку никто не верифицировал их построчную корректность против реального поведения SQLite. Использовать инструмент стоит как подспорье для интуитивного понимания плана запроса, а не как авторитетный источник истины о внутренней работе SQLite.

«Использовать с осторожностью: я недостаточно разбираюсь в планах запросов SQLite, чтобы самому проверить результаты, но выглядит вполне правдоподобно.»

— Саймон Уиллисон