powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопросы старого ораклиста
7 сообщений из 7, страница 1 из 1
Вопросы старого ораклиста
    #32128657
non
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За плечами много проектов на Oracle. Сейчас все чаще попадаются очень "малобюджетные" проекты, где даже Personal Oracle 9i (со всей известной мощностью Oracle) и стоимостью 400$ для заказчика принципиален.
Сейчас смотрю в сторону эхотага. Поэтому имею к местным гуру следующие специфические вопросы (может есть люди которые обе этих СУБД юзают) :

1. Насколько идеологически близки эти две СУБД в плане реализации?
2. Есть ли тут возможноcность писать на PostgreSQL хранимые процедуры на PL/SQL (или насколько местный язык на него похож?) или на Java?
3. Есть ли возможность реплицироваться с Oracle?
4. Насколько развиты компоненты для повышения производительности?
5. Насколько хорошо поддерживается стандарт SQL99?
6. Что Вам лично не особо нравится в этой СУБД? И как эти неудобства минимизируются в предрелизных версиях?
7. Какие есть приятные фичи, не имеющие достаточного развития в других СУБД?
8. Есть ли еще хороший русский форум и сайт по этой СУБД?

Заранее спасибо, буду благодарен за обстоятельные ответы
...
Рейтинг: 0 / 0
Вопросы старого ораклиста
    #32128905
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без претензий на гуру :) Но администрировал сервер на 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 появилась ссылочка "по-русски", но проект еще в зачаточном состоянии.
...
Рейтинг: 0 / 0
Вопросы старого ораклиста
    #32128942
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень ёмко и всё по делу. (Konrad молодец, спасибо)
к 2.
добавлю SmallTalk, C, C++, Perl, Python

к 8.
русского форума более не знаю, кто то упоминал о postgresql.ru

Отмечу хорошую поддержку маил-рассылки.
...
Рейтинг: 0 / 0
Вопросы старого ораклиста
    #32129050
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - просто удобная фича, но легко обойтись и без них.
...
Рейтинг: 0 / 0
Вопросы старого ораклиста
    #32129137
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил про такую приятную особенность.
Код: plaintext
Create Type 


С помощью которой можно создавать необходимые типы данных. Подробности в руководстве.
...
Рейтинг: 0 / 0
Вопросы старого ораклиста
    #32129213
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще одна неприятная особенность - сижу в транзакции, insert, update, delete, никого не трогаю. Допускаю опечатку, получаю сообщение об ошибке, и на все последующие уже синтаксически верные запросы - ответ: "NOTICE: current transaction is aborted, queries ignored until end of transaction block". На этом этапе единственное, что postgres позволяет сделать - это rollback. Очевидно, что после rollback-а всю транзакцию надо начинать сначала, включая те запросы, которые я правильно набрал перед тем, как допустить опечатку.

Можно ли заставить постгрес реагировать на подобные ошибосные запросы внутри транзакции по-другому - так, например, как делает оракл - игнорировать их и не прерывать транзакцию?
...
Рейтинг: 0 / 0
Вопросы старого ораклиста
    #32133859
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Create Type

и create language :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопросы старого ораклиста
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]