- Общая информация о предприятии. Название. Сфера деятельности. Базовые показатели: численность персонала, объемы выпуска, количество единиц машино-тракторного парка и т.п. Где находится. Как добраться. (Только для первой презентации).
- Уровень автоматизации предприятия. История взаимоотношений (для наших клиентов). Установленное ПО. Ответственные лица. Базовые параметры: количество компьютеров, наличие сети, конфигурация сервера и т.п.
- Действующее соглашение с клиентом. Условия подписанного договора. Сроки.
- Информация об автоматизируемом участке. Описание технологического процесса. Участники технологического процесса.
- Текущая организация документоооборота и информационных потоков на автоматизируемом участке. Участники, с подробным описанием роли и выполняемых операций каждого.
- Реализуемая организация документооборота и информационных потоков. Участники, с подробным описанием роли и выполняемых операций каждого. Подробное, пошаговое описание действий при ежедневной эксплуатации, закрытии периода и построении отчетных форм.
- Информация по проекту. Какие базовые настройки будут использованы. Какие настройки будут разработаны специально для клиента. Структуры данных. Документы. Алгоритмы. Типовые хозяйственные операции. Корреспонденция счетов. Взаимодействие и обмен данными со сторонним ПО. Сопряжение с действующими модулями в рамках платформы Гедымин. Подключение внешнего оборудования.
- Выходные формы. Образей для каждой. Информация на основании чего строится форма, как вычисляется/заполняется каждое поле.
- Таймлайн. Порядок выполнения работ. Сроки. Ответственные.
26 июн. 2011 г.
Структура презентации проекта
Labels:
школа
25 июн. 2011 г.
Быстродействие триггера на коммит транзакции
Насколько замедлит выполнение кода наличие триггера на коммит транзакции?
Тестовый пример 10 000 раз извлекает имя контакта с идентификатором 650 001.
Тестовый пример 10 000 раз извлекает имя контакта с идентификатором 650 001.
EXECUTE BLOCK AS DECLARE VARIABLE I INTEGER = 0; DECLARE VARIABLE S VARCHAR(60); BEGIN WHILE (:I < 10000) DO BEGIN EXECUTE STATEMENT 'SELECT name FROM gd_contact WHERE id=650001' WITH COMMON TRANSACTION INTO :S; I = :I + 1; END ENDНа общей транзакции время выполнения у нас составило 367 мс. Теперь повторим тоже самое, но каждый селект будет выполняться на своей, автономной транзакции:
EXECUTE BLOCK AS DECLARE VARIABLE I INTEGER = 0; DECLARE VARIABLE S VARCHAR(60); BEGIN WHILE (:I < 10000) DO BEGIN EXECUTE STATEMENT 'SELECT name FROM gd_contact WHERE id=650001' WITH AUTONOMOUS TRANSACTION INTO :S; I = :I + 1; END ENDВремя выполнения составило 13 000 мс. Как видно, 10 000 стартов и коммитов транзакции не даются нам даром. Создадим пустой триггер на коммит транзакции:
CREATE OR ALTER TRIGGER tc_test ACTIVE ON TRANSACTION COMMIT POSITION 9000 AS BEGIN ENDВремя выполнения с таким триггером также составляет 13 000 мс. Для сравнения добавим в триггер операторы:
CREATE OR ALTER TRIGGER tc_test ACTIVE ON TRANSACTION COMMIT POSITION 9000 AS DECLARE VARIABLE S VARCHAR(255); BEGIN S = RDB$GET_CONTEXT('USER_TRANSACTION', 'TEST'); IF (:S IS NULL) THEN BEGIN S = 'A'; END ENDВремя выполнения увеличилось на 700 мс (по 0.7 мс в расчете на одну итерацию).
Вывод: Для Firebird 2.5 само по себе наличие триггера на коммит транзакции не увеличивает время выполнения кода.
Labels:
Firebird
Подписаться на:
Сообщения (Atom)