|
Вопросы старого ораклиста
|
|||
---|---|---|---|
#18+
За плечами много проектов на Oracle. Сейчас все чаще попадаются очень "малобюджетные" проекты, где даже Personal Oracle 9i (со всей известной мощностью Oracle) и стоимостью 400$ для заказчика принципиален. Сейчас смотрю в сторону эхотага. Поэтому имею к местным гуру следующие специфические вопросы (может есть люди которые обе этих СУБД юзают) : 1. Насколько идеологически близки эти две СУБД в плане реализации? 2. Есть ли тут возможноcность писать на PostgreSQL хранимые процедуры на PL/SQL (или насколько местный язык на него похож?) или на Java? 3. Есть ли возможность реплицироваться с Oracle? 4. Насколько развиты компоненты для повышения производительности? 5. Насколько хорошо поддерживается стандарт SQL99? 6. Что Вам лично не особо нравится в этой СУБД? И как эти неудобства минимизируются в предрелизных версиях? 7. Какие есть приятные фичи, не имеющие достаточного развития в других СУБД? 8. Есть ли еще хороший русский форум и сайт по этой СУБД? Заранее спасибо, буду благодарен за обстоятельные ответы ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2003, 08:26 |
|
Вопросы старого ораклиста
|
|||
---|---|---|---|
#18+
Без претензий на гуру :) Но администрировал сервер на Postgres, сейчас только-только осваиваюсь с Oracle. 1. Насколько идеологически близки эти две СУБД в плане реализации? Postgres - многопроцессная система. На эффективную работу под win с его потоками не рассчитан. Зато идеально заточен под linux. Изначально интернет-ориентированная СУБД. Oracle - платформы WinNT, Linux. Не располагаю сведениями, касательно оптимизации oracle под потоки или процессы. Oracle позиционируется как кроссплатформенная и мультизадачная СУБД, там больше инструментов для организации клиентской части, сервера приложений и т.п. Однако сходств, как мне кажется, больше, чем различий :) 2. Есть ли тут возможноcность писать на PostgreSQL хранимые процедуры на PL/SQL (или насколько местный язык на него похож?) или на Java? Да, Postgres поддерживает хранимые процедуры (в отличие, скажем, от MySQL). Есть возможность писать как на PL/SQL, так и на PL/PGSQL. Синтаксическая реализация с процедурами Oracle довольно схожая. Есть еще и tcl. 3. Есть ли возможность реплицироваться с Oracle? Из существующих систем репликации: PGReplication (Postgres-R) Project, The Horus Project, Emsemble DRAGON DBBalancer PostgreSQL Replicator eRServer DBMirror (./contrib/dbmirror) Usogres Rserv (./contrib/rserv) Вероятно, репликация с Oracle не представляет особых трудностей. 4. Насколько развиты компоненты для повышения производительности? Postgres есть опция запуска с ключом --fast для повышения производительности. 5. Насколько хорошо поддерживается стандарт SQL99? Наиболее близкий к ANSI SQL из свободно распространяемых СУБД. 6. Что Вам лично не особо нравится в этой СУБД? И как эти неудобства минимизируются в предрелизных версиях? Неудобно регулярно делать сжатие таблиц (VACUUM). В Postgres до последнего времени не была автоматизирована процедура удаления свободных промежутков, оставшихся после вставки, удаления данных. Так же существенный пока недостаток - отсутствие механизма горячего backup'а. Утешиться можно лишь тем, что другие open source СУБД также пока не могут похвастаться этим. 7. Какие есть приятные фичи, не имеющие достаточного развития в других СУБД? Транзакции, хранимые процедуры, вложенные запросы, подзапросы, внешние ключи, представления, триггеры, объединения, полные связи, ограничения, курсоры, R-деревья, наследование таблиц, расширяемая система типов - это преимущества данной СУБД перед другими СУБД с открытым кодом. 8. Есть ли еще хороший русский форум и сайт по этой СУБД? Из русских форумов хорош на phpclub.net. Русскоязычной документации в достаточном объеме в сети нет. Правда, не так давно на официальном сервере postgres.org появилась ссылочка "по-русски", но проект еще в зачаточном состоянии. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2003, 12:00 |
|
Вопросы старого ораклиста
|
|||
---|---|---|---|
#18+
Очень ёмко и всё по делу. (Konrad молодец, спасибо) к 2. добавлю SmallTalk, C, C++, Perl, Python к 8. русского форума более не знаю, кто то упоминал о postgresql.ru Отмечу хорошую поддержку маил-рассылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2003, 12:28 |
|
Вопросы старого ораклиста
|
|||
---|---|---|---|
#18+
6. Что Вам лично не особо нравится в этой СУБД? И как эти неудобства минимизируются в предрелизных версиях? Когда переходили с Оракла на Постгрес, натолкнулись на такие грабли: Постгрес передает данные результата запроса от сервера к клиенту не по частям, как Оракл, а целиком. Это обозначает например, что при запросе из psql-я "select * from big_table" процесс psql может съесть МНОГО оперативной памяти, в зависимости от размера big_table; недавно отожрал 1.5G, после чего psql пришлось прибить. И причина не в плохо написанном клиенте psql, а в API сервера. Решение существует - брать данные не напрямую, а через курсоры (declare cursor,..). Мы работаем с базой в основном через перл, поэтому пришлось написать модуль, внутри которого select-ы осуществляются посредством курсоров. Выдержка из perldoc DBD::Pg: Although PostgreSQL has a cursor concept, it has not been used in the current implementation. Cursors in PostgreSQL can only be used inside a transaction block. Because only one transaction block at a time is allowed, this would have implied the restriction, not to use any nested SELECT statements. Hence the execute method fetches all data at once into data structures located in the frontend application. This has to be considered when selecting large amounts of data ! Также с доступом к другим базам по-моему были проблемы. Не знаю, решены они сейчас или нет. Мы слили все таблицы из разных схем в одну базу с различными префиксами. :( 7. Какие есть приятные фичи, не имеющие достаточного развития в других СУБД? Используем set returning fuctions и table functions. Хотя наверное необходимость в такого рода прибамбасах возникает в редком числе задач. :) SRF по-моему нет в других БД. TF - просто удобная фича, но легко обойтись и без них. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2003, 14:18 |
|
Вопросы старого ораклиста
|
|||
---|---|---|---|
#18+
Вспомнил про такую приятную особенность. Код: plaintext
С помощью которой можно создавать необходимые типы данных. Подробности в руководстве. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2003, 15:28 |
|
Вопросы старого ораклиста
|
|||
---|---|---|---|
#18+
Еще одна неприятная особенность - сижу в транзакции, insert, update, delete, никого не трогаю. Допускаю опечатку, получаю сообщение об ошибке, и на все последующие уже синтаксически верные запросы - ответ: "NOTICE: current transaction is aborted, queries ignored until end of transaction block". На этом этапе единственное, что postgres позволяет сделать - это rollback. Очевидно, что после rollback-а всю транзакцию надо начинать сначала, включая те запросы, которые я правильно набрал перед тем, как допустить опечатку. Можно ли заставить постгрес реагировать на подобные ошибосные запросы внутри транзакции по-другому - так, например, как делает оракл - игнорировать их и не прерывать транзакцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2003, 16:19 |
|
|
start [/forum/topic.php?fid=53&fpage=366&tid=2008233]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 232ms |
total: | 362ms |
0 / 0 |