Строковые цепочки и Миграция

Рубрика: Контроль Пространства

Пример:

  • При обновлении: Длина строки увеличивается, превышая доступное свободное пространство в блоке.

  • Данные должны храниться в новом блоке.

  • Исходный физический идентификатор строки (ROWID) сохраняется.

  • Сервер базы данных Oracle должен считать два блока, чтобы получить данные.

  • Советник по Сегментам находит сегменты, содержащие перемещенные строки.

  • Существует автоматическое объединение фрагментированного свободного пространства в блоке.

Строковые цепочки и Миграция

При двух обстоятельствах данные для строки в таблице могут быть слишком большими, чтобы вписаться в единственный блок данных. В первом случае строка является слишком большой, чтобы вписаться в один блок данных, когда она вставляется. В этом случае сервер базы данных Oracle хранит данные для строки в цепочке блоков данных (одном или больше) зарезервированных для того сегмента. Строковые цепочки чаще всего происходят с большими строками, такими как строки, которые содержат столбец типа данных LONG или LONG RAW. Создание цепочки строки в этих случаях неизбежно.

Однако, во втором случае, строка, которая первоначально вписывалась в один блок данных, обновляется, так, что полная длина строки увеличилась, и свободное пространство блока уже полностью заполнено. В этом случае сервер базы данных Oracle перемещает данные для всей строки в новый блок данных, предполагая, что вся строка может поместиться в новый блок. База данных сохраняет исходный фрагмент перемещенной строки, чтобы указывать на новый блок, содержащий перемещенную строку. ROWID перемещенной строки не изменяется.

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

Советник по Сегментам находит сегменты, содержащие перемещенные строки, которые возникают из-за UPDATE.

Примечания по объединению в цепочку строк и миграции

База данных Oracle автоматически и прозрачно объединяет свободное пространство блока данных когда:

  • Оператор INSERT или UPDATE пытается использовать блок с достаточным свободным пространством для нового фрагмента строки

  • Свободное пространство фрагментируется, так, что часть строки не может быть вставлена в непрерывный раздел блока

После объединения количество свободного пространства идентично количеству перед операцией, но пространство теперь непрерывно.

Далее: Указание Размера Сектора диска

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)