logo search
Книга по БД(Вальке А

7.7.2. Как выяснять причины падения производительности

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

Разберемся с возможными причинами. Причин для падения производительности может быть несколько. Следует иметь в виду, что ИС – это комплексная система, состоящая из клиентских рабочих мест и одного или нескольких серверов. На каждом компьютере установлено как системное ПО (то есть ОС), так и компоненты СУБД и прикладные программы. Все компьютеры в ИС связаны коммуникационными линиями, как правило, локальной вычислительной сетью. Поэтому каждая из этих компонент может являться источником проблем, связанных с производительностью. Проблемы могут быть и в крайне не оптимально написанном приложении (например, в неправильной схеме базе данных или плохо составленных запросах), но уровень приложения здесь мы рассматривать не будем, так как он связаны не с вопросами администрирования готовой ИС, а с вопросами разработки. Естественно, если падение производительности имеет место на отдельном рабочем месте, а остальные идентичные работают нормально, то это проблема данного конкретного рабочего места. Нас интересуют проблемы, приводящие к падению производительности системы в целом.

Итак, основными источниками падения производительности могут быть:

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

Локальная вычислительная сеть

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

«Обвальная» перегруженность сети и спад производительности могут наступить достаточно резко, если используются «широковещательные» сетевые адаптеры типа Ethernet. Если используются сетевые адаптеры с гарантированной пропускной способностью (типа TokenRing) то «обвального» падения производительности из-за увеличения нагрузки на несколько процентов произойти не может. В любом случае, если есть возможность обратиться к серверу базы данных минуя сеть, например, через подключенную напрямую консоль, и производительность все равно остается низкой – причину надо искать не в низкой пропускной способности сети.

Обычно, администраторы ОС или технический персонал, обслуживающий аппартную часть ИС, имеют необходимые навыки и технику для идентификации сетевых проблем и администраторы ИС следует обратиться за помощью именно к ним.

Операционная система или аппаратура на сервере

Резкое снижение производительности ОС на сервере БД автоматически влечет за собой снижение скорости работы всех программ, установленных на этом сервере, в том числе и сервера БД. Если в качестве ОС используется Unix, то наиболее вероятная причина замедления работы – это переполнение корневой (/) или временной директории (/tmp), или, что случается реже, резкое увеличение числа процессов. Если в качестве ОС используется MS Windows NT, то к вероятным причинам резкого снижения производительности добавляется и фрагментация диска (особенность NTFS) и особенности реализации MS Windows NT.

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

Устранение данной причины обычно входит в обязанности администратора ОС.

Низкая скорость работы сервера БД

Как правило, причиной «обвального» падения производительности сервер базы данных не является. Наверное, единственной причиной, по которой сервер Informix Dynamic Server может резко снизить производительность – это переполнение журнала транзакций или, в частности, появление так называемой длинной транзакции. Подробно причины появления длинной транзакции, способы предотвращения и борьбы описаны в системной документации, а мониторинг состояния журнала транзакций обсуждается в соответсвующем параграфе.

Тем не менее, возможна ситуация, когда из-за неправильной (неоптимальной) настройки сервера Informix производительность постоянно деградирует. Вполне возможной причиной резкого снижения производительности может быть и неправильная настройка сервера базы данных Informix Dynamic Server. Рассмотрим возможные причины и способы их идентификации и устранения более подробно.

Прежде всего рассмотрим команду

onstat –p

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

INFORMIX-Universal Server Version 9.13.UC1 -- On-Line -- Up 42 days 00:08:55 - - 8896 Kbytes Profile dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached 200 218 4639 95.69 7 7 2 0.00 isamtot open start read write rewrite delete commit rollbk 2521 166 317 1509 0 0 0 0 0 gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs 3 0 0 0 0 0 3 ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes 0 0 0 3063.87 7670.45 1 23956 bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans 17 0 3893 0 0 0 0 29 ixda-RA idx-RA da-RA RA-pgsused lchwaits 60 0 0 39 0

Параметр %cached (их два, левый относится к операциям чтения, а правый – к операциям записи на диск) в первой строке раздела Profile показывает, сколько процентов запросов к данным было обработано без обращения непосредственно к диску, путем обмена с внутренними буферами (то есть, используя программистский жаргон, закешировано). В нашем примере видно, что для, почти, 96% чтений данных нужная информация находилась в буферах и не требовала реального чтения диска. Это хорошее значение для данного параметра. С другой стороны, 0% кеширования операций записи говорит о том, что или, практически, отсутствовали операторы обновления данных, или внесение новых значений приходилось на те данные, которые отсутствовали в буферах. Параметр write строчкой ниже показывает реальное число записей на диск, которые были вызваны реальным изменением данных. Так как в нашем примере этот параметр равен 0, то, следовательно, за анализируемый промежуток времени операторы INSERT/UPDATE/DELETE не выполнялись – сервер базы данных работал на чтение.

Команда onstat –p показывает статистику с момента или запуска сервера, или с момента принудительной очистки всех анализируемых значений. В нашем примере, сервер функционирует уже 42 дня, поэтому если что-то произошло недавно, то информация за 42 дня (как в нашем случае) особого интереса не представляет. Если требуется посмотреть статистику за определенный момент времени, то надо сбросить все внутренние счетчики, которыми пользуется утилита onstat. Сброс этих счетчиков выполняется командой

onstat –z

Выполнив эту команду, можно затем, через анализируемый промежуток времени, снова запустить команду onstat –p и увидеть статистику, относящуюся к данному промежутку. Например, сразу после очистки первые строчки листинга данной команды будут выглядеть следующим образом:

Profile dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached 0 0 0 0.00 0 0 0 0.00 isamtot open start read write rewrite delete commit rollbk 0 0 0 0 0 0 0 0 0 . . . . . . . . . . . .

То есть все счетчики были обнулены. Теперь, после некоторого времени, в течении которого производилась работа с сервером базы данных, можно повторно получить статистику активности сервера по операциям ввода-вывода (команда onstat –p):

Profile dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached 1038 1038 28057 96.30 557 973 9055 93.85 isamtot open start read write rewrite delete commit rollbk 20396 2261 3303 5421 2324 396 19 144 0 . . . . . . . . . . . .

По приведенному выше листингу уже можно сделать некоторые выводы – степень буферизации операторов ввода вывода (%cached) достаточно высока как на чтение, так и на запись. Следовательно, если есть какие-то проблемы с производительностью, то, скорее всего, имеет место или перегруженность сервера, или было выполнение какого-то сложного, неоптимизированного запроса.

Также очень интересны для анализа производительности следующие параметры команды onstat –p – usercpu и syscpu (четвертая пара строк параметров). Эти параметры указывают в секундах время, потраченное нитями на обработку соттветсвенно пользовательских запросов и системных вызовов. По этим параметрам можно судить, сколько реально работал сервер БД и какая часть этого времени ушла на выполнение системных функций.

Сколько всего (с момента запуска) времени операционной системы ушло на работу сервера БД можно узнать, использовав средства мониторинга на уровне операционной системы (например, из утилит ps или sar). Например:

ius_913: ps -ef | grep oninit informix 1177 1175 0 Aug 11 ? 8:48 oninit informix 1174 1 0 Aug 11 ? 83:34 oninit informix 1175 1174 0 Aug 11 ? 36:15 oninit informix 1176 1175 0 Aug 11 ? 8:53 oninit informix 1178 1175 0 Aug 11 ? 8:47 oninit informix 1179 1175 0 Aug 11 ? 0:00 oninit informix 1180 1175 0 Aug 11 ? 8:21 oninit informix 1181 1175 0 Aug 11 ? 8:25 oninit informix 1182 1175 0 Aug 11 ? 8:35 oninit informix 1183 1175 0 Aug 11 ? 8:29 oninit informix 1184 1175 0 Aug 11 ? 8:24 oninit

Возвращаясь к команде onstat –p отметим еще 3 параметра, представляющие для нас интерес. Все эти параметры располагаются в пятой паре строк. Это следующие параметры:

Безусловно, нельзя гарантировать, что при резком падении производительности достаточно проанализировать все указанные выше параметры команды onstat –p и, сделав соответсвующие выводы, исправить ситуацию. У утилиты onstat есть много вариантов показа статистики, и только на основе полного анализа всех параметров, вместе с анализом мониторинга самой ОС, можно гарантированно понять причину падения производительности. Однако, во многих случаев анализа некоторых параметров, полученных по команде onstat –p, будет достаточно.

Заключение

Хотелось бы подчеркнуть, что данное издание ни в коей мере не может заменить документации по продуктам фирмы Informix Software. Документация доступна совершенно свободно по Интернету и находится на www-сервере фирмы Informix Software по адресу www.informix.com

И, наконец, огромное спасибо всем, кто дочитал эту книгу до данного места. Любые замечания, поправки и предложения будут с радостью прочитаны и изучены, если Вы, уважаемый читатель, отправите их по адресу andreyg@informix.com

Приложение 1.

Глоссарий

Агрегат, агрегатная функция – функция, значение которой рассчитывается по совокупности значений полей в выборке, например, сумма значений некоторого поля по всей выборке.

Администратор базы данных - это человек, который следит за состоянием этой конкретной базы данных, дает или отбирает права на доступ ко всей базе целиком или ее отдельным объектам.

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

Аналитик по безопасности - лицо, который имеет право анализировать кто, когда и что делал с сервером базы данных.

Атрибут - некоторе свойство объекта, которое представляет для нас интерес и значение которого мы хотим иметь.

Аудитинг - отслеживание доступ к информации, слежение за действиями определенных лиц по отношению к серверу базы данных, слежение и фиксация того, кто, когда и что делает с сервером базы данных и находящейся на нем информацией.

Аутентификация – проверка того, что некто (процесс или пользователь) является именно тем, за кого себя выдает (обычно используется совместно с или как часть Идентификации). Обычно основывается на использовании паролей.

База данных - набор структурированных данных для совместного использования

Выборка – некоторое подмножество записей, сформированных на основе некоторого критерия, например, условия в разделе WHERE оператора SELECT.

Грязное чтение – уровень изоляции, при котором видны изменения, еще не подтвержденные оператором окончания транзакции.

Достоверное чтение – уровень изоляции, при котором гарантируется, что любые прочитанные данные являются подтвержденными.

Заведующий безопасностью базы данных - лицо, которое конфигурирует механизм аудитинга, при необходимости включает или выключает его.

Запись - набор именованных значений. Надо различать запись как тип, который состоит из набора именнованных полей, каждое из которых имеет определенный тип, и запись как экземпляр данных, который состоит из определенных значений этих полей.

Идентификация – механизм определения или указания того, кто производит или пытается произвести некоторые действия. Для идентификации пользователя в СУБД обычно используется некоторое имя.

Интерфейс – некоторое соглашение о правилах взаимодействия, например, описание доступных функций для доступа к данным.

Клиент, клиентское приложение – программа, в обязанности колторой входит формирование запросов.

Ключ - уникальный для каждого ряда (записи) внутри таблицы набор полей.

Локаль - описание конкретной кодовой страницы для конкретного языка, то есть набор допустимых символов, порядок сортировки и т.д.

Отношение - неупорядоченный набор однотипных записей. Каждая запись внутри отношения должна содержать один и тот же набор полей. Синоним понятия “Таблица” в теории реляционных СУБД.

Повторяемое чтение – уровень изоляции, при котором любые данные, прочитанные внутри одной транзакции, гарантированно не могут быть изменены другими процессами до окончания транзакции.

Подтвержденное чтение – то же, что и Достоверное чтение

Поле - представление некоторого атрибута в таблице. Для хранения значений поля используется определенный тип данных.

Пространство данных – параметр физической организации хранения данных на внешних устройствах. Состоит из нескольких чанков.

Реляционная база данных - способ организации данных на основе таблиц (отношений). Все ряды (записи) в таблице имеют одинаковый набор полей. Связь между таблицами осуществляется через соотношение полей. Оператор выборки данных просматривает таблицы.

Репликация данных – механизм «фоновой» пересылки данных между двумя или более базами данных, вне механизма распределенных транзакций.

Ряд - то же самое, что и запись.

Сервер – программа (или компьютер), которая осуществляет обработку запросов, поступающих с клиента.

Сервер базы данных – программа, которая обеспечивает доступ к базе данных.

Сервер приложений – программа (или, в общем случае, приложение), которое реализует некоторую функциональность и служит промежуточным звеном между программой‑клиентом и программой‑сервером.

Система управления базой данных - набор программных и аппаратных средств для хранения и обеспечения доступа к базам данных

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

Сущность - некоторый, возможно нематерилизуемый объект или понятие реального мира. Например, это может быть факт о телефонном разговоре, человек, фирма, контракт и т.д.

Схема базы данных - совокупность структур таблиц, входящих в базу данных. То есть набор таблиц и описание полей, составляющих каждую таблицу из базы данных.

Таблица - то же самое, что и Отношение.

Тип данных - множество значений и набор опреаций, применимых к данным значениям.

Тиражирование данных - то же, что и Репликация данных.

Транзакция - набор действий, которые либо должны быть выполнены все, либо не должно быть выполнено ни одного.

Траффик – передаваемая по сети информация.

Трехзвенная (трехуровневая) архитектура – способ построения программных систем, когда наравне с серверами и клиентами присутствует промежуточный слой – Сервера Приложений

Уровень изоляции – степень изолированности одного клиентскогло приложения от других, работающих с той же базой данных.

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

Чанк – отдельный файл, сырое устройство или их непрерывный фрагмент, используемый для организации физического хранения данных на внешнем устройстве, часть пространства данных.

BLOB – большой двоичнгый объект с неизвестной (для сервреа БД) внутренней структурой

NULL - специальное значение, которое может иметь поле любого типа и которое означает, что значение "не определено".

ODBC - Open DataBase Connectivity – обобщенный стандарт на взаимодействие между программой-клиентом и программой-сервером базы данных.

PIN – Personal Identification Number, личный код (пароль), по соответствию которого проводится аутентификация пользователя в некоторых предметных областях, например в банковском деле.

SPL – Stored Procedure Language, Язык хранимых процедур, то есть язык, на котором пишутся хранимые процедуры.

SQL - Structured Query Language, стандартизованный язык структурированных запросов к реляционной базе данных.

XBSA – Xopen Backup Service Application – протокол для взаимодействия прикладных систем и подсистемы хранения

Список сокращений

АВВ – асинхронный ввод-вывод

АЦ – алфавитно-цифровой

БД - база данных

ВП – виртуальный процессор

ИС - информационная система

ОЗУ – Оперативное запоминающее устройства, то есть память

ОРСУБД – Объектно-реляционная СУБД

РСУБД – Реляционная СУБД

СП – Система программирования

СУБД - система управления базами данных

ЦП – центральный процессор

ЯП – язык программирования

4GL – 4th generation language

AAO - Audit Analysis Officer

AIO – Asynchronous Input-Output

API – Application Program Interface

BLOB – Binary Large OBject

CDR – Continuos Data Replication

CHAR - CHARacter

CLI – Call-Level Interface

CPU – Central Processor Unit

DBA – Data Base Administrator

Dbspace – DataBase Space

DBMS – DataBase Management System

DBSSO – Database System Security Officer

DDR - Distributed Data Replication,

DS – Dynamic Server

DSA –Dynamic Scalable Architecture

DSS – Decision Support System

ER –Enterprise Replication или Entity-Relation

ESQL – Embedded SQL, встроенный SQL

GLS – Global Language Support

HDR – High Availability Data Replication

IECC – Informix Enterprise Command Center

IDS – Informix Dynamic Server

INT - INTeger

IS – Information System

ISAM – Indexed-Sequenced Access Method

ISM - Informix Storage Manager

IUS – Informix Universal Server

LRU – Last Recently Used

ODS – OnLine Dynamic Server

OLAP – OnLine Analytical Processing

OLTP – OnLine Transaction Processing

ORDBMS – Object-Relational DBMS

PDQ – Parallel Data Query

PIN – Personal Identification Number

RDBMS – Relational DBMS

RDS – Rapid Development System

SE – Standart Engine

SMI - System Monitoring Interface

SPL – Stored Procedure Language

SQL - Structured Query Language

UDO – Universal Data Option

VP – Virtual Processor

Перевод и расшифровка некоторых англоязычных терминов, встречающихся в документации

2PC (two-phase commit) - протокол двухфазной фиксации для распределенных транзакций

Abort - аварийное окончание

Access - доступ

access method - метод доступа

access mode - режим доступа

access privileges - привилегии доступа

ACE - генератор отчетов для INFORMIX-SQL

action clause - спецификатор ACTION

active set (of rows) - активное множество (строк)

active statement - выполняемый оператор

active table - активная таблица

after-image - измененная (строка, страница)

aggregate – агрегат, заранее подсчитанное (полностью или частично) значение

aggregare expression - агрегатное выражение, выражение для расчета аггрегатов

aggregate function - агрегатная функция

alarm – тревога, предупреждение

alias – псевдоним, соотнесенное имя (таблицы)

alter - изменять

ANSI - American National Standards Institute (ANSI) - американский национальный институт стандартов

API - Application Program Interface – описание набора классов, функций и структур данных для взаимодействия с некоторой программой.

application class - класс приложений (класс прикладных программ)

application development tool - инструментальные средства /инструменты/

archive copy - архивная копия

arhieving - архивирование (архивация)

arithmetic operator - арифметическая операция

arrangement of tables - структура таблиц

arrow key - клавиша перемещения курсора (клавиша со стрелкой)

ascending/descending - возрастающий/убывающий

collating order - схема упорядочивания символов

asterisk - символ "звездочка"

atomicity - атомарность

attach - подключать

attribute - атрибут

audit – аудит, отслеживание, проверка

audit trail - история изменений

audit trail log - журнал изменений

authentication - аутентификация

authorization - санкционирование, полномочия

B+ - tree - B+ дерево, двоичное индексное дерево

B-tree - B-дерево, двоичное индексное дерево

backup - резервное копирование

before-image - исходная (строка, страница)

block device - блочное устройство

boolean – «булевский», логический

branch page - страница-ветвь индексации

breakpoint - точка прерывания - (контрольная точка - при отладке)

buffer - буфер

bypass - обходить

function - функция

Library - библиотека

Cartesian product - декартово произведение

CHAR - тип CHAR (строковый тип, символьный тип)

cashe - кэш-память [кэш]

chart - диаграмма

check constraint - ограничения контроля

checkpoint - контрольная точка [контрточка]

check/repair - проверять/исправлять

chunk - фрагмент [диска, DB-пространства]

cluster - кластер

clause – спецификатор, раздел (оператора SQL)

cleaner - очиститель

clock setting check - контроль установки часов

close a cursor - закрыть курсор

close a database - закрыть базу данных

close file - закрыть файл

clustered indexes - кластеризованные индексы

code - программа [код]

code set - кодировка

cold restore - холодное восстановление

collection of information - хранилище информации

collating - упорядочивание по алфавиту

column - столбец

column filter - фильтр столбцов

column indicator - индикатор столбца [признак столбца]

command file - командный файл

comment - комментарий

commit – фиксировать, потверждать (транзакцию)

common resource - общий ресурс

comparison condition - условие сравнения

compile - компилировать

compiled screen form - откомпилированная экранная форма

compile-time - этап компиляции

composite index - составной индекс

composite join - составное соединение

compound query - составной запрос

concatenation - конкатенация

concurrency - параллельность (параллелизм)

concurrent use - совместное использование

connect privilege to DB – привилегия, право на соединение с БД

consistency - непротиворечивость

consistent state - непротиворечивое состояние

constraint - ограничение

control character - управляющий символ

control key - управляющая клавиша

cooked file – подготовленный (для хранения данных) файл

coordinator - координатор

correlated - коррелированный

correlated subquery - коррелированный подзапрос

corrupted database - поврежденная база данных

corrupted index - поврежденный индекс

corruption - повреждение

create/drop - создавать/исключать

currency symbol - знак денежной единицы, денежный символ

current row - текущая строка

cursor – курсор

daemon – демон, программа, выполняемая в фоновом режиме

data - данные

database (DB) - база данных (БД)

data base level - уровень БД

data dictionary - словарь данных

data integrity - целостность данных

data model - модель данных

data type - тип данных

data type conversion - преобразование (приведение) типов данных

Database Administrator (DBA) - администратор базы данных (АБД)

database agent - сервер БД

database application - прикладная программа БД (приложение БД)

database dictionary - словарь БД

database engine - ядро СУБД

database management system (DBMS) - система управления базой данных (СУБД)

database-level privilege - привилегия уровня базы данных

data skip - пропуск данных

data source - источник данных

Data Replication (DR) – тиражирование, репликация данных

date – дата, момент времени

DB-Access - программный продукт (утилита) DB-Access

DBA privilege - привилегии DBA

DB-Monitor - монитор БД, утилита onmonitor

dbspace – пространство данных (DB-пространство)

deadlock - тупик

debugger - отладчик

declarative statement - оператор описания

default – умолчание

default form specification - спецификация формы по умолчанию

default value - значение по умолчанию

defragmenting tables - дефрагментация таблиц

delete - удалять

delete forward - стереть впереди стоящий символ

delete privilege - привилегия на удаление

delimiter - разделитель

desktop - настольный

device array - массив устройств

diagnostics table - таблица диагностики

difference (set operation) - операция вычитания (множеств)

DIRTY READ – грязное, недостоверное чтение

discrete privilege - дискретная привилегия

disk configuration - конфигурация диска

disk drive - дисковое устройство

disk I/O - дисковый ввод/вывод

disk storage - дисковая память

disk storage methods - методы управления дисковой памятью

disk mirroring - зеркальное отображение (дублирование) диска

display - отобразить, показать, - выводить на экран или печать

display field - поле вывода

display label - заголовок вывода

distributed option - распределенный режим работы

Documentation Notes - замечания по документации

domain - домен

dominant table - доминирующая таблица

dominate - доминировать

downgrade - преобразование к старой верии

duplicate - дублировать

dynamic embedding - динамическое встраивание

Dynamic Scalable Architecture - динамическая масштабируемая архитектура

dynamic SQL - динамический SQL

dynamic statements - динамические операторы

elapsed time - астрономическое время

ellipsis - многоточие

embedded - встроенный

embedded data definitions - встроенные определения данных

embedded language product - встроенный языковый программный продукт

embedded SQL - встроенные операторы SQL

Embedded SQL (ESQL) - встроенный SQL (ESQL)

end of data - конец данных

enter/delete - вводить/удалять

entity integrity - целостность по сущностям

entity integrity constraint - ограничение целостности по сущностям

environment variable - переменная окружения, - внешняя переменная

equi-join - эквисоединение

error log - журнал ошибок

error message - сообщение об ошибке

error trapping - обработка ошибок (перехват ошибок)

escape - выходить (избегать)

escape character - экранирующий символ

escape key - клавиша ESCAPE

escape keyword - ключевое слово ESCAPE

exclusive access - монопольный доступ

exclusive lock - монопольная блокировка

executable file - выполняемый файл

execution time - время выполнения

existential qualifier - квантор существования

expansion page - страница расширения

explicit select list - явный список выбора

expression - выражение

extent - экстент

external table - внешняя таблица

external, distributed table - внешняя распределенная таблица

failure - сбой

fake - фиктивный

FALSE - значение FALSE, ложь

fast recovery - быстрое восстановление

fault tolerance - отказоустойчивость

field - поле

field tag - ярлык поля

file handle - дескриптор файла

filename extension - расширение имени файла, расширение файла

finderr - командный файл finderr

fixed-length row - строка фиксированной длины

flag - флаг

flat file - неструктуризованный (плоский) файл

floating point number - число с плавающей точкой

flush - выталкивать

footer - нижний колонтитул

forced residency - принудительная резидентность (размещение в ОЗУ)

foreign key - внешний ключ

forking - порождение (процесса)

form menu - меню экранных форм

form specification - спецификация формы

format section - секция формата, раздел формата

fourth-generation language - язык четвертого поколения

fragid – идентификатор фрагмента

fragmentation - фрагментация

free-list page - страница со списком свободных страниц

function - функция

global variable - глобальная переменная

graceful-shutdown - постепенная остановка

grant/revoke database/table privileges - предоставить/отменять - привилегии доступа к базе данных/таблиц

grantee - принимающий [привилегии]

grantor - предоставляющий [привилегии]

graphical runner - графический интерпретатор

guilty function - узкое место

hashing - хэширование

header - заголовок

heap - куча

help menu - справочное меню

help message - подсказка, справочное сообщение

hidden - скрытый

hierarchy - иерархия

high availability - высокая отказоустойчивость

High Availability Data Replication (HDR) - ???тиражирование данных с высокой отказоустойчивостью

highlight - выделенный

High Water Mark (HWM) - пороговая отметка HWM

hold cursor – удерживаемый курсор

home engine - локальное ядро

home page - локальная страница

host - компьютер, хост

host ID - идентификатор компьютера, идентификатор хоста

host language - главный язык

host OS - главная ОС

host-variable - главная переменная

hostname - имя компьютера, имя хоста

hot spot - "узкое место"

HWM (High Water mark) - HWM

icon - значок

identifier - идентификатор

identity - полномочия (подлинность)

immediate shutdown - экстренная остановка

implicit select list - неявный список выбора

incremental archiving - пошаговое архивирование

index - индекс

index page - страница индексов

indexed column - индексированный столбец

indicator variable - переменная-признак, переменная-индикатор

inquire - запрос, опрос

insert mode - режим вставки [символов]

insert privilege - привилегия на вставку

installation - инсталляция

integrity - целостность

interactive - диалоговый

interactive debugger - диалоговый отладчик

interactive editor - диалоговый редактор

interactive SQL - диалоговый SQL

interoperability - интероперабельность

interpreter - интерпретатор

interrupt - прерывание

intersection (set operation) - операция пересечения (множеств)

ISAM error code - код ошибки для ISAM

italic - курсив

iterator - итератор

iterator tree - дерево итераторов

join - соединение

join (relational operation) - операция соединения

join column - соединяющий столбец

join condition - условие соединения

join field - поле соединения

joining - процесс соединения

kernel - ядро

key - ключ

keyword - ключевое слово

label - метка

latch - защелка

leaf page - страница-лист (индексации)

level of isolation - степень изоляции

library - библиотека

light-weighted - облегченный

link - ???редактирование связей, - компановка [программы];

link-time - ???этап компановки

listener - прослушиватель

listen thread - ???поток прослушивания

literal - литерал

literal number - число-литерал

locale - локаль (описание конкретной кодовой страницы)

local variable - локальная переменная

lock - блокировка

lock conflict - тупик

lock mode - режим блокировки

locking - блокировка

locking granularity - уровень блокировки

logging facility - механизм регистрации

logical log - логический журнал, журнал транзакций

logical operator - логическая операция

login - вход в систему, регистрация пользователя

login name - (зарегистрированное) имя пользователя

lookup fields - поля поиска

lowercase - строчный

LRU queue - LRU-очередь

Machine Notes - замечания по специфике компьютера

machine power - производительность машины

mailing label - почтовая этикетка, почтовая метка

main menu - главное меню

map - карта (отображение, образ)

match function - функция соответствия

measuring - измерение

menu - меню

menu option - пункт меню

message log - журнал сообщений

message log file - файл журнала сообщений

migrate - переносить

mirror chunk - зеркальная копия чанка

mirrored dbspace - зеркальное отображение DB-пространства, - /зеркальное DB-пространство/

mirroring - зеркальное отображение

mode - режим

modify - изменять, модифицировать

module - модуль

module variable - переменная модуля

monitoring – мониторинг, отслеживание

multilevel - многоуровневый

multi-user networked system - сетевая многопользовательская система

multiple-column index - составной индекс

multiple-table - многотабличный

multiple-table form - многотабличная форма

multiple-table SELECT statement - многотабличный оператор Select

multirow - мультинабор строк

multisite deadlock - многовходовой тупик

multiprogramming system - мультипрограммная система

multithreading – многопотоковость, многонитиевость

mutex – mutual exclusive, вид замка

naming (в операторе SQL) - указание по имени

natural join - естественное соединение

nested loop - вложенный цикл

nested outer join - вложенное внешнее соединение

nested simple join - вложенное простое соединение

nested sort - вложенная сортировка

nested sorting - вложенная сортировка

network - сеть

nonindexed column - неиндексированный столбец

nonzero value - ненулевое значение

NULL value - NULL-значение, неопределенное значение

Object Linking and Embedding (OLE) - компоновка и встраивание объектов

OEM - Other Equipment Manafacturer) - производитель оборудования

