Статусы сканирования подготовленных запросов
#define SQLITE_SCANSTAT_NLOOP 0 #define SQLITE_SCANSTAT_NVISIT 1 #define SQLITE_SCANSTAT_EST 2 #define SQLITE_SCANSTAT_NAME 3 #define SQLITE_SCANSTAT_EXPLAIN 4 #define SQLITE_SCANSTAT_SELECTID 5 #define SQLITE_SCANSTAT_PARENTID 6 #define SQLITE_SCANSTAT_NCYCLE 7
Следующие константы могут быть использованы в качестве параметра T в интерфейсе sqlite3_stmt_scanstatus(S,X,T,V). Каждая константа определяет различную метрику, возвращаемую функцией sqlite3_stmt_scanstatus().
Если возвращаемое значение в V является строкой, то выделение памяти для этой строки управляется подготовленным запросом S и будет автоматически освобождено при завершении S.
Не все значения доступны для всех элементов запроса. Если значение недоступно, выходная переменная устанавливается в -1, если значение числовое, или в NULL, если это строка (SQLITE_SCANSTAT_NAME).
- SQLITE_SCANSTAT_NLOOP
- Переменная sqlite3_int64, на которую указывает параметр V, будет установлена в общее количество раз, которое выполнялся X-й цикл.
- SQLITE_SCANSTAT_NVISIT
- Переменная sqlite3_int64, на которую указывает параметр V, будет установлена в общее количество строк, просмотренных всеми итерациями X-го цикла.
- SQLITE_SCANSTAT_EST
- Переменная типа "double", на которую указывает параметр V, будет установлена в оценку планировщиком запроса среднего количества строк, выводимых каждой итерацией X-го цикла. Если оценки планировщика запроса точны, то это значение будет приблизительно равно частному NVISIT/NLOOP, а произведение этого значения для всех предыдущих циклов с тем же SELECTID будет значением NLOOP для текущего цикла.
- SQLITE_SCANSTAT_NAME
- Переменная типа "const char *", на которую указывает параметр V, будет установлена в нуль-терминированную строку UTF-8, содержащую имя индекса или таблицы, используемой для X-го цикла.
- SQLITE_SCANSTAT_EXPLAIN
- Переменная типа "const char *", на которую указывает параметр V, будет установлена в нуль-терминированную строку UTF-8, содержащую описание EXPLAIN QUERY PLAN для X-го цикла.
- SQLITE_SCANSTAT_SELECTID
- Переменная типа "int", на которую указывает параметр V, будет установлена в идентификатор X-го элемента плана запроса. Значение идентификатора уникально для данного запроса. Идентификатор запроса совпадает со значением в первой колонке запроса EXPLAIN QUERY PLAN.
- SQLITE_SCANSTAT_PARENTID
- Переменная типа "int", на которую указывает параметр V, будет установлена в идентификатор родительского элемента текущего элемента плана запроса, если применимо, или в ноль, если у элемента плана запроса нет родителя. Это значение совпадает со значением, возвращаемым во второй колонке запроса EXPLAIN QUERY PLAN.
- SQLITE_SCANSTAT_NCYCLE
- Значение вывода sqlite3_int64 устанавливается в количество циклов, согласно счётчику временной метки процессора, прошедших во время обработки элемента запроса. Это значение недоступно для всех элементов запроса — если оно недоступно, выходная переменная устанавливается в -1.
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/c_scanstat_est.html