Навижен программа как работать

Оптимизация: Шаг за шагом

Вы администратор Navision. У Вас успешно прошло внедрение системы. Детские болезни успешно преодолены. Можно расслабиться. Проходит некоторое время, и появляются первые сигналы. Сначала не очень тревожные, но с течением времени все более настойчивые и более опасные. Рано или поздно Вы понимаете: надо что-то делать. Пора заняться оптимизацией. Но вопрос: за какую ниточку дергать? Что подправить? Куда вообще смотреть? Открываем просторы интернета и тратим очень много времени на изучение вопросов оптимизации. Даже проводим некоторые опыты, успешные или не очень. Что-то получилось. Проходит еще некоторое время, и опять начинают возникать новые проблемы. И опять нужно изучать вопросы и начинать новый цикл оптимизации. Это, КОГДА-НИБУДЬ закончится? Думаю, нет. Это ветряная мельница оптимизации. Кто-то с ней справляется, а кого-то она перемалывает с косточками.

Почему так сложно? Основная причина в том, что ни одна система не будет похожа на другую. Поэтому большинство советов по оптимизации, которые Вы найдете, являются расплывчатыми и общими. Помогут ли они конкретно в Вашем случае или нет неизвестно, т.к. это напрямую зависит от правильности оценки ситуации Вами или Вашими консультантами.

Оценка ситуации. Начальные условия

В качестве примера взята одна из компаний. ERP NAVISION. В качестве БД используется SQL сервер. Размер БД сотни ГБ. Ведется товарный и финансовый оперативный учет. Ведется учет оптовых и розничных продаж. В месяц добавляется от 1 до 1.8 млн. товарных операций. Количество операций за 4 года 90 млн. Количество записей в справочнике товаров 400 тысяч. В год проводятся операции примерно со 100 тыс. уникальными товарами на 100 складах. Работает большое количество пользователей.

Жалобы. Медленный учет товарных документов. Постоянные блокировки. Медленный ввод строк документов. Долго открываются формы списков документов. Долго просчитываются строки оборотных ведомостей. Долгое выполнение обработок (расчет себестоимости, загрузка продаж магазинов и т.д.). Зависают отчеты или очень долго обрабатываются. Большое количество одновременно запущенных аналитических отчетов вызывают общее замедление работы всей системы.

И вот первый вопрос, который встает перед нами. Что оптимизировать в первую очередь: оперативную работу (ввод документов, учет документов, показ списков и оборотных ведомостей) или аналитическую работу? Сразу замечу, что требование: обеспечить одновременную и эффективную работу в обоих направлениях невозможно реализовать достаточно эффективно. Например: любой отчет, который будет включать в себя анализ неучтённых документов, приведет если не к остановке, то к существенному замедлению работ по вводу новых документов. Создание дополнительных индексов, которые ускоряют работу аналитических отчетов, приводит, в конечном счете, к замедлению ввода данных, причем даже тогда, когда отчеты не запущены. Чем больше индексов — тем хуже обновление и добавление данных. Минусом является рост БД за счет дополнительных индексов. Существенно увеличивается время переиндексации.

Таким образом, появляется первое решение по оптимизации: Необходимо выбрать направление оптимизации: объект или предмет оптимизации. Естественным приоритетом при выборе между аналитической или оперативной работой обладает оперативная работа, т.к. аналитика является следствием качественной и быстрой оперативной работы.

Следствием этого решения является следующее: аналитическая работа должна быть вынесена за пределы оперативной БД.

Конечно, это решение не всегда может быть реализовано на 100% процентов. Всегда будут ситуации, в которых нужно получить самые оперативные аналитические отчеты, даже в ущерб другой работе. Будет еще список VIP пользователей, которым невозможно отказать в возможности запуска аналитических отчетов в оперативной БД. Потому в список ролей добавляется роль «REPORT_RUN», которая разрешает запуск отчетов. Кроме того в список ролей добавляются роли «REPORT XXX» при наличие которых пользователь может запустить аналитический отчет с номером XXX. Все остальные пользователи вынуждены обращаться к аналитической БД для получения отчетов.

