Переход с Sybase на Empress Сергей Савченко Empress Software QNX-Russia ноября, 2003
Структура мастер-класса Sybase SQL Anywhere для QNX 4 Empress, версия 8.62, для QNX 4 и QNX 6 Различия СУБД Шаги по переходу с СУБД Sybase на Empress Преимущества перехода на Empress Вопросы и ответы
Sybase SQL Anywhere для QNX 4 Sybase SQL Anywhere = WATCOM SQL Не поддерживается в QNX RTOS 6 Sybase SQL Anywhere объявлен устаревшим продуктом в 1998 году Прекращение технической поддержки планировалось на 2001 год
Empress v8.62 для QNX 4 & 6 Последняя версия Empress 8.62 доступна как для платформы QNX 4, так и для QNX 6.2 Функциональный состав СУБД Empress полностью перекрывает возможности Sybase Empress Software и QNX Software – давние и надежные партнеры Empress относится к ОС QNX как к одной из своих основных платформ
Переход с Sybase на Empress Шаг 1 Возможности Sybase, не поддерживаемые в Empress: – Значения по умолчанию – Тип данных, определяемый пользователем – Язык программирования хранимых процедур и триггеров
Empress: обходной путь Автоматическое определение значений по умолчанию в атрибутах записей может быть реализовано через определяемые пользователем триггеры
Переход с Sybase на Empress Шаг 2 Преобразование типов данных Соответствие типов данных Sybase и Empress Детали – см. Приложение 1 в технической заметке Empress How To Transfer Data To An Empress Database, номер документа:
Выборка данных из Sybase – Экспорт в текстовый файл с разделителями В интерактивном SQL введите команду: UNLOAD TABLE TO ' ' DELIMITED BY '^V' QUOTE OFF – Использование ODBC-интерфейса Sybase Переход с Sybase на Empress Шаг 3
Программа DBCOPY (есть исходный текст)
Разработка схемы данных Empress – Интерактивный SQL – Скрипты – Empress JAVA SQL Переход с Sybase на Empress Шаг 4
Загрузка данных в Empress – Интерактивный SQL INSERT INTO FROM ' ' – Скрипты – утилита empdbld – ODBC Переход с Sybase на Empress Шаг 5
Перенос приложений Sybase – SQL и ODBC – общепринятые стандарты Может потребоваться вмешательство – Язык программирования хранимых процедур и триггеров Sybase не является стандартом Требует переписывания – Empress C-API, встраиваемый SQL – Empress C-API MR ROUTINES Консультационная служба Empress – Переход с Sybase на Empress Шаг 6
Достоинства перехода на Empress Использование QNX RTOS 6 Передача и доступ к данным в различных комбинациях – между QNX RTOS 6 и QNX 4 – между QNX RTOS 6 и другими платформами – между QNX 4 и другими платформами Разработка приложений с использованием – Empress MR ROUTINES – ODBC, JDBC, PHP, Perl, ASP, JSP
Уникальные возможности Empress – Триггеры по SELECT – Альтернативные структуры данных – Тайм-ауты обращений к СУБД – Расширение функциональности СУБД подключением продуктов "третьих" сторон как пользовательских функций: Математических Статистических Логических Достоинства перехода на Empress
Вопросы и ответы Дополнительные ресурсы на сайте Empress – Empress Product Profile – Extreme Empress – Страница пользователей Empress (с авторизацией) Документация Empress Технические заметки FAQ Заметки о версиях Информация о дистрибутивах
ФУНКЦИИ C-API MR реальный пример (упрощенный) ПРОЦЕСС 1 собирает данные в реальном времени, без обработки ПРОЦЕСС 2 сканирует таблицу и готовит данные к последующему использованию
ПРОЦЕСС 4 … ПРОЦЕСС 2 сканирует таблицу и готовит данные к последующему использованию ПРОЦЕСС 3 сканирует таблицу и готовит данные к последующему использованию ФУНКЦИИ C-API MR реальный пример (упрощенный)
В процессе сбора данных не выполняется никакой предварительной обработки - данные в таблице беспорядочны - индексы недоступны Процессы 2, 3, 4, и т.п. должны сканировать таблицу последовательно Чтобы подготовить данные к обработке, необходимо обновление записей Если два или более процессов последовательно сканируют таблицу в режиме UPDATE, даже при "оптимитстичном" (OPTIMISTIC) контроле блокировоки возникнут серьезные трудности с завершением транзакций. ФУНКЦИИ C-API MR реальный пример (упрощенный)
Использовать в Процессах 2, 3, 4 и т.д. функции "грязного чтения" ("dirty reads") Empress o "грязное чтение" – разновидность "оптимистичного" контроля параллельных операций (OCC) o Процессы 2, 3, 4 и т.д. сканируют таблицу o Процессы 2, 3, 4 и т.д. работают в режиме "без блокировки" o в режиме OCC записи обновлять нельзя Открыть еще одну копию таблицы в режиме UPDATE Когда сканирующий процесс находит нужную запись: o получаем ее номер o выполняем выборку записи по номеру из таблицы, открытой в режиме UPDATE o обновляем запись o сканирующий процесс продолжает выполнение ФУНКЦИИ C-API MR реальный пример (упрощенный)
Процесс сбора данных продолжает выполняться в реальном времени o никакой предварительной обработки данных o минимальные "накладные расходы, вносимые СУБД" o скорость записи приближается к скорости записи в линейный файл Фильтрация данных производится другими процессами с меньшим приоритетом Сканирующие процессы не блокируют друг друга Обновления происходят с минимальными накладными расходами Каждое обращение к СУБД ограничивается одним вызовом функции C ФУНКЦИИ C-API MR реальный пример (упрощенный)
Вопросы и ответы Веб-сайт: Международные контакты: Telephone: Fax: Steeles Avenue East Markham, Ontario L3R 8T3 Canada Serge Savchenko Empress Software Inc.