Database Tuning Method & Technics
-
Upload
denis-beskov -
Category
Technology
-
view
2.440 -
download
1
description
Transcript of Database Tuning Method & Technics
![Page 1: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/1.jpg)
Оптимизация производительности БД
Денис Бесков-Доронин
UML2.ru
![Page 2: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/2.jpg)
Оптимизация БД
![Page 3: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/3.jpg)
Что оптимизировать?
![Page 4: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/4.jpg)
Внешние свойства
Производительность Масштабируемость Надёжность
![Page 5: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/5.jpg)
Внутренние свойства
Модифицируемость
![Page 6: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/6.jpg)
Что такое производительность?
![Page 7: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/7.jpg)
Для IT-специалистов
Время отклика Response
Пропускная способность Throughput Bandwidth
![Page 8: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/8.jpg)
Для бизнес-пользователей
Субъективное время реакции системы
![Page 9: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/9.jpg)
Для владельца
Количество обрабатываемых бизнес-операций в единицу времени
Количество одновременно работающих пользователей
Степень удовлетворённости пользователей
![Page 10: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/10.jpg)
Когда выполняется оптимизация?
![Page 11: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/11.jpg)
Проактивно
При проектировании, построении системы Make It Run, Make It Run, Make It Fast Classic Engineering
Performance Planning Capacity Planning Reliability Planning
Кто: Системный архитектор Плановая
Профилактика Предупреждение
Мониторинг Кто: Администрор БД / Системы
![Page 12: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/12.jpg)
Реактивно
В экстренном порядке "Найти и обезвредить" Кто: Аналитик по производительности
![Page 13: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/13.jpg)
Почему именно БД?
![Page 14: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/14.jpg)
Архитектура запроса в системе
![Page 15: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/15.jpg)
Обзор типовой архитектуры многослойной системы
Интерфейс, Внешние системы Глобальная сеть Сервисный слой
(логика приложения) Локальная сеть Бизнес-логика Логика доступа к данным
Структура запросов Интерфейс доступа к БД
ODBC Custom API
Модель данных Логическая модель данных Физическая модель данных
СУБД Выделяемый пул Режим работы
ОС Процессы
Оборудование Память Диски Процессор Шина
![Page 16: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/16.jpg)
Путь выполнения запроса
![Page 17: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/17.jpg)
Принципы оптимизации
![Page 18: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/18.jpg)
Сокращение пути выполнения запросов
DRI Кэширование
![Page 19: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/19.jpg)
Сокращение времени выполнения отдельной операции
Распараллеливание (Увеличение числа обработчиков)
![Page 20: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/20.jpg)
Методики оптимизации
![Page 21: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/21.jpg)
Наивный экстенсив
Процессор Память Диски
![Page 22: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/22.jpg)
"Метод научного тыка"
Содержание Проблема эффективности
Ищем где светло Эффект от неважного до
отрицательного
![Page 23: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/23.jpg)
Метод R
Aligning IT and business Цель Голдратта
"Слабое звено" Теория ограничений Сценарий оптимизации
Identify Profile ROI-based choosing Tune
![Page 24: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/24.jpg)
Техники оптимизации
![Page 25: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/25.jpg)
Логика приложения
Кэширование HTTP-кэширование Кэширование шаблонов Кэш объектов Сетевое кэширование
"Ленивое" чтение Минимум датасетов (.NET)
Плоские файлы Prefetching
![Page 26: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/26.jpg)
Уровень доступа к данным (DAL)
Стратегия доступа Настройка SQL
![Page 27: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/27.jpg)
Стратегия доступа
Индексированный доступ ORM Хранимые процедуры Последовательный доступ Представления Применение образцов проектирования
доступа Временные таблицы
![Page 28: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/28.jpg)
Настройка SQL
Кэширование запроса Кэширование
результатов запроса Правильное
использование SQL Минимизация объёма
данных Политика блокировок
Использование специфических свойств СУБД
Использование оптимизатора
Пакетная обработка Операторы
![Page 29: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/29.jpg)
Кэширование запроса
Связанные переменные(Параметризация запросов) + Безопасность! Порядок выполнения SQL-запроса
Синтаксический разбор Лексический разбор Проверка прав доступа Построение план выполнения Доступ к данным Извлечение
Минимизация динамического SQL
![Page 30: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/30.jpg)
Правильное использование SQL
Операции над множествами VS циклы
![Page 31: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/31.jpg)
Минимизация объёма данных
Минимизация проекции:Явное перечисление столбцовVS квантор *
Минимизация выборки (WHERE) Кэширование результатов запроса
![Page 32: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/32.jpg)
Политика блокировок
Ослабление политики Частые фиксации транзакций
![Page 33: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/33.jpg)
Использование специфических свойств СУБД
Oracle Hierarchical Query TOP command LIMIT GROUP_CONCAT
![Page 34: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/34.jpg)
Использование оптимизатора
Читаемая структура(ANSI JOINs)
Подсказки Сбор статистики
![Page 35: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/35.jpg)
Подсказки
Порядок обхода таблиц Кардинальность и селективность каждой
таблицы Исключение индексов Метод соединения
Вложенные циклы Есть индексы Результат необъёмен
Сортировка слиянием
![Page 36: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/36.jpg)
Пакетная обработка
Отключение индексов, ключей и ограничений
Загрузка и удаление данных кусками, а не целиком
![Page 37: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/37.jpg)
Операторы
UNION VS UNION ALL
![Page 38: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/38.jpg)
Интерфейс доступа
Native interfaces against ODBC
![Page 39: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/39.jpg)
Модель БД
Логическая модель БД Физическая модель БД
![Page 40: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/40.jpg)
Логическая модель БД
Денормализация Истинный ERM VS ORM Логическое секционирование Политика удаления
![Page 41: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/41.jpg)
Денормализация
Хранимые представления только для чтения Materialized View Агрегаты Соединения Производные атрибуты
Обновления Автоматически
Триггер Систематическая задача MV Refresh
Явно Замена кода типа булевыми признаками
![Page 42: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/42.jpg)
Логическое секционирование
Вертикальное Горизонтальное
По таблицам По разным хостам (хэш)
![Page 43: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/43.jpg)
Политика удаления
Замена мягкого удаления жёстким
![Page 44: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/44.jpg)
Физическая модель БД
Индексы Минимально необходимые На внешние ключи С высокой селективностью Правильный порядок столбцов в составных
индексах Исключение дублей
Секционирование По времени По региону По имени
![Page 45: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/45.jpg)
Физическая модель БД 2
Минимизация накладных расходов Удаление индексов и ограничений Отключение / Выключение индексов и ограничений
Кластеризация Распределение файлов данных и индексов Первичные ключи
Замена составных ключей суррогатными DB Engine
In-memory Типы данных
Минимум длины NOT NULL
![Page 46: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/46.jpg)
Настройка СУБД
Распределение файлов БД и журналов
Буферы памяти Ограничение пула соединений Репликация Просмотр системых представлений
![Page 47: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/47.jpg)
Файловая система
RAID SAN Несколько дисков
![Page 48: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/48.jpg)
Оборудование
Память Процессор
![Page 49: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/49.jpg)
Инструменты профилирования
![Page 50: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/50.jpg)
Тесты
OLTP TPC-C TPC-E
DSS TPC-H
Apps & WS TPC-App
![Page 51: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/51.jpg)
Open Source
JMeter ...
![Page 52: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/52.jpg)
Commercial
Rational Robot Compuware QALoad HP (Mercury) LoadRunner
![Page 53: Database Tuning Method & Technics](https://reader034.fdocuments.us/reader034/viewer/2022042601/54923297b479597a588b56c1/html5/thumbnails/53.jpg)
Рекомендуемая литература