off-line – выключенное состояние

offset - смещение

OnBar – OnLine Backup And Restore – утилита резервного копирования и восстановления

On-line Error Messages File - диалоговый файл с сообщениями об ошибках

On-Line HELP - диалоговая справочная система

on-line – оперативный, рабочий режим или состяние

On-Line Transaction Processing - оперативная обработка транзакций

optical storage subsystem - подсистема оптической памяти

optical subsystem vendor - поставщик оптической подсистемы

optimizer - оптимизатор

option - пункт (меню), необязательный параметр (командной строки), - вариант, опция

optional - необязательный (факультативный)

order - упорядочивание

outer join - внешнее соединение

out of memory - выход за границы памяти, исчерпание памяти

output - вывод

outstanding - невыполненные, ожидающие выполнения

owner - владелец

pad - заполнить

page - страница

page header - верхний колонтитул или заголовок страницы

page zero - первая или самая младшая страница

page trailer - нижний колонтитул

parameter - параметр

participant [of 2PC] - участник [2PC]

partition - раздел или фрагмент диска или набора данных

part number - номер комплекта

path - путь поиска

pathname - полное имя файла

pattern - образец, шаблон

payroll summary - платежная ведомость

PDQ (Parallel Data Query) - параллельный запрос данных

pending - задержка