Решение о выделении аналитической работы за пределы Navision позволяет Вам подобрать специальную аналитическую систему, которая будет хорошо приспособлена к решению Ваших аналитических задач.

И как следствие: нам необходимо сосредоточится на оптимизации оперативной работы.

Хотя круг вопросов, после выделения аналитической БД, удалось сузить и даже получить временную передышку, нам нужно не терять времени и разбираться с тем, что можно сделать в оперативном учете для ускорения его работы. И тут нужно задуматься: что происходит внутри Navision при выполнении тех или иных задач?

Исследования, поиск причин

В первую очередь необходимо разобраться с теми инструментами, которые у нас есть для получения информации о том, что происходит внутри системы.

Начнем с сервера БД. Первичным инструментом мониторинга является «Системный монитор». Этот инструмент позволяет оценить общее состояние системы в данный момент времени. Я отслеживаю четыре параметра:

Есть несколько моментов, которые нужно учитывать:

— я сторонник чистой системы. Это значит, что один сервер предназначен для решения одной задачи. Очень сложно оценить работоспособность SQL сервера, если на нем параллельно работает почтовый сервер, аналитический сервис и что-то еще. Поэтому предыдущие показатели нужно оценивать только на чистой системе.

— аппаратные средства могут очень сильно отличаться друг от друга. Понаблюдайте за системным монитором в моменты, когда система нагружена слабо и в моменты пиковой загрузки. Тогда Вы начнете понимать, когда в системе идет реальный перегруз и сопоставлять его с теми или иными запросами. Попробуйте запустить запрос расчета остатков на каждом складе для каждого товара и посмотрите на системный монитор. Делайте это в момент покоя после DBCC DROPCLAENBUFFERS. Посмотрите, какой из параметров будет перегружен. Если перегружен процессор, значит нужно увеличивать количество процессоров, система слабая. Если долго читаются данные, значит слабая система I/O. Если при повторении запроса, без DBCC DROPCLAENBUFFERS, падает кэш, значит, не хватает оперативной памяти. Попробуйте так поступить с несколькими сложными, ресурсоемкими запросами. Комбинируйте несколько запросов к разным большим таблицам.

Возможно, Вы примите второе решение по оптимизации: необходим апгрейд аппаратных средств. Однако, всё таки, это еще поспешное решение, т.к. мы еще до конца не разобрались с теми проблемами производительности, которые у нас есть.

Следующий инструмент, который вам понадобиться – это инструмент контроля блокировок. Для этого может вполне подойти Монитор активности в SQL Management Studio. Самое главное при возникновении блокировки разобраться с тем, какой процесс является источником блокировок. Тогда можно обратиться к пользователю и выяснить какую задачу он выполняет, при каких условиях, и заняться оптимизацией этой конкретной задачи. Это сужает поиск причин и позволяет сосредоточить внимание на конкретном процессе.

После того как Вы определили задачу которая является источником проблемы Вам понадобиться следующий инструмент – SQL Server Profiler. Пожалуй, это самый лучший инструмент для понимания процессов, которые происходят в системе. Примерный алгоритм использования:

— За один шаг до запуска тестируемого алгоритма (например, перед запуском формы оборотной ведомости по товару) запускаем трассировку профайлером. При этом не забудьте наложить фильтр в свойствах трассировки на поле LoginName. Логин должен быть тем, под которым запущен Ваш Navision.

— Запускаем тестируемый алгоритм в Navision.

— Если в процессе обработки Navision будет показывать «белый экран» ждем до последнего. Дело в том, что профайлер покажет проблемный запрос только после его завершения. Запрос с худшими показателями будет иметь наибольшее значение в поле Duration.

— Обнаружив проблемный запрос, мы можем увидеть, примерно, следующий вид

