Корпоративные базы данных - статьи


Состояние и перспективы Microsoft SQL Server - часть 5


  • Технология используется в ВСР, DBCC

    Модель оптимизации

    • Определение самого дешевого дерева на основе пула альтернатив
    • Изменение порядка join'ов
    • (R JOIN S) JOIN T = (R JOIN T) JOIN S
    • Раннее применение условий фильтрации
    • Классы эквивалентности для колонок и другие неявные предикаты
    • Если a=b, то sort(a), очевидно, такой же, как sort(b)
    • Функциональная избыточность
    • Group(e#,ename) = group(e#)
    • ...

    Параллельная обработка запросов

    • Параллельная обработка- одновременное выполнение одного запроса несколькими процессорами
    • Асинхронный ввод/вывод, обслуживание клиентов на разных потоках не рассматривается
    • Дает преимущество только на машинах с >1 СPU
    • Запрос компилируется для параллельного выполнения, формируется параллельный план
    • Единый параллельный план для нескольких процессоров
    • К операторам последовательного плана добавлены Exchange Operators (Distribute, Gather, Repartition)

    Exchange Operator
    Степень параллелизма

    • Кол-во процессоров, на которых выполняется данный шаг плана запроса
    • Может отличаться для разных шагов, например, при вычислении результирующего агрегата из промежуточных DOP=1
    • Insert / update / delete выполняются на одном потоке
    • Но их части, относящиеся к SELECT могут выполняться с DOP>1
    • Выигрывают долгоиграющие запросы с массивными агрегатами, joinами, unionами и т.д.
    • Не выигрывают OLTP-запросы
    • Число одновременных пользователей >> числа процессоров - предпочтительнее межзапросный параллелизм

    Настройка DOP

    • В конфигурации max DOP меняется от 0 до 32
    • Default=1- отключить параллельное выполнение
    • Default=0 (автоматическая настройка в зависимости от конкретного запроса

      • Учет затрат на инициализацию параллельного плана, перемещение данных между потоками
      • При высокой загрузке, росте коннектов, нехватке памяти Sphinx будет стремиться понизить DOP
      • Сost threshold of parallelism- генерировать параллельные планы только для запросов с более высокой стоимостью (конфигурация 0-32767, default=5)

    • Showplan показывает Exchange-итераторы
    • DOP каждого конкретного запроса можно видеть в SQL Profiler




    - Начало -  - Назад -  - Вперед -