Sobes.tech
Назад к вопросам
Middle — Middle+
79

Каким образом в Python можно извлечь план выполнения SQL-запроса и узнать его фактическое время исполнения?

Ответ от нейросети

sobes.tech AI

В Python для извлечения плана выполнения SQL-запроса и оценки его фактического времени исполнения обычно используют возможности самой СУБД через EXPLAIN или EXPLAIN ANALYZE.

Пример для PostgreSQL с использованием библиотеки psycopg2:

import psycopg2

conn = psycopg2.connect(dbname="yourdb", user="user", password="pass", host="localhost")
cursor = conn.cursor()

query = "SELECT * FROM your_table WHERE condition"

# Получение плана выполнения с анализом (включает время)
cursor.execute(f"EXPLAIN ANALYZE {query}")
plan = cursor.fetchall()

for line in plan:
    print(line[0])

cursor.close()
conn.close()

EXPLAIN ANALYZE выполняет запрос и возвращает подробный план с реальным временем выполнения каждого шага.

Для других СУБД синтаксис может отличаться, но идея та же: использовать EXPLAIN с опцией анализа для получения детальной информации о плане и времени.

Если используется ORM (например, Django ORM), можно получить SQL-запрос и выполнить EXPLAIN отдельно через курсор.