|
Sybase
|
|
|
|
|
Продукты
|
|
|
|
|
Сообщества
|
|
|
|
|
Меню
|
|
|
|
|
Вход
|
|
|
|
|
Рассылка
|
|
|
|
|
Статистика
|
|
|
|
|
Статья на тему "Почему я выбрал ASA ?"
|
Статья на тему "Почему я выбрал ASA ?"Почему я выбрал ASA 9
1. Низкая стоимость (указаны прямые цены производителя, у представительств могут отличаться)
1.1. сервер 500$
1.2. лицензия на подключение 90$
1.3. лицензия на камень 1500$
1.4. золотой диск 5000$ (требует уточнения цена и кол-во инсталяций с него)
1.5. бесплатная Developer Edition
2. Низкие аппаратные требования
2.1. Работа начиная с P1 4мб RAM
2.2. Малые затраты на подключения (4кб на подключение)
3. Возможность использования как встроенного сервера
3.1. Размер самого движка сервера 5 мб (2 мб в сжатом виде)
3.2. Наличие локального и сетевого движка СУБД
3.3. Наличие готовых инсталляционных пакетов под InstallShield и MSI
3.4. Наличие полной документации по включению в собственные инсталляции
4. Нулевое администрирование
4.1. Автосбор и автокоррекция статистики во время выполнения запросов
4.2. Эвристический анализатор планов запросов оптимизатора с автосбором лучших планов запросов и их кэшированием в RAM и самой СУБД для быстрого перезапуска БД
4.3. Поддержка на уровне диалекта WatcomSQL событий (EVENT), позволяющих прописать скрипты автоматических администраторских действий на различные события сессий, БД и СУБД или по расписанию
4.4. Поддержка на уровне диалекта WatcomSQL множества операторов администрирования и управления БД (START/STOP DB, BACKUP/RESTORE, VALIDATE, хранимые процедуры получения распределения статистики, дефрагментации, планов запросов, нагрузки сервера и т.д.)
4.5. Поддержка внешними утилитами множества функций администрирования (создания скриптов полной перезагрузки структуры и данных БД в новую БД, резервное копирование, проверка БД, и т.д.)
4.6. Поддержка на уровне диалекта WatcomSQL оператора калибровки сервера к текущей конфигурации машины (ALTER DATABASE CALIBRATE), собирающего статистику, в дальнейшем учитываемую при расчетах затрат в планах запросов
4.7. Мощный и интеллектуальный оптимизатор запросов с поддержкой множества алгоритмов соединений и обработки информации и высокой скоростью построения планов запросов и возможностью регулировать их скорость/качество построения (от 0 до 15 уровней, по умолчанию выставлен 9 уровень, обеспечивающий качественное и быстрое построение планов запросов)
4.8. Возможность влиять на производительность и соответствия стандартам через множество настроек базы данных и сервера
5. Богатая функциональность диалекта WatcomSQL и возможностей проектирования БД
5.1. Триггера BEFORE/AFTER FOR EACH ROW/STATEMENT, с возможностью указания порядкового номера выполнения (ORDER) и условия на срабатывание триггера (WHEN)
5.2. Пользовательские функции с такой же функциональностью, как и ХП
5.3. Хранимые процедуры с возможностью их использования в запросах (SELECT * FROM StoredProcedure())
5.4. Пользовательские события (EVENT), позволяющие сессии в параллейных автономных сессиях выполнять различные действия
5.5. Поддержка пользовательских типов (DOMAIN) на всех уровнях (от типов для полей таблиц до переменных в ХП)
5.6. Поддержка каскадных обновлений и удалений, а так же отложенных проверок целостности на COMMIT для FOREIGN KEY (CHECK ON COMMIT)
5.7. Полноценная реализация политики прав (группы, пользователя, интегрированные логины, права на работу с объектами БД и т.д.)
5.8. Полноценная поддержка работы с форматом XML (XQuery, множество функций обработки)
5.9. Возможность организации доступа к СУБД через веб-сервисы, реализуемые на WatcomSQL как RAW, XML, HTML, SOAP, DISH, где СУБД становиться веб-сервером, с поддержкой всех основных функций веб-сервера (get/post, обработка HTML, организация выполнения хранимых процедур через веб-сервисы и т.д.)
5.a. Поддержка собственных видов соединений таблиц в запросах KEY JOIN (автоматическое соединение по полям FOREIGN KEY) и LATERAL (внутреннее соединение, например для каждой записи таблицы вызвать ХП с передачей для нее параметрами полей таблицы или для организации перевода в табличное представление данных формата XML, хранящихся в BLOB-ах)
5.b. Поддержка Common Table Expression и рекурсивных запросов
5.c. Поддержка OLAP функций (GROUPING SETS, ROLLUP, CUBE, Rank functions, Reporting functions, Window functions)
5.d. Поддержка сессионных глобальных временных таблиц (CREATE GLOBAL TEMPORARY TABLE) с возможностью создания на них полноценных триггеров
5.e. Поддержка локальных временных таблиц (DECLARE LOCAL TEMPORARY TABLE)
5.f. Поддержка не зависящих от транзакции глобальных и локальных временных таблиц (NOT TRANSACTIONAL)
5.1.0. Поддержка глобальных сессионных переменных (CREATE VARIABLE)
5.1.1. Динамический SQL без ограничений, позволяющий выполнить любой скрипт размером до 2 гб
5.1.2. Поддержка обработки ошибок на уровне исключений (EXCEPTION)
5.1.3. Поддержка быстрой выгрузки и загрузки данных CSV (UNLOAD/LOAD TABLE)
5.1.4. Поддержка области видимости переменных в блоках (BEGIN ... DECLARE ... END)
5.1.5. Поддержка функций криптографии и компрессии
5.1.6. Поддержка работы с удаленными серверами через ODBC/JDBC в виде прокси-таблиц и прокси-ХП, оптимизация запросов к удаленным серверам исходя из возможностей удаленного сервера (автоматическое определение возможностей и опции для ручной настройки)
5.1.7. Поддержка расширенных хранимых процедур на C/Java
5.1.8. Поддержка механизма работы СУБД на КПК (Ultralite)
5.1.9. Поддержка размера блобов и переменных до 2 гб
5.1.a. Поддержка GUID (UNIQUEIDENTIFIER)
5.1.b. Поддержка нарастающей (identity) и сквозной нумерации (global increment)
5.1.c. Поддержка временных сессионных опций БД (SET TEMPORARY OPTION)
5.1.d. Возможность перевода сессии на выделенный уровень (DEDICATED_TASK option) для сбора статистики и администрирования загруженного сервера путем выделения резервных ресурсов
5.1.e. Возможность перевода сессии в фоновый режим работы (BACKGROUND_PRIORITY option)
5.1.f. Возможность поссылки сообщений клиенту, в лог, консоль сервера и другим сессиям (MESSAGE)
5.2.0. Возможность остановки работы сессии на определенное время, по таймеру или до получения сообщения от указанной сессии (WAITFOR)
5.2.1. Поддержка кластерных индексов
5.2.2. Поддержка онлайн-дефрагментации таблиц
6. Блокировочная транзакционная модель
6.1. Поддержка 0-3 уровней изоляции
6.2. Позаписная блокировка при выполнении запросов на уровнях 1-2
6.3. Постраничная блокировка на уровне 3
6.4. Использование специальных уровней блокировок, позволяющих не блокировать вставку записей, при использовании на нее запросов уровня 3 и наличии primary или unique constraint/index
6.5. Поддержка точек сохранения (SAVEPOINT, RELEASE SAVEPOINT, ROLLBACK TO SAVEPOINT)
6.6. Поддержка откатов внутри триггеров (ROLLBACK TRIGGER)
6.7. Поддержка атомарных блоков (BEGIN ATOMIC ... END)
6.8. Поддержка эксклюзивной позаписной блокировки для запросов (XLOCK)
6.9. Поддержка блокировки всей таблицы (LOCK TABLE)
7. Удобная среда разработки и администрирования (Sybase Central + ISQL + внешние утилиты/визарды)
7.1. Дизайнеры и визарды таблиц, представлений, процедур и других объектов БД
7.2. Редактор кода скриптов с подсветкой и построителем запросов
7.3. Графический план запросов и поддержка на уровне WatcomSQL виртуальных индексов, не создающих физические индексы, но позволяющие по плану запроса увидеть, как бы его использовал оптимизатор запросов
7.4. Консультант индексов по указанному запросу или потоку запросов на все/указанные сессии
7.5. Профайлер хранимых процедур, функций и триггеров с возможностью просмотра кол-ва вызовов и времени выполнения всех выполненных на время запуска профайлера скриптовых объектов с детализацией процента и времени выполнения построчно для каждого скрипта
7.6. Отладчик с поддержкой точек останова, слежения за переменными, стэком выполнения и возможностью выполнять запросы и смотреть их план во время точки остановки в пределах текущего состояния сессии
7.7. Performance Monitor, позволяющий собирать различные статистические параметры работы сервера и базы данных
7.8. Визуальный Просмотр текущих подключений к серверу и его БД
7.9. Визуальный просмотр фрагментации и распределения таблиц и индексов по табличным пространствам БД
7.a. Визуальный просмотр текущих блокировок сессий в БД
7.b. Множество визардов (создание БД, перезагрузка БД, проверка БД, резервное копирование и восстановление, трансляция лог-файла в SQL, изменение настроек лог-файла, перенос БД на мобильное устройство, миграция БД с СУБД других производителей и т.д.)
8. Обеспечение надежности и безопасности хранение информации
8.1. Поддержка зеркалирования файлов БД и лога
8.2. Поддержка контрольных сумм страниц БД (CHECKSUM)
8.3. Поддержка онлайн полных и инкрементных бакупов и полных срезов БД для всех закоммиченных транзакций
8.4. Поддержка восстановления последней информации накатыванием лог-файла на БД или бакуп
8.5. Поддержка криптографии БД, лог-файла, временных файлов и протоколов передачи данных по 128-разрядному ключу (AES/AES_FIPS)
8.6. Поддержка работы сжатых БД (compressed) в режимах read-only с работой через write-file
8.7. Ведение точек сохранения (CHECKPOINT) в БД и лог-файле, с автоматическим откатом незавершенных транзакций и сверки состояния активных точек БД и лог файла на момент запуска сервера
8.8. Ведение аудита БД
9. Поддержка 2 видов оффлайн репликаций
9.1. Поддержка двусторонней репликации по лог-файлу между серверами ASA с любым уровнем вложенности механизмом SQL REMOTE
9.2. Поддержка двусторонней репликации срезом данных (snapshot) между сервером ASA и консолидированной СУБД (ASA, ASE, Oracle, DB2, MSSQL) механизмом MobiLink
9.3. Возможность написания на репликации триггеров и событий обработки конфликтов и хода репликации
9.4. Поддержка множества протоколов транспортной среды передачи данных (FILE, FTP, SMTP, MAPI, VIM)
9.5. Поддержка условий подписки для организации разделения потока информации по узлам
10. Технические характеристики
10.1. Кроссплатформенность с единым форматом хранения БД для всех ОС (Win/Unix/Linux/Solaris/Novell/Mac) кроме Windows CE, где БД конвертируется в спец формат
10.1. Поддержка параллейного сканирование таблиц и индексов для RAID
10.2. Поддержка 64-битовых серверов и ОС
10.3. Поддержка больших объемов памяти (для Windows32 через AWE)
10.4. Использование только ограничений ОС в качестве собственных ограничений
10.5. Кроссплатформенность средств разработки и администрирования (Java-Swing)
10.6. Поддержка почти всех языков в БД и настройка сообщений сервера и его ошибок на любой из поддерживаемых языков
10.7. Поддержка множества протоколов доступа к БД (ODBC, OLEDB, Native, ADO.NET Native, JDBC, JConnect Native, XML)
10.8. Поддержка автоматического выбора типов индексов (B-Tree, Compressed, ...) в зависимости от характеристик полей таблицы
10.9. Поддержка разных размеров страницы для базы данных (1, 2, 4, 8, 16 и 32 кб страницы), позволяющая организовывать базы данных от небольших, с минимальными требованиями к памяти сервера, до больших, с хранением в базах данных бинарной инфорации (картинки, документы и т.д.)
11. Легкость освоения
11.1. Совместимость на уровне TSQL c MSSQL/Sybase ASE (второй диалект для ASA)
11.2. Легкая архитектура, где сервер - это сервис, на котором крутяться БД, в каждой из которых лежит пользователи и настройки (т.е. в данном случае сервер не требует создания и сопровождения таких БД, как MasterDB или TempDB)
11.3. Большая функциональность WatcomSQL и мощность внутренних автоматических механизмов оптимизации и администрирования не требует изучения множества нюансов программирования и настроек администрирования (где администраторами могут выступать просто опытные пользователи)
11.4. Удобство проектирования и администрирование единой среды Sybase Central позволяет быстро ее освоить и начать работу, без поиска и освоения тулзов сторонних производителей (да и нет их, так как конкурировать с родной средой сложно)
11.5. Полная и детализированная документация в инсталляции с подробным описанием принципов и механизмов проектирования и администрирования в форматах CHM и PDF с множеством примеров, а так же идущие скрипты и базы примеров облегчают и ускоряют изучение
11.6. Полная кроссплатформенность БД и Sybase Central позволяет разработчику и администратору БД не задумываться о том, на какой ОС он работает в текущий момент
12. Техническое сопровождение
12.1. Бесплатные ежемесячные EBF (ExpessBugFix)
12.2. Бесплатные консультации и обсуждения багов и новой функциональности вживую с разработчиками, менеджерами и тестерами ASA
12.3. Бесплатное CASE средство заполнения заявки на исправление ошибки или добавление функциональности c возможностью диалога с сотрудником iAnywhere, взявшего на себя проверку заявки (исправления в зависимости от критичности проходят в пределах 1-3 месяцев)
12.4. Бесплатное обновление сервис-паков (например, с 9.0.1 на 9.0.2)
12.5. Добавление возможностей и функциональности различных аспектов СУБД не только в сервис-паке, но и ежемесячных EBF
Наиболее частая область применения:
1. Мобильные решения, где есть множество мобильных сотрудников с ноутбуками и КПК и консолидированная БД на сервере
2. Удаленные решения, где есть множество удаленных точек, не соединенных выделенными каналами с любым уровнем вложенности уровней и движением информации от главного к подчиненным узлам
3. Тиражные решения, предназначающиеся для массовой продажи пользователям, требующие встроенного СУБД с нулевым/минимальным уровнем администрирования
4. Интернет решения, где есть один или множество сайтов, соединенных каналами, ведущими параллейную работу или организующие услуги веб-сервисы
5. Решения для сбора информации (от сбора информации по датчикам до биллинговых систем)
6. Решения для сложной обработки информации (реализация сложных алгоритмов расчетов бизнес-логики на уровне ХП)
Сейчас я базируюсь на ASA по пунктам 2, 3, 6 , скоро ASA будет задействована по пунктам 1 и 4.
Самая большая БД, известная мне на ASA в СНГ:
биллинговая система (сейчас в архиве порядка 100 млн записей)
Самая тяжелая бизнес-логика расчетных алгоритмов средствами ASA:
моя собственная - расчет заработной платы (для 1000 сотрудников расчет зп составляет при сервере P4 2,4 с выделенными под СУБД 32мб RAM порядка 4 сек)
Самая разветвленная репликация на ASA известная мне:
Украинский Нацбанк (порядка 400 точек), правда сейчас на Украине разворачивается страховое приложение, имеющее 700 точек и 5 уровней вложенности двусторонней репликации
Самый мощный сервер, использованный под ASA известный мне:
Xeon 11gb RAM
Самая распространенная система за рубежом, известная мне:
стоматологическая медицинская система, работающая в Австралии, США, Канаде, России, Китае, Англии и возможно где-то еще
Самый мощный удачный OLTP тест на производительность ASA, известный мне:
1300 активных подключений на 30 млн. записей и 3900 конкурирующих подключений на 18гб БД
Что нет в функционале ASA в отличие от других СУБД, но что могло бы пригодиться:
1. INSTEAD OF триггеров (можно организовать через глобальные временные и триггеры на них)
2. Поддержки секционированных представлений (придется организовывать ручками)
3. Поддержки партиций таблиц (придется организовывать ручками)
4. Распараллеливания запроса по процессорам
5. Бит-мап индексов
6. Возможности локального лечения физических проблем БД (DBCC) (только перезагрузкой БД или поднятием бакупа с накаткой лог-файла)
7. Возможности онлайн-сжатия размера файла БД (SHRINK) (только перезагрузкой БД)
8. Использование оптимизатором при сканировании на таблицу более одного индекса
Что меня устраивает в ASA для моего круга поставленных задач:
Все
Что меня не устраивает в ASA для моего круга поставленных задач:
Ничего (как ни странно)
Почему я выбрал ASA:
Потому что она ценой, функциональностью и характеристиками полностью подходит под мой круг задач, позволяет мне быстро включать в работу с ней специалистов других СУБД и эффективная и быстрая работа ее разработчиков позволяет мне не задумываться над багами и нехватающими фичами - она развивается гораздо быстрее, чем я их нахожу или же придумываю что нужно.
|
Дата публикации: Monday 27 March 2006 18:57:08 Материал прочитан: 21006 раз(а) [ Назад ] |
|
|
|
|
|
|