Руководство администратора баз данных Informix


Поддержка фрагментации таблиц и индексов - часть 2


  • Распределение по выражению (by expression) - для каждого фрагмента задается некоторое выражение, зависящее от значений полей записи; истинность выражения определяет, попадет ли запись в данный фрагмент.
  • Правило разбиения таблицы задается в SQL-инструкциях CREATE TABLE (создать таблицу), ALTER TABLE (изменить таблицу).

    Пример: CREATE TABLE account ... FRAGMENT BY EXPRESSION id_num > 0 AND id_num <= 20 IN dbsp1 id_num >20 AND id_num <= 40 IN dbsp2 REMAINDER IN dbsp3

    Здесь dbsp1, dbsp2, dbsp3 - имена областей дискового пространства, выделенного под БД.

    INFORMIX-OnLine DS поддерживает также фрагментацию индексов.

    Различаются два вида фрагментации индексов - зависимая (соответствующая фрагментации таблицы) и независимая. Фрагментированной таблице может соответствовать нефрагментированный индекс. Создание индекса с правилом фрагментации, не совпадающим с правилом фрагментации таблицы, полезно в тех случаях, когда в разных приложениях выборки из таблицы осуществляются на основе разных подмножеств ее атрибутов.

    Стратегия фрагментации таблиц и индексов выбирается в зависимости от цели, которая преследуется, от структуры таблицы и характера запросов к ней. Различные стратегии подробно описаны в документации. Например, если основной целью является уменьшение конкуренции при одновременном доступе к таблице, то оптимальной будет фрагментация таблицы по диапазонам значения ключа (или другого столбца, на основе которого производится основной доступ к таблице) и зависимая фрагментация индекса.

    INFORMIX-OnLine DS предоставляет средства наблюдения, позволяющие оценить эффективность фрагментации таблиц и индексов по следующим параметрам:

    • Распределение данных по фрагментам;
    • Баланс запросов на ввод-вывод по фрагментам;
    • Статус дисковых областей, содержащих фрагменты.

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

    Важно, что фрагментация таблиц и индексов прозрачна для приложений, работающих с базой данных.Изменение правила фрагментации не требует никаких изменений в прикладных системах - оно лишь повышает (или снижает) скорость и экономичность их выполнения.




    - Начало -  - Назад -  - Вперед -