Назад к вопросам
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 отдельно через курсор.