— Сам запрос компилируется один раз, при первой необходимости. Ему присваивается номер, который идет первым параметром в sp_execute (в нашем случае 57). Наша задача найти оригинал запроса. Для этого запускаем поиск и ищем слово «declare» или «sp_prepexec» с первой записи трассировки. Должны найти запрос, во второй строке которого должен быть наш искомый номер.

— Запускаем SQL Management Studio и копируем в нее текст запроса, не забывая подставить те параметры, при которых запрос выполнялся долго.

— Строим план выполнения запроса. Начинаем анализ запроса.

Иногда полезно запустить дебагер Navision и пошагово пройтись по какому либо алгоритму просматривая профайлер. Тогда можно наглядно увидеть, как Navision работает с SQL сервером, и разобраться с тем, какой алгоритм лучше использовать в самом Navision.

Анализ и испытания

Итак, у нас есть запрос. Что с ним делать? Необходимо построить план запроса и посмотреть на то, каким образом система будет выполнять этот запрос.

Давайте сначала посмотрим на текст запроса. Это очень характерный для Navision запрос. Цель данного запроса рассчитать shift поля. В списке Select представлены все shift поля, даже если Navision нужно показать значение только одного поля. Такой запрос будет выполняться для каждой строки формы или каждый раз, когда мы будем вызывать функцию calcfields. Сразу замечу, что в новых версиях Navision(2013) способ расчета другой. Там используется индексируемое представление. Способ более грамотный, но все-таки, не самый быстрый.

На что нужно обращать внимание? На то, каким образом система будет производить поиск данных. Есть три варианта:

Первый вариант, как правило, самый медленный, последний самый быстрый. В приведённом рисунке видно, что запрос будет идти по кластерному индексу. Время выполнения запроса 20 секунд. На показ 20 строк понадобиться 6-7минут.

Давайте создадим следующий индекс:

После создания индекса план запроса измениться:

Теперь у нас второй тип поиска — поиск по индексу и фильтрация кластерного ключа. Время выполнения запроса уменьшилось до 3 секунд. Уже хорошо. На показ 20 строк нужна 1 минута.

Давайте поменяем индекс:

После создания индекса план запроса будет такой:

Теперь у нас третий тип поиск – поиск по индексу. Время выполнения запроса около 1 секунды. На показ 20 строк нужно Один комментарий

Количество статей, опубликованных автором: 5. Дополнительная информация об авторе появится вскоре.

Комментарии (Один комментарий)

—Цель данного запроса рассчитать shift поля.—
не shift, а sift (Summary Index Fields Technology)

Источник

Navision — технологии как искусство База знаний Microsoft Dynamics NAV

Другие подрубрики в рубрике «Экспириенс»:

SQL-скрипт для определения размера таблиц

Так как статья про статистику использования индексов (читать здесь) пользуется популярностью, выложу еще один скрипт. Он показывает списком перечень всех таблиц с размерами данных и индексов. Работает на текущей базе. Работает даже на SQL Server 2000. Интересная для анализа вещь: DECLARE @pagesizeKB INT SELECT @pagesizeKB = low / 1024 FROM master.dbo.spt_values WHERE NUMBER = 1 …

Вычисляемое поле обновляется только при срабатывании триггера OnValidate

Краткое изложение проблемы Предположим, у вас на страцице есть вычисляемое поле («вычисляемое» в свойстве SourceExpression), а часть вычисления включает в себя ссылку на еще одно поле. Так вот, вычисляемое поле не обновится автоматически при изменении во втором поле (это, кстати, начиная с третьей версии навижн так работает – прим.перев.). Вычисляемое поле обновится ТОЛЬКО ЕСЛИ по …

Хитрости NAV 2009: поиск по страницам, отчетам и view из ролевого центра (Role Center)

Используя поле «Поиск» (Search) справа от адресной строки, можно найти любой отчет, страницу или Departments view из комплекта поставки. Таким образом сильно экономится время на поиск. Как только вы начнете набирать что-нибудь в форме поиска, выскакивает выпадающий список с названиями отчетов и страниц, подходящими под то, что вы уже ввели. Чем дальше набираете строку, тем …

