вычисление oracle pctfree для сегмента

#row #storage #oracle12c

#строка #Хранение #oracle12c

Вопрос:

Как я могу вычислить правильный pctfree для данной таблицы oracle. Существует ли стандартный способ сделать это?

Например, если у меня есть таблица с 15 столбцами. Теперь, если я вставлю данные в эту таблицу. Будет установлена средняя длина строки. Теперь, если я добавлю новые столбцы и обновлю существующие строки некоторыми значениями. приведет ли это к миграции строки, если недостаточно свободного места?

Ответ №1:

Во-первых, следует упомянуть, что в настоящее время вам не следует заботиться о таких вещах, как размер PCTFREE или PCTUSED.

Существует идеальная вещь под названием Automatic Segment Space Manager Management (ASSM), которая выполняет всю грязную работу за вас. Поскольку вы отметили этот вопрос как «oracle12c», я предполагаю, что вы работаете с современной версией Oracle database и у вас не должно возникнуть проблем с использованием ASSM. Подробнее об этом можно прочитать здесь: Управление табличными пространствами

Теперь вернемся к вашему вопросу. Если вы все еще хотите знать, как вручную вычислить PCTFREE и PCTUSED, тогда вам следует взглянуть на этот ответ Тома Кайта : Вычисление PCTFREE и PCTUSED

если я добавлю новые столбцы и обновлю существующие строки некоторыми значениями. приведет ли это к миграции строки, если недостаточно свободного места

Да, если строка не помещается в блок вместе с другими строками, она будет перенесена.