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, ничего лишнего-тяжелого не навешано?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 28.06.2011, 17:31   #8  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Короче, что б не гадать. Есть старый добрый метод: запустите Выполнение Кода, и посмотрите, что ест больше всего времени
Старый 29.06.2011, 08:43   #9  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Сегодня буду пробовать...
Старый 29.06.2011, 14:47   #10  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Дуд Посмотреть сообщение
а в формочке "Фин. книга операций", которая открывается по дрилл-дауну, в коде, на OnAfterGetRecord, ничего лишнего-тяжелого не навешано?
Нет, там только простенькая функция, выводящая в поля формы наши внутренние номера учтенных документов: Сч.фактуры и Накладной
Старый 29.06.2011, 14:51   #11  
Гонков Владислав 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   #12  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Что дало Выполнение Кода?
Старый 29.06.2011, 16:48   #13  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
Нет, там только простенькая функция, выводящая в поля формы наши внутренние номера учтенных документов: Сч.фактуры и Накладной
точно простенькая?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 29.06.2011, 20:04   #14  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Цитата:
Сообщение от Гонков Владислав Посмотреть сообщение
Нет, там только простенькая функция, выводящая в поля формы наши внутренние номера учтенных документов: Сч.фактуры и Накладной
Код функции в студию, пожалуйста.

А создание нового ключа вряд ли поможет.
Когда открывается форма с операциями - какой ключ используется?
Старый 29.06.2011, 23:05   #15  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
Старый 30.06.2011, 10:04   #16  
Гонков Владислав 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);
Старый 30.06.2011, 10:06   #17  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Sancho Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
запустил, выполнил, стараюсь разобраться...
Старый 30.06.2011, 10:11   #18  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
ERROR('') - моветон
Старый 30.06.2011, 10:19   #19  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Sancho Посмотреть сообщение
ERROR('') - моветон
Это было написано до меня... зачем именно так, не знаю...
Старый 30.06.2011, 10:21   #20  
Гонков Владислав is offline
Гонков Владислав
Участник
Аватар для Гонков Владислав
 
35 / 10 (1) +
Регистрация: 17.09.2008
Цитата:
Сообщение от Sancho Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Что дало Выполнение Кода?
+1
автор! Сервис - Монитор клиента - Старт!
формочку - запустить!
Монитор клиента - стоп!
и зырим, зырим, анализируем...
помеченный цветом код - тот, который был выполнен, т.е. 100% отработал?
 


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

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

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