|
|
Ежемесячный семинар Московской cекции ACM SIGMOD
28 февраля 2008 г., г. Москва, ВМиК МГУ
|
|
|
|
|
|
Настройка приложений баз данных
Б. А. Новиков Санкт-Петербургский государственный университет, математико-механический факультет
|
Количество просмотров: |
Эта страница: | 360 | Материалы: | 128 |
|
Аннотация:
Настройкой называется совокупность мер, направленных на приведение прикладной системы в соответствие с требованиями по производительности. Вопреки распространенному мнению, требования к системе по характеристикам производительности являются не менее важными, чем функциональные требования.
Аргументы, основанные на тенденции быстрого роста доступных вычислительных ресурсов, масштабируемости, параллелизме и т.п., далеко не всегда справедливы, потому что, во-первых, плохо спроектированная система может не обладать необходимыми для масштабируемости свойствами, и, во-вторых, заказчик далеко не всегда готов ждать появления более мощного оборудования.
Для того чтобы настройка была эффективной, она должна выполняться комплексно и затрагивать все компоненты системы и все стадии процесса проектирования, разработки и сопровождения системы. Настройка только на уровне сервера базы данных, рассматриваемая в прекрасной книге [1], безусловно, необходима, однако обычно оказывается недостаточной вследствие усилий программистов, реализующих код приложения.
В докладе обсуждаются методы и приемы настройки приложений среднего размера, в основном по материалам книги [2].
Наиболее важными фазами, определяющими успех настройки, являются проектирование схемы базы данных, разработка кода приложения и разработка запросов.
Выбор логической структуры данных может очень существенно повлиять на производительность системы. Чрезмерно универсальные решения, на протяжении десятилетий изобретаемые программистами, неизбежно приводят к неприемлемым по производительности результатам. Правильный выбор логической структуры имеет не меньшее значение, чем построение индексов.
Современные методы разработки кода приложений, основанные на использовании каркасов, часто провоцируют слишком большое количество небольших запросов к базе данных.
Как правило, оптимизаторы высокопроизводительных СУБД способны построить вполне эффективные планы выполнения запросов, однако в некоторых случаях необходимо ручное переписывание запросов. Использование знаний о предметной области позволяет заменять запросы на формально неэквивалентные, но вырабатывающие идентичные результаты в контексте приложения. Наиболее важными приемами такого типа являются введение избыточных условий и преобразование операций группировки.
Дополнительные материалы:
novikov20080228.pdf (2.0 Mb)
Website:
https://synthesis.ipi.ac.ru/sigmod/seminar/s20080228
Список литературы
-
Dennis Shasha, Philippe Bonnet, Database tuning: principles, experiments and troubleshooting techniques, Morgan Kauffmann Publishers, 2002
-
Новиков Б. А., Домбровская Г. Р., Настройка приложений баз данных, BHV, 2006
|
|