Поддерживается ли физический порядок строк при добавлении новых строк в таблицу с кластеризованным индексом? - PullRequest
1 голос
/ 11 июня 2011

В IDS? .. SE? .. SQL Server, Oracle, MySQL и другие автоматически вставляют новые строки в подходящее место в файле данных для поддержки кластеризации.

Ответы [ 2 ]

1 голос
/ 11 июня 2011

Я не могу ответить за IDS, но могу ответить за некоторых, о которых вы упомянули.

Это зависит от платформ: использует ли он страницы и отделяет ли он данные от дерева индексов?

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

Причина: вы не можете "освободить место" на странице фиксированного размера (как предложено Богемным)

Таким образом, если вы расширяете строку (например, добавляете больше данных в длинный varchar) или вставляете между (ID=3 между строками id IN (2,4)), то происходит одно из следующих действий:

  • строкаперенести на новую страницу с указателями
  • переполнение строк (например, SQL Server 2005+)
  • страница разбита

Это приводит к фрагментации логического / индекса иуменьшенная плотность данных (на страницу): вот почему мы должны поддерживать индексирование, чтобы удалить это.

1 голос
/ 11 июня 2011

Informix обрабатывает кластеризованные индексы, перестраивая таблицу (и индекс), чтобы данные в таблице были в правильной физической последовательности для индекса в момент его создания. После этого строки вставляются там, где это кажется наиболее подходящим, что не продолжает сохранять кластеризованный порядок. Это имело место с тех пор ( Informix-SQL 1.10 в 1985 году ) Informix-SQL 2.10 от 1986 года (возможно, 2,00; у меня пока нет руководства по этому вопросу) через Informix Dynamic Server 11.70 в 2010 году.

Утверждение:

ALTER INDEX idxname TO NOT CLUSTERED;

всегда очень быстро. Дополнительное заявление:

ALTER INDEX idxname TO CLUSTERED;

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


Руководство по ISQL 1.10 не имеет ALTER INDEX; руководство 2.10 имеет ALTER INDEX.

...