performance - производительность

permission - право

phantom row - временная строка (строка-призрак)

physical log - физический журнал

physically contiguous - физически непрерывный

platform - оборудование

platform-dependent - зависимый от оборудования

pointer - указатель

policy - дисциплина

pop - считывание из стека

port number - номер порта

PostScript file - файл в формате PostScript

preprocessor - препроцессор

primary chunk - первичный (основной) чанк

primary key - первичный ключ

primary DB server - первичный (основной) сервер БД

printable character - печатаемый знак

priority aging - понижение приоритета с ростом времени

privilege - привилегия

probe phase - фаза зондирования

procedure variable - процедурная переменная

procedural statements - выполняемые операторы

process isolation - уровень изоляции процесса

processor affinity - приписка процессора

program block - программный блок

program control - программное управление

program variable - переменная программы

projection – реляционная операция проекция

promotable lock - изменяемая блокировка

prompt - приглашение

proprietor - владелец

pseudocode - псевдокод

public - общедоступный

push - запись в стек

querу - запрос

querying - обработка запроса

query-execution time - время выполнения запроса

query language - язык запросов

query-by-example - запрос по образцу

query tree - дерево запроса

quiescent – бездействующий, в состоянии покоя

quorum conditions - достаточные условия

raw device – сырое устройство, то есть устройство, на котором не создается и не используется файловая система, а также Устройство с последовательным доступом

