Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Antoshes
Зарегистрирован: 17.02.2014 Сообщения: 171 Откуда: Томск
|
Добавлено: Пн Мар 28, 2016 15:05 Заголовок сообщения: OPTION (FAST 25) |
|
|
Добрый день!
Запрос
Select * from hrvw_people_look в студии выполняется 4 с.
Если этот же запрос выполнить в модуле БК, то он виснет на 1 минуту 40 сек.
Трассировка показывает такой запрос
Select * from hrvw_people_look WITH(NOLOCK) OPTION(FAST 25);
Этот же запрос в студии отрабатывает 1 минуту 40 секунд.
Если вместо 25 поставить 1000 то запрос отрабатывает уже 5 секунд.
Вопрос: можно ли отрегулировать значение FAST 25 ? С чем может быть связан обратный эффект ?
Причем такое поведение из всех модулей кроме Расчет Зарплаты |
|
Вернуться к началу |
|
 |
Mikhail
Зарегистрирован: 16.08.2012 Сообщения: 177 Откуда: Москва
|
Добавлено: Пн Мар 28, 2016 16:11 Заголовок сообщения: |
|
|
Antoshes, добрый день.
Запросы:
Select * from hrvw_people_look;
Select * from hrvw_people_look WITH(NOLOCK) OPTION(FAST 25);
имеют разный план выполнения.
Идентичные планы получатся, как ни странно, если применить top 25 для первого:
Select top 25 * from hrvw_people_look;
Select * from hrvw_people_look WITH(NOLOCK) OPTION(FAST 25);
Глубоко не копал, но, по-видимому, план запроса построенный с хинтом FAST не оптимален для выбора всех записей из таблицы.
Вот не проверял, но интересно, при нажатии на песочные часы (зачитать все записи), запрос, формирующий список, также выполняется с хинтом FAST?
Спасибо. |
|
Вернуться к началу |
|
 |
DUCKKK Большой шоколадный орден

Зарегистрирован: 16.09.2009 Сообщения: 1690
|
Добавлено: Пн Мар 28, 2016 16:28 Заголовок сообщения: |
|
|
Причем это совершенно непредсказуемо для разных серверов.
"Можно ли отрегулировать значение FAST 25" - так, чтобы было оптимально всегда и для всех - нет, нельзя. |
|
Вернуться к началу |
|
 |
Antoshes
Зарегистрирован: 17.02.2014 Сообщения: 171 Откуда: Томск
|
Добавлено: Вт Мар 29, 2016 08:17 Заголовок сообщения: |
|
|
Mikhail
Select top 25 * from hrvw_people_look это выбор всего 25 строк.
DUCKKK
В данном случае запрос ведет себя не предсказуемо на одном сервере но на разных модулях. В Расчете зарплаты все очень быстро открывается.
Заметил поведение в модуле Администратор при редактировании записи в списке Доступ к личным сведениям: Пользователи.
Диалог редактирования открывается больше минуты.
Какие решения данной проблемы существуют ? |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Вт Мар 29, 2016 11:38 Заголовок сообщения: |
|
|
Не нужно ссылаться на модуль "Зарплата", там всё немного "хитрее" и работает там совсем другая view в связке с emps |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Вт Мар 29, 2016 11:46 Заголовок сообщения: |
|
|
Попробуйте убрать вызов табличной функции
Create View dbo.hrvw_people_look
As
SELECT
people.pid,
(CASE WHEN people.Num_Tab > '' THEN '(' + people.Num_Tab + ') ' + Card.Full_name ELSE Card.Full_name END) as CName,
people.Num_Tab,
Card.Full_name,
People.id_firm,
people.in_date as d_from,
people.out_date as d_to,
Card.Auto_card,
Structs.Struct_code,
Structs.Struct_Name,
Pr_current.Code_Appoint,
Appointments.Name_appoint,
Pr_current.date_trans,
Pr_current.date_depart,
(CASE WHEN people.out_date > getdate() THEN 239 ELSE 247 END) as color,
SETUP.short_name
, ISNULL(acc.id_rec,0) as id_rec
FROM people
INNER JOIN Pr_current ON people.pid = pr_current.pid
INNER JOIN Appointments ON Pr_current.Code_Appoint = Appointments.Code_Appoint
INNER JOIN Card ON people.Auto_card = Card.Auto_card
INNER JOIN Structs ON pr_current.code_struct_name = Structs.Struct_code
INNER JOIN SETUP ON people.id_firm = SETUP.id_firm
/* разграничение доступа */
LEFT JOIN (select id_rec from adtb_role_acc where name_table = 'Structs' and role_code = user_name()) as acc ON acc.id_rec = Structs.Struct_code
GO |
|
Вернуться к началу |
|
 |
Antoshes
Зарегистрирован: 17.02.2014 Сообщения: 171 Откуда: Томск
|
Добавлено: Вт Мар 29, 2016 11:56 Заголовок сообщения: |
|
|
RVV
поподробнее пожалуйста на счет Расчет Зарплаты ?
Какая другая вьюха там работает ? |
|
Вернуться к началу |
|
 |
OMS
Зарегистрирован: 11.01.2017 Сообщения: 13
|
Добавлено: Ср Апр 26, 2017 17:59 Заголовок сообщения: OPTION (FAST 25) |
|
|
Доброго времени суток!
Подскажите, пожалуйста, существует все-таки возможность, позволяющая менять автоматически подставляющееся значение FAST 25 для выпадающих списков в диалогах?
В моем случае оптимальней было бы подставлять FAST 1. Время выполнения запроса сократилось бы с 20 до 5 секунд. Но при формировании диалога для выпадающих списков движок RP сам формирует текст секции Where и дописывает в конце OPTION (FAST 25). |
|
Вернуться к началу |
|
 |
|