2016-12-23 4 views
0

Каждый месяц я запускаю процесс очистки, который удаляет старые ненужные объекты из базы данных. Есть ли способ получить оценку размера файла, полученного в процессе очистки?Как получить оценочный размер набора запросов в БД?

Я работаю как с базами данных sqlite3, так и с PostgreSQL, но, конечно же, было бы предпочтительным DB-независимое решение.

+0

Люди, которые голосуют за «слишком широкий» вопрос - почему, по-вашему, вопрос слишком широк? – iTayb

ответ

0

Похоже, что хорошей оценкой является переход к каждому объекту в наборе запросов, итерация значений __dict__ и вызов __sizeof__ на каждый объект.

Учитывая, что QuerySet является qs:

total_est_size = sum([v.__sizeof__() for rec in qs for v in rec.__dict__.values()]) 

Конечно, это очень простой расчет, который не принимает во внимание множество сложных реализаций.