raw I/O - прямой обмен

read ahead - опережающее чтение

recovery - восстановление

record - запись

redirect - перенаправять

referential integrity - целостность по ссылкам

referencing/referenced - ссылающийся/ссылаемый

regular expression - регулярное выражение, то есть удовлетворяющее некоторым синтаксическим правилам

relation - отношение

relational - реляционный

relational database - реляционная база данных

relational database management system - система управления реляционными базами данных

relational operation - операция реляционной алгебры

Release Notes - замечания по версии

release - выпуск, освобождение, разъединение

replication - тиражирование, репликация

report - отчет

report specification - спецификации отчета

report writer - генератор отчетов

reposition - перемещение

reserved word - зарезервированное слово

resource file - файл ресурсов

resource privilege - привилегия на ресурс

restore a database - восстановление базы данных

restricted single-character wildcard - ограниченный односимвольный шаблон

return key - клавиша RETURN

reversion - реверсия, восстановление [прежнего состояния]

revoke [privileges] – отбирать [привилегии, права]

rewind - перемотка файла, - установка указателя файла на начало файла

role - роль

roll back – откат, прокрутка назад

roll forward – накат, прокрутка вперед

root dbspace - корневое (исходное) DB-пространство

root page - страница-корень (индексации)

round-robin - циклический