Хитрости Dynamics NAV 2009: Сохраняем отфильтрованные списки

При работе со списками часто требуется отфильтроваться и дальше работать уже с подмножеством. Например – клиенты из Германии или товары с Голубого склада. После наложения фильтров, их можно сохранить. Это особенно полезно, когда фильтры надо наложить по нескольким полям, и совсем не улыбается делать это каждый раз при открытии формы. А вот способ есть – …

Хитрости NAV 2009: Настройка панели навигации

В навигационную панель можно добавлять/удалять кнопки и списки. Щелкните кнопку Customize в правом верхнем углу Центра Ролей. Нажмите Customize Navigation Pane. в окне «Customize Navigation Pane», нажмите New для создания новой кнопки. Введите имя кнопки, выберите иконку. Нажмите OK. Для размещения кнопки используйте кноки Move Up, Move Down, для переименования – Rename. Для добавления нового …

Хитрости Dynamics NAV 2009: Создаем оповещения из Task Page

В NAV 2009 появился новый функционал – создание оповещения со страниц заданий (например, из карточки клиента или заказа продажи). Их можно использовать как напоминания, или – как способ отправки сообщений другим пользователям Navision в вашей организации. Оповещение отображается в Role Center’е получателя. По щелку на оповещении, у получателя откроется связанный Task Page. Для создания оповещения, …

Хитрости Navision 2009: Меняем фильтр по умолчанию в полях ввода

В интерфейсе Navision есть т.н. «поля ввода» — например, Клиент Номер, Код Склада, Адрес. Как только вы начинаете заколачивать туда значение, выпадет список с возможными вариантами значений на основании уже введенных вами букв. Обычно, Microsoft Dynamics NAV устанавливает в такие поля фильтр по умолчанию – для цифровых полей (например, Клиент Но.) и текстовых (например, для …

Как создать MatrixBox в Navision

Пример 1. Клиенты и товары Первая форма (Form 50000) покажет нам, как создать MatrixBox с нуля (матрица покажет объемы проданных товаров (и каких именно) по клиентам за определенный период. Шаги по созданию матрицы описаны и в этой заметке, и в самой форме в секции Documentation. Просмотр/редактирование 2-мерного массива Вторая форма (50001) – пример использования матрицы …

Создание отчетов в Navision на базе временной таблицы

Обычно, когда вы создаете отчет, он работает на базе одной или нескольких таблиц. А иногда у вас есть временная табличка (например, какая-нибудь сортировка или группировка) – и надо вывести эти данные в отчет. Проблема состоит в том, что временную табличку нельзя прямо указать как источник данных в DataItem’е отчета. Ему нужны только т.н. «реальные» таблицы …

Как ввести путь к файлу на Request форме для датапорта Navision

При создании датапорта с помощью мастера, на request-форме располагаются два контрола – FileName (строка) и Direction (option). В режиме дизайна эта форма – пустая, т.е. эти два контрола добавляются Navision’ом уже во время выполнения. Если на форму добавить контролов, вы потеряете возможность указать путь к файлу для датапорта. Шаги по добавления контрола, содержащего путь к …

Навижн в цыфрах

Все из области Microsoft Dynamics NAV, что можно выразить в числах. Для чего это нужно? А вот попробуйте догадайтесь сами :-)

Как вычислить размер места, используемого БД Navision

Как мы все знаем, у базы Navision есть два главных параметра — это 1) размер и 2) используемая площадь, т.е. место. Встречаются такие жизненные ситуации, в которых необходимо иметь предупреждение о том, что используемое место вплотную приближается к размеру самой базы. Например, становится практически невозможно выполнить какие-нибудь пакетные операции, связанные с движением больших объемов данных, …

Как определить тип и имя текущего сервера Navision

Данная статья — вольный перевод «How To» Люка Ван Дика. Еще один способ определения имени сервера описан в моей статье «Работа с MS SQL Server из Navision» Начиная с Navision Attain 3.01, в C/AL доступна функция CONTEXTURL. Она возвращает строку, т.н. context string, определяющую текущее нахождение пользователя в системе — ну то есть какой объект …

