Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
ОС: Windows Server 2003 Standart Edition 64-x. Сервер: MS SQL Server 2008 R2 Enterprise Edition 64-x. ОЗУ: 16Гб. БД 60Гб.
Модель восстановления "FULL"
Проблема: Выполняю один и тот-же запрос к первой БД, и к второй БД (её копии). В первом случае запрос выполняется 2 2сек., а ко второй 6сек. Но на запрос к первой БД план выполнения запроса использует параллелизм. А на второй нет. По второй через Database Engine Tuning Advisor выстроил индекс и статистики, а выполнение запроса наоборот увеличилось.
Хотя изначально время выполнения было практически одинаковым.
1 дек 11, 12:43    [11688676]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
VitLF
ОС: Windows Server 2003 Standart Edition 64-x. Сервер: MS SQL Server 2008 R2 Enterprise Edition 64-x. ОЗУ: 16Гб. БД 60Гб.
Модель восстановления "FULL"
Проблема: Выполняю один и тот-же запрос к первой БД, и к второй БД (её копии). В первом случае запрос выполняется - 2сек., а ко второй - 6сек. Но на запрос к первой БД план выполнения запроса использует параллелизм. А на второй нет. По второй через Database Engine Tuning Advisor выстроил индекс и статистики, а выполнение запроса наоборот увеличилось.
Хотя изначально время выполнения было практически одинаковым.
1 дек 11, 12:44    [11688687]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
ОС: Windows Server 2003 Standart Edition 64-x. Сервер: MS SQL Server 2008 R2 Enterprise Edition 64-x. ОЗУ: 16Гб. БД 60Гб.
Модель восстановления "FULL"
Проблема: Выполняю один и тот-же запрос к первой БД, и к второй БД (её копии). В первом случае запрос выполняется 2 2сек., а ко второй 6сек. Но на запрос к первой БД план выполнения запроса использует параллелизм. А на второй нет. По второй через Database Engine Tuning Advisor выстроил индекс и статистики, а выполнение запроса наоборот увеличилось.
Хотя изначально время выполнения было практически одинаковым.


ну так надо смотреть планы и статистики и сравнивать... а так вообще иногда параллелизм на OLTP помогает :) - но ток иногда
1 дек 11, 12:52    [11688760]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
Что лучше индексы через DTA или параллелизм?

Вопрос из разряда, что лучше - есть или пить ?
1 дек 11, 12:56    [11688787]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Что лучше индексы через DTA или параллелизм?

Вопрос из разряда, что лучше - есть или пить ?


Мне нужно объяснение гнаться в данном случае за быстротой выполнения (что происходит у меня когда в плане - параллелизм) или за разгрузкой I/0 (индексы), но запрос чуть дольше?
1 дек 11, 13:03    [11688847]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
Мне нужно объяснение гнаться в данном случае за быстротой выполнения (что происходит у меня когда в плане - параллелизм) или за разгрузкой I/0 (индексы), но запрос чуть дольше?

А вы не думаете, что чем быстрее выполняется запрос, тем больше ресурсов он потребляет ?
А ресурсы в многопользовательской среде нужны не только этому одному запросу
1 дек 11, 13:08    [11688884]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Мне нужно объяснение гнаться в данном случае за быстротой выполнения (что происходит у меня когда в плане - параллелизм) или за разгрузкой I/0 (индексы), но запрос чуть дольше?

А вы не думаете, что чем быстрее выполняется запрос, тем больше ресурсов он потребляет ?
А ресурсы в многопользовательской среде нужны не только этому одному запросу


Т.е. DTA в данном случае прав? Лучше пускай будут оптимальные индексы, чем параллелизм?
1 дек 11, 13:19    [11688954]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
Т.е. DTA в данном случае прав? Лучше пускай будут оптимальные индексы, чем параллелизм?

Причем тут DTA ?
У меня 10 единиц ресурса
И 2 желающих
Что лучше - выдать 1му желающему 9 единиц ресурса, а 2-му - 1 единицу или каждому по 5ть единиц ?
1 дек 11, 13:26    [11689008]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Т.е. DTA в данном случае прав? Лучше пускай будут оптимальные индексы, чем параллелизм?

Причем тут DTA ?
У меня 10 единиц ресурса
И 2 желающих
Что лучше - выдать 1му желающему 9 единиц ресурса, а 2-му - 1 единицу или каждому по 5ть единиц ?


Каждому по 5 единиц :)
1 дек 11, 13:30    [11689052]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Т.е. DTA в данном случае прав? Лучше пускай будут оптимальные индексы, чем параллелизм?

Причем тут DTA ?
У меня 10 единиц ресурса
И 2 желающих
Что лучше - выдать 1му желающему 9 единиц ресурса, а 2-му - 1 единицу или каждому по 5ть единиц ?


