AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.06.2011, 11:18   #1  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Thumbs up
Находясь в Оборотной Ведомости Клиента ("Клиент Фин. Оборот. Ведомость") и проваливаясь по Drill-Down (поля Дебет, Кредит, Сальдо) в "Фин. Книгу Операций", получаем такие жуткие "тормоза", что терпение пользователей порой заканчивается... но это происходит не всегда: у кого-то чаще, у кого-то реже.
На SQL-сервере назначены и выполняются задания по Обновлению статистики, Перестроение индексов...
Подскажите, пожалуйста, как бороться с данной проблемой? Что может улучшить нашу ситуацию?
Буду благодарен за любые советы, т.к. не хотелось бы в определённый момент времени получить коллапс в системе

С уважением, Владислав.
Старый 28.06.2011, 11:56   #2  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Ну тут много всего может быть...

Есть ли тяжелые вычисляемые поля на списке операций? Какой период открывается с тормозмами (может с начала времен)?
Старый 28.06.2011, 14:34   #3  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
В том-то и дело, что строю, допустим, за месяц по счёту 62-100, зависание на 10-15 секунд, потом на экране две операции...
Старый 28.06.2011, 14:34   #4  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
период - январь 2011
Старый 28.06.2011, 14:37   #5  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
увеличение периода на 1 год, т.е. с 01.01.10 по 31.01.11 ничего координально не изменило...
Старый 28.06.2011, 14:41   #6  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
также пользователи говорят о том, что в "оборотке", при "проваливании" в операции, часты случаи зависания Navision, поэтому они его закрывают принудительно что делать???
Старый 28.06.2011, 16:04   #7  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
а в формочке "Фин. книга операций", которая открывается по дрилл-дауну, в коде, на OnAfterGetRecord, ничего лишнего-тяжелого не навешано?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 29.06.2011, 14:47   #8  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Дуд Посмотреть сообщение
а в формочке "Фин. книга операций", которая открывается по дрилл-дауну, в коде, на OnAfterGetRecord, ничего лишнего-тяжелого не навешано?
Нет, там только простенькая функция, выводящая в поля формы наши внутренние номера учтенных документов: Сч.фактуры и Накладной
Старый 29.06.2011, 20:04   #9  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Цитата:
Сообщение от Гонков Владислав Посмотреть сообщение
Нет, там только простенькая функция, выводящая в поля формы наши внутренние номера учтенных документов: Сч.фактуры и Накладной
Код функции в студию, пожалуйста.

А создание нового ключа вряд ли поможет.
Когда открывается форма с операциями - какой ключ используется?
Старый 28.06.2011, 17:31   #10  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Короче, что б не гадать. Есть старый добрый метод: запустите Выполнение Кода, и посмотрите, что ест больше всего времени
Старый 29.06.2011, 08:43   #11  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Сегодня буду пробовать...
Старый 29.06.2011, 14:51   #12  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
у таблицы GL Entry хочу создать ключ: Posting Date,G/L Account No.,Source No.
Также хочу для своего нового ключа заполнить поле SumIndexFields: Amount,Debit Amount,Credit Amount,Additional-Currency Amount,Add.-Currency Debit Amount,Add.-Currency Credit Amount
Потом на сервере запущу мененджмент студио и в ней для GL Entry создам новую статистику, используя поля созданного ключа в той же последовательности
Может сработать/помочь???
Старый 29.06.2011, 15:35   #13  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Что дало Выполнение Кода?
Старый 29.06.2011, 23:05   #14  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
Старый 30.06.2011, 10:06   #15  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Sancho Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
запустил, выполнил, стараюсь разобраться...
Старый 30.06.2011, 10:21   #16  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Sancho Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
помеченный цветом код - тот, который был выполнен, т.е. 100% отработал?
Старый 30.06.2011, 10:35   #17  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Гонков Владислав Посмотреть сообщение
Цитата:
Сообщение от Sancho Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
помеченный цветом код - тот, который был выполнен, т.е. 100% отработал?
видимо, красным цветом помечен код, который не был выполнен...
Старый 30.06.2011, 17:39   #18  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от Гонков Владислав Посмотреть сообщение
видимо, красным цветом помечен код, который не был выполнен...
хм..
анализируем, прежде всего, на предмет времени старта той или иной строчки.
цвет не важен.
если строка 85 запустилась на 20 секунд позже строки 84, то в 84-й строке какая-то фигня, которая выполняется 20 секунд.
если на форме 30 строчек, то эти 20 секунд * 30 строчек и вот ваши ожидания открытия формочки.
Старый 29.06.2011, 16:48   #19  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
Нет, там только простенькая функция, выводящая в поля формы наши внутренние номера учтенных документов: Сч.фактуры и Накладной
точно простенькая?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 30.06.2011, 10:04   #20  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
при открытии form 20 выполняется следующий код:

Form - OnOpenForm()
IF RunOnTempRec THEN
RESET;

