Как посмотреть план и время выполнения запроса в SQL
Python
Junior
Без компании
Как посмотреть план и время выполнения запроса в SQL
Ответы
Для анализа плана и времени выполнения SQL-запроса в Python можно использовать `EXPLAIN` и `EXPLAIN ANALYZE` (PostgreSQL) или аналогичные команды в других СУБД. Пример с `psycopg2`:
```
import psycopg2
conn = psycopg2.connect("dbname=test user=postgres")
cursor = conn.cursor()
# Получить план выполнения без выполнения запроса
cursor.execute("EXPLAIN SELECT * FROM users WHERE age > 30")
print("Execution plan:")
for row in cursor:
print(row[0])
# Получить фактический план с временем выполнения
cursor.execute("EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30")
print("\nExecution plan with timing:")
for row in cursor:
print(row[0])
conn.close()
```
Для других СУБД:
- MySQL: `EXPLAIN FORMAT=JSON SELECT...`
- SQLite: `EXPLAIN QUERY PLAN SELECT...`
- SQL Server: `SET SHOWPLAN_TEXT ON` перед запросом
Вывод показывает последовательность операций, их стоимость и время выполнения, что помогает оптимизировать запросы.