2004 – год эволюции Увеличение надёжности, развитие функционала • • • • удвоили клиентскую базу количество обращений к поддержке уменьшилось новые операционные системы всё большее распространение в различных областях как в стране, так и за её пределами • расширен «ареал обитания» – семейство QNX 6.x • in-memory таблицы – MAC OS 10 Новый hot-standbay server Новая реализация подсистемы горячего резервирования на основе асинхронной репликации системного журнала для отказоустойчивых программных комплексов. Значительное увеличение производительности и надёжности: • для перехода в режим основного сервера, резервному теперь требуется всего несколько секунд • поддержка нескольких резервных серверов • производительность практически не зависит от числа резервных серверов Распределённое управление • в IANA получен персональный код, для использования в системе распределённого управления компонентами СУБД ЛИНТЕР на базе протокола SNMP • поддержка SNMP всех версий, включая SNMPv3 (повышенная секретность) • поддержка SNMP будет включена во все версии ЛИНТЕР • версия уже прошла beta-тестирование и была апробирована на реальном объекте и будет представлена на SofTool2005 ReadOnly базы данных • параметр запуска ядра /RO При запуске с таким ключом ЛИНТЕР полностью отключает журнализацию, блокировки и т.п. и работает с файлами БД только в режиме чтения: • полностью сохранена функциональность SELECT-запросов • поддерживается полнотекстовый поиск • возможна работа в многопользовательском режиме Временные файлы размещаются на локальных дисках. Приятные пустяки… Hints INDEX (INDEX_DESC) - указание на использование порядка (прямого или обратного) индекса PREDORDER - указание на порядок выполнения предикатов EXPAND - указание на способ обработки подзапроса во FROM-предложении Изменения в хранимых процедурах: • Сняты все ограничения на использование в запросах пользовательских функций; • Процедуры, возвращающие курсор, могут участвовать в запросах наравне с таблицами и представлениями. …приятные пустяки • снято ограничение в 65000 страниц, для одного серверного процесса, на использование оперативной памяти • доступная оперативная память до 8 терабайт • снято ограничение в 2 Гб для временных файлов (WRK, WBV) Глобальные временные таблицы CREATE GLOBAL TEMPORARY TABLE ИМЯ_ТАБЛИЦЫ ({определение столбца | [ограничение таблицы]}, ... [ON COMMIT {DELETE | PRESERVE} ROWS]); • возможно создание primary key, unique, простых и составных индексов, а также внешних ключей, ссылающихся на другие таблицы; • внешние ссылки на временную таблицу создавать запрещено; • поддерживаются ограничения check, default, autoinc; • триггеры (за исключением триггеров delete для таблиц с ON COMMIT DELETE ROWS; при выполнении commit временная таблица будет очищаться также, как и при truncate table) • ссылочная целостность (on update cascade, on delete cascade) Изменения в подсистеме словного индексирования • скорость построения индекса возросла более чем в 2 раза! • скорость поиска возросла 1.5 раза • возможность построения индекса в UNICODE • расширена поддержка форматов документов: • • • • • • • WinWord (95,97/2000/XP/2003); EXEL (95 и выше), PowerPoint (все); PostScript (но достаточно формально); PDF (все версии с поддержкой восточных языков); RTF; XML, HTML (с UNICODE и в однобайтовых кодировках); text (с UNICODE и в кодировках ASCII, ANSI и koi8)… • в будущем: • фразовый поиск с учётом расстояния между словами • морфология (поддержка словаря словоформ) REAL TIME и не только… поддержка QNX 6.x IN-MEMORY таблицы • • Можно создать как бы копию (slave) существующей таблицы (master) в памяти и работать с ней, как с самостоятельной таблицей. При старте базы, slave-таблица может автоматически отображаться в память, а при завершении работы сохраняться в master. CREATE SLAVE TABLE Slave-таблица FOR Master-таблица [[NO] AUTOSAVE] [[NO] AUTOLOAD]; SAVE Slave-таблица; /* Сохранить изменения Slave-таблицы */ RESTORE Slave-таблица; /* Восстановить Slave-таблицы из Master-таблицы */ • AUTOSAVE – автоматически сохранять slave-таблицу при shutdown, по умолчанию - не сохранять. • AUTOLOAD – автоматически активизировать slave-таблицу при старте системы, по умолчанию - не активизировать. … in-memory • • • страницы данных slave-таблиц не конкурируют за место в основном буферном пуле и не мешают другим, а размещаются в отдельной области памяти и никогда не вытесняются на диск; не участвуют в транзакциях, т.к. ставится единственная задача – добиться максимальной скорости; при любом сбое, содержимое slave-таблицы снова загружается из master-таблицы… Конечно же, при сбое все изменения будут потеряны. Однако, СКОРОСТИ ради… Исследования… • не останавливающийся рост спроса на OLAP-системы • эксперимент по созданию ROLAP-ядра: – OLAP-система должна обеспечивать постоянную производительность при построении отчётов; при увеличении размерности или объёма данных не должно происходить существенное падение производительности. – алгоритмы оптимизации обработки операций CUBE, ROLLUP, GROUPING SETS – оптимизация запросов, содержащих агрегатные функции Оптимизация запросов, содержащих агрегатные функции • агрегирование в SELECT-предложении; • агрегирование во FROM-предложении; • агрегирование в WHERE-предложении; • – в коррелированных подзапросах; – в подзапросах без внешних ссылок; агрегирование в HAVING-предложении. ВОЗМОЖНЫЕ ПУТИ ВЫЧИСЛЕНИЯ АГРЕГАТНЫХ ФУНКЦИЙ SELECT Time, Region, Department, Model, SUM(Profit) FROM Sales GROUP BY CUBE(Time, Region, Department, Model); Time Time, Region Region Department Time, Department Time, Region, Department Time, Region, Department, Model Region, Department, Model Region Region, Department Model Time, Model Time Region, Model Time, Region, Model Time, Region Time, Department, Model Department, Model СРАВНЕНИЕ ЗАПРОСОВ К ТАБЛИЦЕ С МИЛЛИОНОМ ЗАПИСЕЙ SELECT …, SUM(amount) WHERE Table_Id > 600 FROM Table1000000 GROUP BY CUBE(…); 350 300 250 Время выполнения 200 150 100 50 0 1 2 3 4 5 6 Oracle 2,7 10,5 30,5 56 124,8 340,8 Экспериментальное ядро 4,2 8,9 11,1 11,8 12,5 12,57 Число переменных в CUBE СРАВНЕНИЕ ЗАПРОСОВ К ТАБЛИЦЕ С МИЛЛИОНОМ ЗАПИСЕЙ SELECT …, SUM(Atr1), MIN(Atr2), MAX(Atr2) FROM Table WHERE Table_Id >600 GROUP BY CUBE(…); 140 120 100 Время выполнения 80 60 40 20 0 Oracle Экспериментальное ядро 1 2 3 4 5 3,5 11,83 35,28 62,34 132,5 5,01 9,28 10,61 12,24 37,43 Число переменных в CUBE СУБД ЛИНТЕР для государственных структур • ЗАО НПП «РЕЛЭКС» имеет лицензии на разработку, производство и ремонт средств вооружений и военной техники (ВВТ) • лицензию ФСБ РФ на осуществление работ с использованием сведений, составляющих государственную тайну • на предприятии внедрена и сертифицирована система качества, соответствующая стандарту ГОСТ Р ИСО 9001 • СУБД ЛИНТЕР сертифицирована Государственной Технической комиссией при Президенте РФ на соответствие 2 классу защиты информации от несанкционированного доступа • многолетний опыт успешных сертификаций в отраслевых министерствах и ведомствах СУБД ЛИНТЕР для государственных структур МНОГОПЛАТФОРМЕННОСТЬ Работа в режиме реального времени ПОВЫШЕННАЯ СЕКРЕТНОСТЬ НАДЁЖНОСТЬ Простота обучения и обслуживания Большой задел уже работающих на ЛИНТЕР систем и оборудования Отечественная разработка, обслуживание и развитие Мы работаем для Вас ! • поддержка всей линейки СУБД ЛИНТЕР (версий 5.х, 6.0, 6.х) позволяет нашим клиентам экономить время и средства на обновление системного и прикладного программного обеспечения • СУБД ЛИНТЕР – хорошее решение для: – автоматизации мелких и средних предприятий; – встроенных систем и систем реального времени; – отказоустойчивых систем «высокой готовности», в т.ч. реального времени; – систем корпоративной безопасности; – информационных, справочных, поисковых систем (в т.ч. на read-only носителях)… • простая и гибкая лицензионная политика Мы открыты к сотрудничеству • Сотрудничество с разработчиками прикладных систем идёт на пользу не только его участникам, но, что самое важное – конечным пользователям, которые получают более качественные продукты, отвечающие их требованиям • мы всегда открыты к сотрудничеству с разработчиками как прикладных, так и системных решений Это всегда хорошо! Это всегда обогащает не только партнёров, но и пользователей. Ради которых, собственно, мы все и работаем. Мы открыты к сотрудничеству Плоды сотрудничества: – некоторые модули подсистемы КСЗ; – функции реального времени; – горячее резервирование; – подсистема полнотекстового поиска; – in-memory таблицы и т.д… Мы стремимся быть открытыми и по отношению к государству, как гаранту качества. НПП «РЕЛЭКС» тратит достаточно много ресурсов на сертификацию продуктов и качества нашей работы. Спасибо за внимание! Вопросы? • • • • www.relex.ru ЗАО НПП «РЕЛЭКС» Тел./факс: (0732) 711-711 г. Воронеж, ул. 20 лет Октября, 119