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

Откуда:
Сообщений: 733
Народ,
Не могу понять одну вещь,
есть процедура на сервере которая возвращает набор данных клиенткому приложению.
Если эту процедуру запускать на компютере клиента из остнастки SQL Query Analyser (SQL 2000) он выполняется мгновенно и возвращает результирующий набор из 20 ти записей.
Но если эту же процедуру вызывать из клиентского приложения
= SQLEXEC(gnConnHandle, [EXEC MainReport , ?StDate, ?endDate'], (.SQL_Orders))
и если период примерно 1 месяц то напрочь все зависает ....
Грешил на формат даты, препробовал и так и сяк
'2017-11-01 07:00:00.000', '01112017'....
В чем может быть проблема?
Всем спасибо за любую мысль.
9 дек 17, 02:54    [21020017]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Valerii
Member

Откуда:
Сообщений: 733
Valerii
Народ,
Не могу понять одну вещь,
есть процедура на сервере которая возвращает набор данных клиенткому приложению.
Если эту процедуру запускать на компютере клиента из остнастки SQL Query Analyser (SQL 2000) он выполняется мгновенно и возвращает результирующий набор из 20 ти записей.
Но если эту же процедуру вызывать из клиентского приложения
= SQLEXEC(gnConnHandle, [EXEC MainReport , ?StDate, ?endDate'], (.SQL_Orders))
и если период примерно 1 месяц то напрочь все зависает ....
Грешил на формат даты, препробовал и так и сяк
'2017-11-01 07:00:00.000', '01112017'....
В чем может быть проблема?
Всем спасибо за любую мысль.


Что еще заметил:
Включил Profiler:
Если смотреть запрос идущий с клиента:
CPU 51750, READS 929761
Если смотреть запрос идущий с SQL Query Analyser:
CPU 500, READS 118233

То есть видно что если запрос идет из клиентского приложения CPU кто-то очень сильно начинает грузить.
9 дек 17, 03:17    [21020044]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Добрый Э - Эх
Guest
Valerii,

Планы запросов в обоих случаях сравни.....
Константы в фильтрах запроса против переменных —> оптимизатор по разному оценивает мощности выборок —> оптимизатор строит разные планы —> изменяется скорость выполнения запроса.
9 дек 17, 05:52    [21020081]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
aleks222
Guest
Valerii
В чем может быть проблема?
Всем спасибо за любую мысль.


1. Тупая и незатейливая мысль. dbcc USEROPTIONS различаются для подключения клиента и QA. Сделаешь одинаковыми - все будет одинаково.
2. Менее тупая мысль. Запрос переписать, шоб у оптимизатора выбора не было.
9 дек 17, 14:11    [21020556]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Valerii
Member

Откуда:
Сообщений: 733
Добрый Э - Эх
Valerii,

Планы запросов в обоих случаях сравни.....
Константы в фильтрах запроса против переменных —> оптимизатор по разному оценивает мощности выборок —> оптимизатор строит разные планы —> изменяется скорость выполнения запроса.


Прости наверное за глупый вопрос но Как можно сравнить план запроса из клиента?
11 дек 17, 16:42    [21024687]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
aleks222
Guest
Valerii
Добрый Э - Эх
Valerii,

Планы запросов в обоих случаях сравни.....
Константы в фильтрах запроса против переменных —> оптимизатор по разному оценивает мощности выборок —> оптимизатор строит разные планы —> изменяется скорость выполнения запроса.


Прости наверное за глупый вопрос но Как можно сравнить план запроса из клиента?


1. А чо их сравнивать? И так ясно - разные.
2. Но профайлер может все.
11 дек 17, 16:47    [21024708]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Valerii
Member

Откуда:
Сообщений: 733
aleks222
Valerii
В чем может быть проблема?
Всем спасибо за любую мысль.


1. Тупая и незатейливая мысль. dbcc USEROPTIONS различаются для подключения клиента и QA. Сделаешь одинаковыми - все будет одинаково.
2. Менее тупая мысль. Запрос переписать, шоб у оптимизатора выбора не было.

Так уже 4 раза переписывал, он не сложный но закрученный черезчур
11 дек 17, 17:21    [21024825]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Вот туту ответ на ваш вапрос , тем называеться - Медленно с клиента быстро с приложения, вообще старо как мир
12 дек 17, 10:22    [21026044]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
KnyazewSergey
Member

Откуда:
Сообщений: 96
Valerii
В чем может быть проблема?
Всем спасибо за любую мысль.


Совсем прям вчера была такая же проблема. Не в той последовательности были соединены таблички, не оптимально. Была разная скорость (в разы) выполнения ХП и просто запроса, что в ХП. Пересоединил по-другому и всё стало ОК. Видимо оптимизатор внутри ХП не так как-то оптимизирует.
12 дек 17, 10:45    [21026157]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
KnyazewSergey
Valerii
В чем может быть проблема?
Всем спасибо за любую мысль.


Совсем прям вчера была такая же проблема. Не в той последовательности были соединены таблички, не оптимально. Была разная скорость (в разы) выполнения ХП и просто запроса, что в ХП. Пересоединил по-другому и всё стало ОК. Видимо оптимизатор внутри ХП не так как-то оптимизирует.

Видимо вы просто переподняли процедуру. Ссылку вам дали - думайте. Ну и порядок соединения можно только хинтом прибить, иначе оптимизатор переставит
12 дек 17, 10:48    [21026170]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
KnyazewSergey
Member

Откуда:
Сообщений: 96
TaPaK
Видимо вы просто переподняли процедуру. Ссылку вам дали - думайте. Ну и порядок соединения можно только хинтом прибить, иначе оптимизатор переставит

Не знаю, что такое с ней, но процедуру пересоздавал, переименовывал, на другом серваке запускал.
Тупо exec sp_.... делался оооочень долго, а сам запрос из ХП отдельно пролетал за 1 сек. Вобщем может и буря магнитная, но если сейчас меняю назад порядок соединения, то процедура опять тупит, а отдельно запрос при любом порядке шустро летает.
12 дек 17, 11:00    [21026216]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
KnyazewSergey
TaPaK
Видимо вы просто переподняли процедуру. Ссылку вам дали - думайте. Ну и порядок соединения можно только хинтом прибить, иначе оптимизатор переставит

Не знаю, что такое с ней, но процедуру пересоздавал, переименовывал, на другом серваке запускал.
Тупо exec sp_.... делался оооочень долго, а сам запрос из ХП отдельно пролетал за 1 сек. Вобщем может и буря магнитная, но если сейчас меняю назад порядок соединения, то процедура опять тупит, а отдельно запрос при любом порядке шустро летает.

Т.е. вы хотите что бы я вам статью в слух прочитал?
12 дек 17, 11:04    [21026236]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
KnyazewSergey
Member

Откуда:
Сообщений: 96
TaPaK
Т.е. вы хотите что бы я вам статью в слух прочитал?


Я не ТС, мне пох. У меня всё хорошо.
12 дек 17, 11:12    [21026270]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
KnyazewSergey
TaPaK
Т.е. вы хотите что бы я вам статью в слух прочитал?


Я не ТС, мне пох. У меня всё хорошо.

у людей которые пишут
автор
exec sp_.... делался оооочень долго, а сам запрос из ХП отдельно пролетал за 1 сек

ну может быть что-то хорошо
12 дек 17, 11:14    [21026275]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
KnyazewSergey
Member

Откуда:
Сообщений: 96
TaPaK
ну может быть что-то хорошо

ну может
12 дек 17, 11:15    [21026287]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Valerii
Member

Откуда:
Сообщений: 733
Maxx
Вот туту ответ на ваш вапрос , тем называеться - Медленно с клиента быстро с приложения, вообще старо как мир

ссылка битая ...
12 дек 17, 11:45    [21026458]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Valerii,

оригинал http://www.sommarskog.se/query-plan-mysteries.html (+ он дополнен по сравнению с переводом)
ссылка на перевод в шапке
12 дек 17, 11:49    [21026482]     Ответить | Цитировать Сообщить модератору
 Re: Время выполнения запроса  [new]
Valerii
Member

Откуда:
Сообщений: 733
TaPaK,

Спасибо! Почитал, внятно, доходчиво.
Но, обнаружил что исчезли все индексы с основных таблиц по которым идет выборка. Из-за чего - пока не выяснил. Что могло их удалить, пока не понял.
Восстановил индексы и второй день наблюдаю. Все летает.
Тем не менее еще раз спасибо.
15 дек 17, 10:39    [21036016]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить