Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Чт Фев 09, 2017 17:08 Заголовок сообщения: Оптимизация запроса списка |
|
|
Всем привет.
Замечено, что если при создании списка в секции SQL указан запрос с использованием нескольких таблиц (обычно 5 и более), то в некоторых случаях такой список может открываться очень долго или в крайних случаях не открыться вовсе. Тот же запрос в Management Studio может выполняться за приемлемое время (1-2 сек).
Обычно эта проблема решается созданием view для этого запроса и использованием этой view в списке. Но сейчас столкнулся с тем, что такой способ не работает.
Подскажите, пожалуйста, какие ещё приемы оптимизации можно использовать подобных случаях с точки зрения создания списков (не плана запроса, а именно списков) ?
Спасибо. |
|
Вернуться к началу |
|
 |
GIN
Зарегистрирован: 04.03.2010 Сообщения: 114
|
Добавлено: Чт Фев 09, 2017 19:05 Заголовок сообщения: |
|
|
Общий один подзапрос можно попробовать, желательно без секции WHERE и каких то переменных.
Интересно, что это у Вас за такие мега-запросы, что они даже не где не работают... а они вообще исполняются?
Давайте задачу, более развернуто. _________________ Что бы увидеть свет в конце туннеля, нужно все время копать... |
|
Вернуться к началу |
|
 |
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Чт Фев 09, 2017 21:21 Заголовок сообщения: |
|
|
Запросы как раз не сложные и в Management Studio или в отчетах Reporting Server работают без проблем, но проблемы возникают если тот же запрос выполнить в среде БК, например, использоваться его в списке.
Добавлю подробностей:
Если при открытии такого списка подсмотреть в Profiler текст выполняемой сервером инструкции (exec sp_executesql ("select ...") и выполнить её в Management Studio, то результат будет получен одинаково быстро.
Ранее пробовал применять разные хинты к таблицам, соединениям и запросам чтобы как-то повлиять на работу списка - положительных результатов это не дало, да и далеко не весь синтаксис в случае с хинтами поддерживается в списках. Использование плангайда тоже не помогло.
Замечу, эта проблема возникает далеко не с каждым запросом и вообще такие случаи единичные и всегда их удавалось решить созданием view, содержащим тот же самый запрос, до сегодняшнего случая.
GIN, на счет исключения секции where - мне не совсем понятно, вы предлагаете заменить её используя секцию Ограничение или вовсе обойтись без предикатов? |
|
Вернуться к началу |
|
 |
Antoshes
Зарегистрирован: 17.02.2014 Сообщения: 171 Откуда: Томск
|
Добавлено: Пт Фев 10, 2017 09:20 Заголовок сообщения: |
|
|
Mikhail
таблицы базовые ?
Выложите сам запрос |
|
Вернуться к началу |
|
 |
Antoshes
Зарегистрирован: 17.02.2014 Сообщения: 171 Откуда: Томск
|
|
Вернуться к началу |
|
 |
Nemoxur
Зарегистрирован: 30.04.2010 Сообщения: 49
|
Добавлено: Пт Фев 10, 2017 10:40 Заголовок сообщения: |
|
|
Постройте покрывающий индекс по необходимым полям и обновите статистику. |
|
Вернуться к началу |
|
 |
Volod Большой шоколадный орден

Зарегистрирован: 11.02.2015 Сообщения: 252
|
Добавлено: Пт Фев 10, 2017 10:44 Заголовок сообщения: |
|
|
Mikhail писал(а): | Всем привет.
Замечено, что если при создании списка в секции SQL указан запрос с использованием нескольких таблиц (обычно 5 и более), то в некоторых случаях такой список может открываться очень долго или в крайних случаях не открыться вовсе. Тот же запрос в Management Studio может выполняться за приемлемое время (1-2 сек).
|
В настройках списка в RPDesigner
в свойствах списка в разделе опции списка есть параметры
обрабатывать ограничения на рабочей станции
обрабатывать ограничения на сервере.
что у Вас там?
Последний раз редактировалось: Volod (Пт Фев 10, 2017 16:05), всего редактировалось 1 раз |
|
Вернуться к началу |
|
 |
GIN
Зарегистрирован: 04.03.2010 Сообщения: 114
|
Добавлено: Пт Фев 10, 2017 12:20 Заголовок сообщения: |
|
|
я имел в виду, что желательно вообще без этой секции...
попробуйте пересобрать статистику.
Volod ещё верно советует - смотрите "свойства", если список или отчет с запросом с диалога запускается. _________________ Что бы увидеть свет в конце туннеля, нужно все время копать... |
|
Вернуться к началу |
|
 |
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Пт Фев 10, 2017 15:04 Заголовок сообщения: |
|
|
Коллеги, спасибо за идеи.
На выходных в свободное время буду эксперементировать и сообщу о результатах. |
|
Вернуться к началу |
|
 |
|