routine - подпрограмма

row – строка, запись [таблицы]

run-time - этап выполнения

run-time error - ошибка этапа выполнения

scale - масштаб

schema - схема

schema editor - редактор схем

scope of reference - область доступности

screen form - экранная форма

screen option - пункт меню экрана

script - командный файл (сценарий)

search criteria - критерий поиска

security - защита, безопасность

select list - список выбора

select privilege - привилегия на выборку

selection - операция селекция (реляционной алгебры)

self join - самосоединение

semantic integrity - семантическая целостность

semaphore - семафор

sensitivity label - метка чувствительности

serial – серийный, последовательный

serial column - столбец с порядковыми номерами - (столбец типа Serial)

serial interval table identifier - идентификатор таблицы в системном каталоге

serializable transactions - повторяемые транзакции

serial number on card - серийный номер на карточке

server - сервер

server line - линия связи сервера

server nodes - серверные узлы СУБД (в сети)

servername - имя сервера

servernum - номер сервера

session – сеанс, сессия

session control block - блок управления сеанса

session structure - структура сеанса

set up - настраивать (параметры)

shared lock - совместная блокировка

shared memory - разделяемая память

sharing temprorary space - разделяемое временное пространство

simple join - простое соединение

single-character wildcard - односимвольный шаблон

