Общие способы оптимизации в SQL

  • Указывать конкретные поля для извлечения в запросах
    Избегайте select *, старайтесь указывать конкретные поля для извлечения.
  • Кешировать небольшие справочники в приложении
    Небольшие редко меняющиеся справочники (например, статусы или типы) лучше кешировать в приложении.
  • Следить за типами в параметризованных запросах
    В параметризованных запросах тип данных и длина должны совпадать с тем, что содержится в базе.
  • Устанавливать индексы,опираясь на выборки
    Индексы ставьте на колонки, которые участвуют в where, group by, order by, join, order by, top.
  • Проверять и анализировать индексы
    Индексы надо постоянно проверять и анализировать. Есть специальные запросы, которые позволяют узнать, где нужно поставить индекс, или где он лишний. http://blog.cymen.org/2010/08/18/sql-server-express-and-performance-tuning/
  • Следить за использованием distinct
    Избегайте distinct. Это ресурсоемкая операция.
  • Применять SQL Profiler
    Для оптимизации запроса используйте SQL Profiler.
  • Использовать хранимые процедуры
    Они компилируются, и поэтому выполняются быстрее.
  • Точно указывать типы для полей таблицы
    При определение полей таблицы по возможности указывайте тип максимально точно (максимальный размер, not null, unique).
  • Применять bulk insert для вставки большого количества данных
    Для большой единовременной вставки данных используйте bulk insert с отключением некоторых функций https://www.simple-talk.com/sql/learn-sql-server/bulk-inserts-via-tsql-in-sql-server/
  • Оптимально составлять where-условия
    В выражениях where ставьте наименее вероятные впереди при AND и наиболее вероятные при OR.
  • Не использовать в where-условия ресурсозатратных операций
    Избегайте сложных операцией в Where, например Like.
  • Следить за использованием агрегирующих функций
    Агрегирующие функции оказывают большое влияние на память.
  • Анализировать план сложных запросов
    Используйте план запроса для максимальной оптимизации сложных запросов.
  • Использовать Fast Forward-Only курсоры
    Если необходимо использовать курсоры – то лучше использовать Fast Forward-Only курсоры.
  • Применять временные таблицы в хранимых процедурах
    В хранимых процедурах используйте временные таблицы.

Периодически мы проводим обучение и даем возможность стажировки на базе нашей платформы с управлением на SQL. Если вам это интересно, то пожалуйста посмотрите информацию об обучении/стажировке по SQL.

Руслан Раянов

Recent Posts

Регулярность – основа для сдвига #инновации

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

8 часов ago

Как работает маркетплейс услуг? #маркетплейс

Маркетплейс — эффективная бизнес-модель для торговли товарами и услугами. Мы рассмотрим, как работает маркетплейс услуг…

1 день ago

Многоуровневое обучение для сотрудников #корпоративноеобучение

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

3 дня ago

Используйте бартер #бизнесинсайт

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

4 дня ago

Плюсы и минусы Excel для бизнеса #альтернативаexcel

Источник https://falconspace.ru/blog/pobeg-iz-excel

5 дней ago

Ключевые особенности гибкой CRM-системы

Источник: https://falconspace.ru/blog/kak-vnedrit-svoyu-crm-s-vozmozhnostyu-budushchego-rasshireniya

6 дней ago