Настройка сверхтрудных баз данных

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

Для повышения производительности следует придерживаться следующих советов:
1) устанавливают максимально возможный объем системной глобальной памяти (в Oracle это называется SGA, рекомендуемый объем 2%,но иногда это невозможно)
2) устанавливают максимально возможный размеры страниц, как правило, от 1 до 8 Кбайт, но в некоторых СУБД типа Microsoft размер страницы почти всегда постоянный 2 Кбайта, но большинство СУБД позволяют менять, рекомендуется устанавливать побольше.
3) Использовать сегментирование для таблицы индексов, если СУБД позволяет.
4) Использовать локальные битовые индексы и полностью индексированные таблицы
5) Правильно планировать физическую компоновку файлов на диске для устранения конкуренции ввода-вывода
6) Важно поддерживать близость данных, стараясь вставлять записи последовательно и упорядочивать их по столбцам часто используемых при просмотре диапазона. Кластерные индексы позволяют располагать данные последовательно друг за другом и это надо делать по таким колонкам, по которым чаще всего нужно выбирать диапазоны.
7) Рассмотреть возможность полного просмотра таблиц при считывании большого числа строк, т.е. надо уметь отменять индексный просмотр.
8) Отменять ведение журнала транзакций для больших таблиц, один вариант у Microsoft есть специальная база данных, для которой журнал транзакций не ведётся по умолчанию, другой вариант в том же Microsoft-е по умолчанию есть база TempDB, которая фактически одной командой может быть заброшена в оперативную память, если есть бесперебойный источник питания, то всё нормально, если сеть дернется, то можно потерять все данные т.к. они в оперативной памяти нужно несколько минут, что бы перебросить всё на диск.
9) Поддерживать актуальность индексов, перестраивая их только после крупных изменений, такие как массовые вставки, обновления, удаления, т.е. если есть возможность на сервере перестраивать индексы не после каждого изменения, а только после крупного, это выигрыш в производительности, поскольку перестройка индексов – длительная процедура.

Для повышении производительности при загрузки данных следует:
1) отключать ограничения таблиц
2) отменять триггеры
3) удалять индексы перед загрузкой и создавать не после каждой вставки, а когда уже база данных заполнена при массовой загрузки и создать его один раз
4) для удаления большого объёма данных использовать команду Truncate (транкейт), которая хороша тем, что допускает параллельное выполнение в сочетании со средствами сегментирования. Почти все СУБД эту команду поддерживают.


Комментарии запрещены.





Статистика

Рейтинг@Mail.ru