![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эти интерфейсы возвращают информацию о предсказанном и измеренном уровне
для pStmt. Усовершенствованные приложения могут использовать этот интерфейс,
чтобы сравнить предсказанный и измеренный уровень для предупреждения проблемы
и/или запустить повторно ANALYZE,
если несоответствия найдены. Так как этот интерфейс, как ожидают, будет редко использоваться, это
доступно только, если 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() с обнуленным параметром флагов. "idx" определяет определенный элемент запроса, чтобы получить
статистику для него. Элементы запроса пронумерованы с 0.
Значение -1 нужно для запроса статистики относительно всего запроса.
Если idx вне диапазона (меньше -1 или больше, чем или равно общему количеству
элементов запроса) ненулевое значение возвращено и переменная, указанная
pOut, не изменена. См. также:
sqlite3_stmt_scanstatus_reset().
Choose any three.
SQLite C Interface
Подготовленный статус просмотра запроса
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 */
);