Работа с диалогами

Одно из железных правил проектирования интерфейсов – пользователь не должен чувствовать себя покинутым. Он может нажать кнопку, подождать 5 секунд (максимум!), но если не видит реакцию системы – начинается паника. Для этих случаев в Navision есть диалоги, спец.окошки для вывода текущего состояния системы. В них можно выводить счетчики, проценты, прогресс-бары – все, что угодно. Есть одно НО. Dialog.UPDATE работает очень медленно …

Навешиваем ярлыки – грамотно!

Многие пользователи для создания ярлыка на рабочий стол производят такую операцию в Navision: Файл – Отправить – Создать ярлык (на рабочий стол). Но не все знают, что клиент Navision можно запускать через командную строку, передавая необходимые параметры через запятую. Хотя в доках Navision этот способ хорошо описан, да кто их читает :-) Я делаю просто. После установки клиента на рабочую станцию создаю ярлык (иногда просто …

Обжигающие кнопки Navision :-)

Здесь собраны все известные горячие клавиши Microsoft Dynamics NAV (Navision Attain). Для пользователя Кнопка Назначение F1 Контекстная справка. Топик в справке зависит от того, где находится курсор :-) Если курсор стоит в поле формы, то справка по полю, если на пункте главного меню – про содержание пункта. Alt + F1 Вызов формы «Обзор F-клавиш». Крайне полезная вещь! Ctrl + F1 Вызов …

Олимпиадная задачка – пересечение в NAV

«Мне нужно вывести на экран не все записи. Причем просто фильтрами не обойдешься. Менеджер видит свои сделки + все сделки, подчиненных где он босс. Грубо говоря, юзер должен видеть все сделки, в которых он фигурирует как менеджер + если ты начальник, то должен видеть все сделки подчиненных менеджеров и менеджеров нижестоящих депратаментов. Департаменты могут быть …

Глоссарий Navision (основные термины и т.п.)

В этом разделе собраны основные понятия, термины, слова из области Microsoft Dynamics NAV (Navision Attain). Пока раздел крошечный, но будет постоянно пополняться :-) FIN.ZUP Спец.файл, где хранятся пользовательские настройки: визуальные – количество, порядок, ширина столбцов в формах; программные (значения переменных формы, если свойство SaveValues = Да); параметры доступа к базе (кроме пароля :-) Recent Companies (список в меню «Файл») и прочая… Файл хранится в папке …

Как обмануть NAV (подменяем источник данных в форме)

Пускай у нас есть некая функция, которая возвращает временную таблицу (например, таблица Customer) с результатом. Мы хотим отразить ее в форме. Самый простой способ это сделать знают все: FORM.RUN(FORM::»Customer List», recTmpCustomer); Но есть и другой способ сделать это — подменить в форме триггеры OnNextRecord, OnFindRecord следующим образом: OnFindRecord= VAR blnFound : Boolean; BEGIN recTmpCustomer:=Rec; recTmpCustomer.COPY(Rec); …

Оформление кода в Navision: венгерская нотация и проч.

Hастоящий программист никогда не ставит комментариев. То, что писалось с трудом, должно пониматься с трудом. У Navision есть свои, официально принятые стандарты написания и оформления кода, однако я хочу поделиться небольшими дополнениями на сей счет. Связаны они с улучшением читаемости кода и помогают отделить стандартный функционал от доработок. Использование венгерской нотации Все, кто хотя был несколько месяцев занимался разработкой (не обязательно Navision) приходят …

Источник

Обзор информационной системы MICROSOFT DYNAMICS NAVISION 4.0

Основные функциональные возможности

Microsoft Navision представляет собой достаточно универсальную интегрированную комплексную систему управления предприятием, объединяющую возможности финансового управления, анализа состояния бизнеса, управления производством, дистрибуцией и электронной коммерцией, а также управления взаимоотношениями с клиентами.

