0
0 Р
IT-оборудование
С пробегом и новое
Доставка по всей России
Пн-Пт: с 9:00 до 18:00 по Мск
  • Конфигуратор
  • Серверы
  • Сетевое оборудование
  • Оборудование
  • Комплектующие
  • О нас
  • Акции
  • Акции
    ×
    Назад

    Как оптимизировать производительность выражений SELECT в SQL

    20 Апреля 2019
    Как оптимизировать производительность выражений SELECT в SQL

    Производительность базы данных SQL возможно улучшить. Один из способов оптимизации - проработка в обращении с ней выражений SEL ECT.

    Итак, что от нас потребуется?


    Проверка индексов

    Проверьте операторы JOIN и WHERE: для всех полей, в которых они используются, должны быть индексы.


    Ограничение рабочего набора данных

    Оцените таблицы, использующиеся вместе с SEL ECT. Можно ли применить к ним фильтры? Часто бывает так, что запросы исполняются молниеносно тогда, когда в БД лишь несколько тысяч строк в таблице. Но все течет, все меняется! Приложение растет, заспросы выполняются все медленнее. Из-за размазанности этого процесса во времени, неясно, когда время все-таки оптимизировать запросы пришло.

    Но это достаточно просто: нужно всего лишь ввести в запрос ограничение на данные сегодняшнего месяца. В случае, если вы используете в запросе вложенный SELECT, примените к внутренним выражениям фильтры.


    Выбор необходимых полей

    Чем больше будет дополнительных полей, тем больше данных получит ваш SQL-клиент. Ваш запрос может выполниться молниеносно, но потом придется еще выполнять агрегацию детально полученных данных, т.е. и вычислительный ресурс, и время будут потрачены на информацию, которая вам не нужна.

    Если вы используете столбцовые базы данных, то имейте ввиду, что чтобы снизить нагрузку на ввод-вывод, надо будет запрашивать меньше столбцов.


    Удаление лишних таблиц

    То же самое, что и в случае с дополнительными полями - чем их меньше, тем лучше. Очень часто в запросе есть таблицы, которые вообще не влияют на получаемые данные, так что если нужно снизить нагрузку на базу данных - смело удаляем JOIN к лишним таблицам!


    Удаление OUTER JOIN

    Тут все будет зависеть от того, все ли вы можете удалять в таблицах. Самое простое решение - удалить OUTER JOIN посредством замещения в обеих таблицах.

    Например, если у вас есть 2 таблицы, использующих OUTER JOIN, то вам нужно будет вставить дополнительные строки в таблицах с клиентами, заменяя все показатели NULL на "заменитель".

    Это не только снимает необходимость в операторе, но стандартизирует таблицы и упрощает работу разработчиков.


    Удаление вычисляемых полей из WHERE и JOIN

    Опять же, в зависимости от того, насколько вы можете вносить изменения в схемы данных, это может быть легко или просто. Но провернуть эту операцию можно уже в случае, если есть возможность создания поля с вычисляемым значением, использующимся в JOIN.

    Например, у нас есть выражение:

    1. FR OM sales a

    2. JOIN budjet b ON ((year(a.sale_date)) * 100) + month(a.sale_date)) = b.budget_year

    Меняем его, добавляя столбец с годом и месяцем в таблицу продаж:

    1. SELECT * FR OM PRODUCTSFROM sales a

    2. JOIN budjet b ON a.sale_year_month = b.budget_year

     
    Поделитесь статьей в соцсетях   
     
    Вам также может быть интересно
    Как выбрать сервер в малый офис?
    28 Мая 2018
    Читать
    Какую стратегию хранения данных выбирать вашему малому бизнесу…
    22 Сентября 2017
    Читать
    Чем протестировать железо сервера
    6 Сентября 2018
    Читать

    Comments System WIDGET PACK
    Получите сервер
    на тест-драйв
    Оцените сочетание производительности и цены серверов от ittelo.ru
    Соберем любую конфигурацию под ваши задачи и отправим вам на тестирование без предоплаты
    После заявки:
    • Консультация
    • Бесплатная доставка
    • Тест-драйв у вас
    • Оплата
    • Гарантия 12 месяцев
    Хотите проконсультироваться? С радостью ответим на ваши вопросы 8 800 551 80 12 или info@ittelo.ru
    Товар добавлен в список сравнения
    Перейти в сравнение
    Продолжить просмотр