Просто не знаком с параллелизмом!
Какова его роль? Вероятно при нём все мои процессоры (4-ре) работают только на него большую часть времени?
1 дек 11, 13:33    [11689077]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
Каждому по 5 единиц :)

Почему ?
Ведь 1ый коннект с 9ю единицами сработает быстрее, чем с 5ю ?
1 дек 11, 13:36    [11689114]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Каждому по 5 единиц :)

Почему ?
Ведь 1ый коннект с 9ю единицами сработает быстрее, чем с 5ю ?


Потому что в данном случае (в данное время) у второго коннекта замедлятся скорость выполнения его запросов.
1 дек 11, 13:48    [11689224]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
Потому что в данном случае (в данное время) у второго коннекта замедлятся скорость выполнения его запросов.

Логично
А теперь теже 10 единиц ресурса и 1 коннект
Но мы по прежнему будем выдавать ему 5 единиц ресурса
1 дек 11, 13:52    [11689254]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Потому что в данном случае (в данное время) у второго коннекта замедлятся скорость выполнения его запросов.

Логично
А теперь теже 10 единиц ресурса и 1 коннект
Но мы по прежнему будем выдавать ему 5 единиц ресурса


Не понил :( А вопрос в чём?
1 дек 11, 14:02    [11689328]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
Не понил :( А вопрос в чём?

Ну так это ваш вопрос был "гнаться в данном случае за быстротой выполнения (что происходит у меня когда в плане - параллелизм) или за разгрузкой I/0 (индексы)"
1 дек 11, 14:04    [11689351]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
Не понил :( А вопрос в чём?

Ну так это ваш вопрос был "гнаться в данном случае за быстротой выполнения (что происходит у меня когда в плане - параллелизм) или за разгрузкой I/0 (индексы)"


Т.е. в данном запросе, когда план выполнения начинает использовать параллелизм, не есть совсем хорошо, быстро, то быстро, а у других пользователей замедляется их запросы?
1 дек 11, 14:09    [11689402]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
Glory
Member

Откуда:
Сообщений: 104751
VitLF
а у других пользователей замедляется их запросы?

Есть проблема маленькая.
Отсюда не видно, есть ли у вас эти пользователи, хватает ли им ресурсов и тп

В вашей постановке вопроса присутствует один запрос и два плана его выполнения
И отнюдь не факт, что один из них есть абсолютно лучший план
1 дек 11, 14:15    [11689465]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
Glory
VitLF
а у других пользователей замедляется их запросы?

Есть проблема маленькая.
Отсюда не видно, есть ли у вас эти пользователи, хватает ли им ресурсов и тп

В вашей постановке вопроса присутствует один запрос и два плана его выполнения
И отнюдь не факт, что один из них есть абсолютно лучший план


Спасибо!
В общих чертах Вас понил:)
1 дек 11, 14:16    [11689492]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
VitLF
Просто не знаком с параллелизмом!
Какова его роль? Вероятно при нём все мои процессоры (4-ре) работают только на него большую часть времени?
Поток исполнения запроса разделяе запрос на 4-е, создаёт 4 потока и запускает эти 4 запроса (при этом 4 задачи часто борятся за общие ресурсы, синхронизируют локи и т.п.). Потом отдельная задача - свести 4 результата выполнения в один.

Соответственно, сервер полностью загружен + дополнительные накладные расходы.

Т.о., если у вас мало тяжёлых запросов, то распаралеливание полезно, если много средних - то не всегда хорошо (но может быть тоже полезно, потому что быстрое выполнение запроса освобождает заблокированные объекты), если много лёгких - то плохо.
1 дек 11, 15:23    [11690157]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше индексы через DTA или параллелизм?  [new]
VitLF
Member

Откуда:
Сообщений: 339
alexeyvg
VitLF
Просто не знаком с параллелизмом!
Какова его роль? Вероятно при нём все мои процессоры (4-ре) работают только на него большую часть времени?
Поток исполнения запроса разделяе запрос на 4-е, создаёт 4 потока и запускает эти 4 запроса (при этом 4 задачи часто борятся за общие ресурсы, синхронизируют локи и т.п.). Потом отдельная задача - свести 4 результата выполнения в один.

Соответственно, сервер полностью загружен + дополнительные накладные расходы.

Т.о., если у вас мало тяжёлых запросов, то распаралеливание полезно, если много средних - то не всегда хорошо (но может быть тоже полезно, потому что быстрое выполнение запроса освобождает заблокированные объекты), если много лёгких - то плохо.


Спасибо! Понил.
1 дек 11, 16:45    [11690919]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить