У меня есть база данных SQLite, которая содержит несколько таблиц. Мы пишем инструмент обслуживания, который удаляет «устаревшие» данные из таблицы, пока размер этой таблицы не будет определенным процентом от общего файла базы данных или меньше.Запрос, который возвращает размер таблицы в базе данных SQLite
Я знаю, как определить размер файла базы данных - я это сделать, выполнив
PRAGMA PAGE_SIZE;
и
PRAGMA PAGE_COUNT;
в двух отдельных запросов и умножив два, чтобы получить размер файла в байтах. Да, я знаю, что могу просто взять размер файла в байтах, но это похоже на то, как я это сделал в других базах данных, и я хочу придерживаться его, по крайней мере, на данный момент.
Моя проблема: я не знаю, как получить размер таблицы. Должен быть какой-то способ сделать это. Может кто-то указать мне верное направление?
Я не знаю запроса, но ознакомьтесь с инструментом sql_analize на http://www.sqlite.org/download.html './sqlite3_analyze path_to_db/database.sqlite> dbinfo.sql' предоставит вам подробную информацию по размеру каждого стола на диске. – NotGaeL
(и если он предназначен для очистки, не забудьте «VACUUM;» после того, как вы закончите удаление записей) – NotGaeL
Спасибо за это напоминание –