Гибкость Microsoft Navision позволяет адаптировать систему к индивидуальной специфике работы, благодаря чему пользователи могут сфокусироваться на ключевых для бизнеса задачах и обязанностях. В результате появляются возможности повышения эффективность функционирования компании за счет правильной и оперативной реакции на изменения рынка.

Управление финансами

Финансовый контур Microsoft Navision является центром системы. Предоставляя пользователям оперативную, полную и достоверную информацию о финансовом состоянии компании, он позволяет анализировать слабые и сильные стороны предприятия и оперативно принимать решения. Финансовый контур системы Microsoft Navision полностью интегрирован с функциональностью управления складом и производством, а также с блоками расчетов с клиентами и поставщиками, учета основных средств, заработной платы. Такая интеграция позволяет автоматически в режиме реального времени отражать на финансовых счетах главной книги себестоимость товаров, произведенной продукции и оказанных услуг, разнообразные скидки, издержки, накладные расходы, начисление НДС и прочую информацию.

Кадровый учет и управление персоналом

Модуль «Персонал и Зарплата» системы Microsoft Navision обеспечивает гибкий инструментарий и функциональные средства, необходимые для организации и контроля кадровой политики компании. Он учитывает все требования действующего российского законодательства в области управления персоналом, расчета заработной платы и персонифицированного учета сотрудников. Возможности системы позволяют легко настраивать модуль на специфику конкретного предприятия и вносить в него изменения в соответствии с нововведениями законодательства. Таким образом, пользователи данного решения всегда будут работать с актуальной и объективной информацией.

Основные функции модуля:

Управление цепочками поставок

Основные характеристики модуля:

Управление отношениями с клиентами

Основные характеристики модуля:

Технологическая структура

Решение Microsoft Navision содержит пять основных преимуществ, подкрепленных соответствующими технологическими составляющими:

Адаптируемость

Эффективность

Надежность

Решение Microsoft Navision обеспечивает надежные механизмы хранения информации пользователей за счет использования встроенного сервера базы данных или Microsoft SQL Server.

Открытость

Открытость решения Microsoft Navision определяется такими технологическими компонентами, как Navision Application Server, C/ODBC (система коммуникаций «клиент-сервер») и C/FRONT. Эти компоненты помогают компаниям обмениваться информацией с партнерами, клиентами и филиалами, обеспечивая интеграцию Microsoft Navision c другими приложениями и программами, а также открывая данное решение для электронной торговли.

Сотрудничество

Решение Microsoft Navision облегчает процесс общения с деловыми партнерами, клиентами и поставщиками компании. Для обмена информацией применяются интернет- и XML-технологии, что значительно сокращает операционные издержки и позволяет экономить время. В результате достигается более тесное сотрудничество и повышается эффективность процессов как внутри организации, так и за ее пределами.

Источник

Microsoft Dynamics NAV — что это за программа?

Microsoft уже давно работают над программным обеспечением и его интеграцией с бизнес предприятиями. Одним из таких решений является программа Navision. Что это такое и какие возможности она представляет я оговорю в рамках этой статьи.

Что это за программа?

Microsoft Dynamics NAV (Navision) — это решение для управления предприятием малого и среднего размера. Программа включает в себя набор инструментов и систем управления предприятия, позволяющие управлять своими финансами, а также упростить логистическую цепочку, производственные и рабочие процессы. Программа входит в набор инструментов Microsoft Dynamics (ERP), который позволит участвовать и управлять всеми направлениями бизнес-процесса.

Состав решения

Данная программа позволяет работать с такими направлениями:

Функции

С помощью Microsoft Dynamics NAV вы сможете управлять:

Более детально со всеми аспектами программы можно ознакомится в функциональной карте Microsoft Dynamics NAV.

По всем бизнес-вопросам, касательно данного продукта вы можете написать в чат или позвонить по телефону +7 499 926 99 00.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • навигация по файловой системе linux
  • навигация по папкам в командной строке linux
  • Навигация на авто для слежения программа
  • навигация для виндовс се
  • навигация для windows mobile

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии