Пример разработки высоконагруженной реляционной базы данных

Содержание

Слайд 2

Краткое содержанние

Постановка задачи
Проблемы
Решение проблем

Краткое содержанние Постановка задачи Проблемы Решение проблем

Слайд 3

Наша задача

ОБД

РБД

Наша задача ОБД РБД

Слайд 4

А зачем?

Поиск по связанным объектам
Проверка целостности

А зачем? Поиск по связанным объектам Проверка целостности

Слайд 7

Task-Based система

Отмечаются изменения в ОБД
На основе изменений создаются задачи
Задачи обрабатываются
Данные синхронизируются в

Task-Based система Отмечаются изменения в ОБД На основе изменений создаются задачи Задачи
РБД

Слайд 8

Поиск по иерархическим данным

Создали схему
Создали индексы
Проверили, что всё работает быстро
Сдали в продакшн

Поиск по иерархическим данным Создали схему Создали индексы Проверили, что всё работает быстро Сдали в продакшн

Слайд 10

Прошел год...

Прошел год...

Слайд 12

Проблемы

Запросы на поиск выполняются по несколько минут
Данные синхронизируются с большой задержкой
Ребилд индексов

Проблемы Запросы на поиск выполняются по несколько минут Данные синхронизируются с большой
работает по 12 часов

Слайд 13

Нагрузка

Было
1-2 M задач
~10 потоков
~10сек на поиск
1 мин на репликацию

Стало
50+ M задач
25 потоков
3+

Нагрузка Было 1-2 M задач ~10 потоков ~10сек на поиск 1 мин
мин на поиск
1+ час на репликацию

Слайд 15

Оптимизация запросов

Денормализация
Настройка индексов
Рефакторинг запросов

Оптимизация запросов Денормализация Настройка индексов Рефакторинг запросов

Слайд 16

Денормализация

Name: ParentNode

Name: Node A

Name: Node B

Type: A

Type: B

Денормализация Name: ParentNode Name: Node A Name: Node B Type: A Type: B

Слайд 17

Настройка индексов

SQL Server Profiler
Execution Plan

Index Tuning Advisor

Index Tuning

Настройка индексов SQL Server Profiler Execution Plan Index Tuning Advisor Index Tuning

Слайд 18

Рефакторинг запросов

Все ли поля из запроса нужны
Все ли JOIN’ы нужны
Используйте Full Text

Рефакторинг запросов Все ли поля из запроса нужны Все ли JOIN’ы нужны
Search вместо LIKE
Пересмотрите работу с временными таблицами
Попробуйте разбить запрос

Слайд 19

Запросы на поиск

Было
3 мин

Стало
< 30 сек

Запросы на поиск Было 3 мин Стало

Слайд 20

Переработка системы задач

Рефакторинг схемы
Рефакторинг алгоритма
Устранение блокировок

Переработка системы задач Рефакторинг схемы Рефакторинг алгоритма Устранение блокировок

Слайд 21

Рефакторинг схемы

Рефакторинг схемы

Слайд 22

Рефакторинг алгоритма

Использование грязного чтения
Группировка задач
Отказ от TABLOCK’ов

Рефакторинг алгоритма Использование грязного чтения Группировка задач Отказ от TABLOCK’ов

Слайд 23

Группировка задач

Node A – Data 1
Node A – Data 2
Node A –

Группировка задач Node A – Data 1 Node A – Data 2
Data 3

Node A – Data N

Слайд 24

Устранение блокировок

Научились воспроизводить deadlock’и
Определили конфликтующие запросы
Переписали запросы

Устранение блокировок Научились воспроизводить deadlock’и Определили конфликтующие запросы Переписали запросы

Слайд 25

Устранение блокировок

Устранение блокировок

Слайд 26

Что получилось?

Часть данных реплицируется за 1 минуту
Не критичные – за час

Что получилось? Часть данных реплицируется за 1 минуту Не критичные – за час

Слайд 28

Не оставляйте технических долгов

Не оставляйте технических долгов

Слайд 29

Следите за производительностью

Следите за производительностью

Слайд 30

Изучайте матчасть

Индексы
Уровни изоляции
Блокировки и взаимные блокировки
Планы выполнения

Изучайте матчасть Индексы Уровни изоляции Блокировки и взаимные блокировки Планы выполнения
Имя файла: Пример-разработки-высоконагруженной-реляционной-базы-данных.pptx
Количество просмотров: 122
Количество скачиваний: 0