Основная причина в том, что Postgres по умолчанию сжимает значения, которые больше (приблизительно) 2000 байтов типов данных переменной длины данных - это в основном типы text
, varchar
и bytea
.
Oracle будет сжимать содержимое столбцов больших объектов только в том случае, если вы используете Enterprise Edition, и разрешать сжатие при определении столбца больших объектов (наиболее важной частью является использование SecureFile
вместо BasicFile
).
Скорее всего, ваши столбцы больших объектов определены без использования сжатия в Oracle и содержат много значений, превышающих 2000 байтов, поэтому вы видите уменьшение в размере из-за автоматического сжатия Postgres.