Как и когда выполнять оператор PRAGMA в SQLite? - PullRequest
0 голосов
/ 28 октября 2018

Я использую SQLite.Мне просто интересно, как и когда выполнить утверждение PRAGMA в sqlite.

Например, я хочу выполнить:

PRAGMA schema.journal_mode = OFF;

На основе документа в https://www.sqlite.org/pragma.html#pragma_journal_mode, ядумаю, я должен выполнить его после sqlite3_open () и до создания каких-либо таблиц.Поэтому я просто вызываю sqlite3_prepare_v2 () и sqlite3_step () для выполнения вышеупомянутой PRAGMA, чтобы повысить производительность операций с базой данных.Однако после оператора PRAGMA кажется, что ничего не изменилось и производительность не улучшилась.

В таком случае, как я могу узнать, выполняется ли оператор PRAGMA и имеет ли он эффект?

Спасибо

1 Ответ

0 голосов
/ 28 октября 2018

Многие из Pragma будут возвращать установленное значение, кроме того, просто используя Pragma, без параметра будет возвращаться текущее значение (в некоторых случаях только этот последний будет возвращать статус / текущее значение).

PRAGMA journal_mode = OFF вернет результат выкл.PRAGMA journal_mode вернет текущее значение, не затрагивая его.

Так что просто действуйте так, как будто это запрос, имя столбца в наборе результатов во многих случаях будет таким же, как и действующая прагма.Те, которые возвращают несколько столбцов, таких как database_list, возвращают столбцы, специфичные для прагмы.

например,

PRAGMA journal_mode;
PRAGMA journal_mode = OFF;
PRAGMA journal_mode;
PRAGMA journal_mode = DELETE;
PRAGMA journal_mode;

приводит к: -

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...