1. Какие шаблоны вы используете для определения частых запросов?
Зависит от того, на каком уровне вы имеете дело с базой данных. Если вы администратор или имеете доступ к инструментам, базы данных, такие как Oracle, позволяют вам запускать задания и генерировать статистику / отчеты за определенный период времени. Если вы разработчик, пишущий приложение для базы данных, вы можете просто выполнить профилирование производительности в вашем приложении.
2. Как вы выбираете факторы оптимизации?
Я пытаюсь понять, как используется таблица и какие данные в ней содержатся. Я иду со следующими вопросами.
Будет ли обновляться тонна и на каких полях происходят обновления?
Есть ли в нем столбцы с низкой кардинальностью?
Стоит ли индексировать? (очень маленькие таблицы могут быть замедлены при доступе по индексу)
Сколько стоит обслуживание / головная боль, чтобы он работал быстрее?
Соотношение обновлений / вставок и запросов?
и т.д.
3. Какие типы изменений можно сделать?
- При использовании Oracle обновляйте статистику! =) * * Тысяча двадцать-семь
- Нормализация / Денормализация может улучшить производительность в зависимости от использования таблицы. Я почти всегда нормализуюсь, и тогда, только если я не смогу каким-либо другим практическим способом ускорить запрос, будет нормализоваться. Хороший способ денормализации для запросов и когда ваша ситуация позволяет это сделать - это нормализовать реальные таблицы и создать денормализованную «таблицу» с материализованным представлением.
- Индекс разумно. Слишком много может быть плохим на многих уровнях. Индексы BitMap хороши в Oracle, если вы не часто обновляете столбец, а этот столбец имеет низкую мощность.
- Использование индексированных таблиц.
- Секционированные и секционированные таблицы и индексы
- Используйте хранимые процедуры, чтобы уменьшить количество обращений к приложениям, повысить безопасность и включить оптимизацию запросов, не затрагивая пользователей.
- Закрепить таблицы в памяти, если необходимо (доступно много и довольно мало)
- Разделение устройства между файлами базы данных индекса и таблицы.
..... список можно продолжить. =)
Надеюсь, это полезно для вас.