singleton Select statement - одноэлементный оператор SELECT

slot - слот

slot table - таблица слотов

SMI - System Monitoring Interface, описание системного интерфейса

SMP system – СМП (симметричная многопроцессорная) система

sort-merge join technique - создание таблиц методом сортировки-слияния

source file - исходный файл

spacebar - клавиша пробела

specify - специфицировать (задавать)

spreadsheet - электронная таблица

SQL Communication Area (SQLCA) - область связи SQLCA

stack - стек

stack operator - стековая операция

statement - оператор

static embedding - статическое встраивание

status line - строка состояния

status variable - переменная состояния

stored procedure - хранимая процедура

string - символьная строка (строка символов)

Stored Procedure Language (SPL) - язык хранимых процедур

subquery - подзапрос

subroutine - подпрограмма

subscripting - вырезка подстроки, выделение элемента

subservient table - подчиненная таблица

subset - подмножество

substring - подстрока

system catalog - системный каталог

system log - системный журнал

system console - системная консоль (операторский терминал)

system table - системная (служебная) таблица

tabid – идентификатор таблицы

table - таблица

table-access path - путь доступа к таблице

table partitioning – фрагментирование таблицы, принудительное разнесение записей из таблицы

tag - ярлык

take-offline - переход в off-line

tbconfig file – конфигурационный файл

