Как одна производительность настраивает SQL-запрос?
- Какие приемы / инструменты / концепции можно использовать для изменения производительности SQL-запроса?
- Как количественно оценить выгоды?
- О чем нужно быть осторожным?
Какие приемы / инструменты / концепции можно использовать для изменения производительности SQL-запроса?
- Использование индексов? Как они работают на практике?
- Нормализованные или денормализованные данные? Каковы соотношения производительности и дизайна / технического обслуживания?
- Предварительно обработанные промежуточные таблицы? Создано с помощью триггеров или пакетных заданий?
- Реструктурировать запрос, чтобы использовать временные таблицы, подзапросы и т. Д.?
- Разделить сложные запросы на кратные и объединить результаты?
- Что-нибудь еще?
Как можно измерить производительность?
- Считывает
- процессорное время?
- "% Query Cost", когда разные версии работают вместе?
- Что-нибудь еще?
О чем нужно быть осторожным?
- Время генерировать планы выполнения? (Сохраненные запросы и встроенные запросы)
- Хранимые процессы вынуждены перекомпилировать
- Тестирование на небольших наборах данных (масштабируются ли запросы линейно, или квадратично, и т. Д.?)
- Результаты предыдущих запусков в кэше
- Оптимизация "нормального случая", но вред "худшего случая"
- Что такое "Измерение параметров"?
- Что-нибудь еще?
Примечание для модераторов:
Это огромный вопрос, я должен был разделить его на несколько вопросов?
Примечание для ответчиков:
Поскольку это огромный вопрос, пожалуйста, обращайтесь к другим вопросам / ответам / статьям, а не к длинным объяснениям.