Статус сканирования подготовленного оператора
int sqlite3_stmt_scanstatus( sqlite3_stmt *pStmt, /* Prepared statement for which info desired */ int idx, /* Index of loop to report on */ int iScanStatusOp, /* Information desired. SQLITE_SCANSTAT_* */ void *pOut /* Result written here */ ); int sqlite3_stmt_scanstatus_v2( sqlite3_stmt *pStmt, /* Prepared statement for which info desired */ int idx, /* Index of loop to report on */ int iScanStatusOp, /* Information desired. SQLITE_SCANSTAT_* */ int flags, /* Mask of flags defined below */ void *pOut /* Result written here */ );
Эти интерфейсы возвращают информацию о прогнозируемой и измеренной производительности для pStmt. Расширенные приложения могут использовать этот интерфейс для сравнения прогнозируемой и измеренной производительности и выдачи предупреждений и/или повторного запуска АНАЛИЗА, если обнаружены расхождения.
Поскольку ожидается, что этот интерфейс будет редко использоваться, он доступен только в том случае, если SQLite скомпилирован с помощью параметра времени компиляции SQLITE_ENABLE_STMT_SCANSTATUS.
Параметр «iScanStatusOp» определяет, какую информацию о состоянии возвращать. «iScanStatusOp» должен быть одним из вариантов scanstatus, в противном случае поведение этого интерфейса не определено. Запрашиваемое измерение записывается в переменную, на которую указывает параметр «pOut».
Параметр «flags» должен быть маской флагов. В настоящее время определен только один флаг — SQLITE_SCANSTAT_COMPLEX. Если указан SQLITE_SCANSTAT_COMPLEX, то информация о состоянии доступна для всех элементов плана запроса, которые сообщаются в выводе «EXPLAIN QUERY PLAN». Если SQLITE_SCANSTAT_COMPLEX не указан, то доступны только элементы плана запроса, соответствующие циклам запросов (элементы «SCAN…» и «SEARCH…» в выводе EXPLAIN QUERY PLAN). Вызов API sqlite3_stmt_scanstatus() эквивалентен вызову sqlite3_stmt_scanstatus_v2() с параметром flags, установленным в ноль.
Параметр «idx» идентифицирует конкретный элемент запроса, для которого необходимо получить статистику. Элементы запроса нумеруются, начиная с нуля. Значение -1 может быть использовано для запроса статистики по всему запросу. Если idx выходит за пределы допустимого диапазона (меньше -1 или больше или равно общему количеству элементов запроса, используемых для реализации оператора), возвращается ненулевое значение, и переменная, на которую указывает pOut, остается неизменной.
См. также: sqlite3_stmt_scanstatus_reset()
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/stmt_scanstatus.html