tblspace - TBL-пространство, пространство для хранения таблиц

TCP/IP networking software - сетевое программное обеспечение для поддержки набора протоколов TCP/IP

temporary table - временная таблица

termcap - файл описания терминального устройства, альтернатива terminfo

terminfo – система описания терминальных устройств, альтернатива termcap

thread – пото, нить

thread-control block (tcb) - блок управления потоком (нитью)

tic - утилита tic (UNIX)

time function - временная функция

time stamp - штамп времени

tracepoint - точка трассировки

track - дорожка

tracking - отслеживание

tracing - трассировка

trailer - замыкающая часть, хвостовик

transaction - транзакция

transaction log - журнал транзакций

transaction logging - ведение журнала транзакций

trap error - перехват ошибок

TRUE - истина

tuple - кортеж, а также см. row

typeface - шрифт

typeover mode - режим замены

underscore - подчеркивание

undo - откат, аннулировать

union (set operation) - операция объединения (множеств)

unique constraint - ограничение уникальности

unique key - уникальный ключ

unload - выгрузка

unlock - разблокировка

update - обновлять (корректировать)

update lock - блокировка для обновления

update privilege - привилегия на обновление

upgrade - обновление версии

uppercase/lowercase - заглавный/строчный

user menu - меню пользователя

user – функция пользователь