Form - OnFindRecord(Which : Text[1024]) : Boolean
IF RunOnTempRec THEN BEGIN
TempGLEntry.COPY(Rec);
Found := TempGLEntry.FIND(Which);
IF Found THEN
Rec := TempGLEntry;
EXIT(Found);
END ELSE
EXIT(FIND(Which));

Form - OnNextRecord(Steps : Integer) : Integer
IF RunOnTempRec THEN BEGIN
TempGLEntry.COPY(Rec);
ResultSteps := TempGLEntry.NEXT(Steps);
IF ResultSteps <> 0 THEN
Rec := TempGLEntry;
EXIT(ResultSteps);
END ELSE
EXIT(NEXT(Steps));

Form - OnAfterGetRecord()
fn_LegCompNo; // $94 >>

Form - OnAfterGetCurrRecord()
// RA20 >>
fn_ViewTotals;
// RA20 <<


fn_ViewTotals()
// RA20
IF RunOnTempRec THEN
CurrForm.TotalAmount.VISIBLE := g_cduOtherFunctions.fn_ViewTotalGLEntryAmount(TempGLEntry)
ELSE
CurrForm.TotalAmount.VISIBLE := g_cduOtherFunctions.fn_ViewTotalGLEntryAmount(Rec);
CurrForm.TotalDebitAmount.VISIBLE := CurrForm.TotalAmount.VISIBLE;
CurrForm.TotalCreditAmount.VISIBLE := CurrForm.TotalAmount.VISIBLE;

fn_LegCompNo()
// $94 >>
IF "Document Type" = "Document Type"::Invoice THEN BEGIN
//fn_LegCompNo
l_SalesInvoiceHeader.SETRANGE("No.", "Document No.");
IF l_SalesInvoiceHeader.FIND('-') THEN BEGIN
"Leg. Comp. Posting No." := l_SalesInvoiceHeader."Leg. Comp. Posting No.";
l_SalesShptHeader.SETCURRENTKEY("Order No.");
l_SalesShptHeader.SETRANGE("Order No.", l_SalesInvoiceHeader."Order No.");
IF l_SalesShptHeader.FIND('-') THEN
"Leg. Comp. Shipping No." := l_SalesShptHeader."Leg. Comp. Shipping No."
ELSE
CLEAR("Leg. Comp. Shipping No.");
END ELSE BEGIN
CLEAR("Leg. Comp. Posting No.");
CLEAR("Leg. Comp. Shipping No.")
END
END ELSE BEGIN
CLEAR("Leg. Comp. Posting No.");
CLEAR("Leg. Comp. Shipping No.")
END
// $94 <<

, но до запуска form 20 выполняется следующая функция, которая и открывает эту форму; она запускается с определённым параметром на соответствующем дрилдауне субформы Оборотной ведомости (form 12406):

DrillDownGLEntry(Show : 'StartBalance,Debit,Credit,EndBalance,NetChange')
GLEntry.RESET;
// $45 >>
//GLEntry.SETCURRENTKEY("Source Type","Source No.","G/L Account No.","Global Dimension 1 Code","Global Dimension 2 Code");
GLEntry.SETCURRENTKEY("Source Type","Source No.","G/L Account No.","Global Dimension 1 Code","Global Dimension 2 Code",
"Business Unit Code","Posting Date");
// $45 <<
GLEntry.SETRANGE("Source Type",GLEntry."Source Type"::Customer);
GLEntry.SETRANGE("Source No.","No.");
GLEntry.SETFILTER("G/L Account No.",GETFILTER("G/L Account Filter"));
GLEntry.SETFILTER("Global Dimension 1 Code",GETFILTER("Global Dimension 1 Filter"));
GLEntry.SETFILTER("Global Dimension 2 Code",GETFILTER("Global Dimension 2 Filter"));
GLEntry.SETFILTER("Posting Date",GETFILTER("Date Filter"));

CASE Show OF
Show::StartBalance:
IF COPYSTR(GETFILTER("Date Filter"),1,2) <> '..' THEN BEGIN
IF GETRANGEMIN("Date Filter") <> 0D THEN
GLEntry.SETRANGE("Posting Date",0D,GETRANGEMIN("Date Filter") - 1);
END ELSE
EXIT;
Show:ebit: GLEntry.SETFILTER("Debit Amount",'<>%1',0);
Show::Credit: GLEntry.SETFILTER("Credit Amount",'<>%1',0);
Show::EndBalance:
IF GETRANGEMAX("Date Filter") <> 0D THEN

// RA26 MBS ERROR >>
// GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter") - 1)
GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter"))
// RA26 MBS ERROR <<

ELSE
EXIT;
Show::NetChange: GLEntry.SETFILTER(Amount,'<>%1',0);
ELSE
ERROR('');
END;
//GLEntry.SETCURRENTKEY("Posting Date"); // $45
FORM.RUN(0,GLEntry);
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:18.