user interface - пользовательский интерфейс

validation - проверка

values correlation name - имя соответствия значений

variable - переменная

variable text - переменный текст

variable text query - запрос с переменным текстом

variable-length row - строка переменной длины

variable-length wildcard - шаблон переменной длины

vendor - поставщик

vendor-code - код поставщика

verbose - словесный

versioning – котроль и управление версиями

vi – visual editor – стандартный для Unix текстовый редактор

view - представление

violations table - таблица нарушений

virtual column - виртуальный столбец

virtual processor - виртуальный процессор, ВП

warm restore - горячее восстановление

warning - предупреждение

warning flag - флаг предупреждения

water mark – пороговое (значение)

wildcard - шаблон (замены символов)

wildcard operator - операция выбора по шаблону

window - окно

write permission - право на запись

X Windows system – графическая оконная система X Windows

yield - уступать

Приложение 2. Миграция старых приложений в Informix

В настоящий момент самой популярной архитектурой для реализации информационных систем (ИС) является файл-серверная архитектура. Приложения, составляющие такие ИС обычно написаны на инструментах типа Clipper, Clarion, FoxPro и т.д. (будет называть такие системы xBase-системами) и функционируют на PC, работающих в локальной сети под управлением Novell Netware или, значительно реже, Unix или NT.

В качестве примера популярности подобного подхода в России можно привести пример многих банковских и торговых систем. В таких системах используется передача данных из филиала в филиал по простому протоколу по модему, филиальная локальная сеть использует решение, написанное на xBase-системе.

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

С другой стороны, значительно усложняется технология современного бизнеса (вспомните и сравните текущее состояние с 1991-м годом). Следовательно, растет и сложность ИС, повышаются требования к связыванию отдельных операций в единую технологическую цепочку (транзакционный режим).

Есть и другие причины, которые ограничивают использование файл‑серверной архитектуры для серьезных ИС. Они хорошо известны разработчикам, администраторам и пользователям xBase-систем.

Кроме существующих ограничений, надо думать и о будущем. Пусть даже на сегодняшнем этапе существующая файл-серверная ИС устраивает по производительности и функциональности. Но любая ИС имеет тенденции к росту. А именно, увеличивается число пользователей, увеличивается объем хранимой информации, возникает необходимость добавления аналитики и т.д. Завтра это может стать серьезным ограничением, и: что бы, не возникло проблем завтра, планировать перевод ИС на современные технологии надо уже сегодня.

Модернизация ИС – это уже тенденция настоящего времени. Сейчас во многих российских организациях (да, и не только российских) идет процесс укрупнения информационных систем. Другими словами, информационные системы, построенные по архитектуре файл-сервер переводятся (или планируются к переводу) на более прогрессивные технологии, в частности на технологию клиент-сервер на основе реляционных серверов баз данных.

Процесс перехода на новую ИС, а особенно с другой архитектурой, всегда очень тяжел и трудоемок. Основные трудности такого перехода заключаются в:

  1. наличии шанса потерпеть неудачу

  2. необходимости переобучать пользователей работе с новой системой;

  3. существенных затратах на переработку (разработку) приложений и трудности воспроизведения сложившихся бизнес-технологий;

  4. переобучении обслуживающего персонала;

  5. сложности одновременной разработки новых приложений и поддержке старых.

  6. затратах на новую аппаратуру и системное ПО (в том числе, и на СУБД);

  7. отсутствии возможности остановить производственный процесс хотя бы на один день.

В московском представительстве фирмы Informix Software разработана технология и необходимое программное обеспечение для осуществления «эволюционного» перевода ИС с технологии файл-сервер на технологию клиент-сервер на базе СУБД Informix. Данная технология позволяет отказаться на первом этапе внедрения от необходимости переобучать персонал и вкладывания значительных средств в разработку новых приложений и, следовательно, повышает шансы на успех проекта в целом.

Другими заказчиками, которым может быть интересен данная технология, являются Российские фирмы – поставщики корпоративных ИС. Не секрет, что большинство их также написано на xBase. Противопоставлять пусть и добротные, но выполненные на морально устаревших принципах разработки западным решениям, пусть и более дорогим, становится все труднее и труднее. Предлагаемая здесь технология позволяет дать «второе дыхание» мегабайтам строк исходного текста.

Рассмотрим предлагаемую технологию более подробно.