Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8 9 10 .. 83   вперед  Ctrl
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
2 SergSuper

Я его не игнорирую, я на него ответил - о том, почему из в общем-то равноправных подходов был выбран именно этот - вопрос к разработчикам (авторам) системы. Мне эта проблема представляется аналогичной тому вопросу, какое - право- или левостороннее движение должно быть на дорогах???... В результате имеется и то и другое и реальные неудобства возникают только тогда, когда приходится пользоваться леворульными машинами на дорогах с левосторонним движением и наоборот.


ЗЫ. Читаю сейчас некоторые материалы, фраза оттуда не в бровь, а в глаз:

"Но окружающая действительность такова, что подавляющее большинство программистов мыслят сугубо конкретными категориями, а то и ещё хуже - категориями одной известной им из собственной практики конкретной реализации. Просто потому, что иначе - не умеют."
3 июн 03, 18:05    [220607]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Да-да!!
Стоит задуматься над тем, какого-же хрена до сих пор 2+2=4... Явная догма....
3 июн 03, 18:38    [220665]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
AI
Member

Откуда: Москва
Сообщений: 2817
2 ЦК

К сожалению, Вы все время пытаетесь использовать подмену понятий. Сначала говорите об одной операции, а потом переходите к двум разным операциям. А для этих двух операций правила разные. Результат - все математики ВЫНУЖДЕНЫ ввести приоритеты операций, чтобы в сложных выражениях все заданные правила (коммутативности, ассоциативности и т. д.) были действительны. Это не выбор правил дорожного движения и цвета погон. Это необходимость сохранения заданных элементарных свойств при усложнении выражений.
3 июн 03, 19:08    [220700]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Поясню...

ДпДрЧ

Что, непонятно?
А почему?
Да потому, что ...
"большинство программистов мыслят сугубо конкретными категориями, а то и ещё хуже - категориями одной известной им из собственной практики конкретной реализации. Просто потому, что иначе - не умеют"

Я же, в отличие от вас, умею мыслить по другому! и я так записал 2+2=4

Или, например, такая запись

2+2=3

Кто сказал, что это неправильно? Это потому что ...
"большинство программистов мыслят сугубо конкретными категориями, а то и ещё хуже - категориями одной известной им из собственной практики конкретной реализации. Просто потому, что иначе - не умеют"

Ну какие же вы все упертые неумехи! У меня знак "3" обозначает четыре.



Я же сказал, что я не спорю.

ЗЫ. Сравнивать операции численного и векторного сложения - это тоже маразм. В заблуждение , видимо, вводит то, что и в том и в ином случае используется слово "умножение" и (даже!) одинаковое обозначение. Ну что уж тут поделать, к сожалению "большинство программистов мыслят сугубо конкретными категориями, а то и ещё хуже - категориями одной известной им из собственной практики конкретной реализации. Просто потому, что иначе - не умеют" и, поэтому, пытаються сравнивать зеленое с круглым.
3 июн 03, 19:15    [220708]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
2 U-gene

Стоит задуматься над тем, какого-же хрена до сих пор 2+2=4... Явная догма....

Конечно. Могу доказать, например, что 2+2=11.



ЗЫ. В том, 10+10 может быть равно 100 вы же зеленой круглости не усматриваете, не так ли???

=========================

2 AI

Замечательный вывод о подмене понятий. Только автороство идеи "говорить об одном, а переходить к другому" принадлежит отнюдь не мне... Отлистайте, посмотрите, кто первый заговорил о маразме и "универсальных" идеях-то...



Ладно, умываю руки. Хотите считать, что десятичная система счисления - единственная в своем роде, а подход старшинства операций - слово свыше и все что этому противоречит есть ересь вселенская - и на здоровье... Я больше мешать не буду...
4 июн 03, 13:56    [221441]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД  [new]
c127
Guest
>реальные неудобства возникают только тогда, когда приходится пользоваться леворульными машинами на дорогах с левосторонним движением и наоборот

Не только.
Анекдот.
Муж возвращается с работы, поднимается из гаража, жена:
-Я так волновалась, только что по радио передали, что на нашем шоссе какой-то идиот несется по встречной полосе.

муж:
- Так если б один! Их там сотни!
== конец цитаты.

Еще проблемы возникают когда "забывают" сообщить, что обшепринятые правила почему-то изменены. Или пишут об этом мелким шрифтом на 215 странице документации.

Самое естественное объяснение ситуации по-моему это что без старшинства операций легче писать компилятор. Потом под это решение подводится серьезная теоретическая база. Ничего страшного, бывает, это классический подход: "Был выбран сплав висмута со свинцом, поскольку именно для него ожидаемый эффект должен был проявиться наиболее отчетливо". (Другого сплава у нас вообще не было).
(Физики шутят, ИНСТРУКЦИЯ ДЛЯ ЧИТАТЕЛЯ НАУЧНЫХ СТАТЕЙ).

Хуже, если создатели языка не знали о существовании других нотаций, но кто ж теперь разберется.
5 июн 03, 03:12    [222225]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
2 c127

Согласен
5 июн 03, 14:30    [222925]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
Еще ряд новостей.

1. Имеются триггеры. Причем, как Before, так и After. Всех тонкостей по поводу того, как они работают, я пока не знаю. Но сильно подозреваю, что идеолгоия примерно так же как в InterBase - триггер срабатывает на операцию с каждой отдельно взятой записью. То есть, при попытке вставить 100 записей одной SQL-командой произойдет 100 срабатываний триггера (200, если определены оба вида триггера After/Before). Если я правильно понял, то триггеры срабатывают ТОЛЬКО при операциях SQL. Таким образом, организовать лишь на триггерах механизмы гарантированной логической целостности не удастся (можно добавить записи используя НЕ SQL интерфейс, и триггер не сработает).

2. В COS маразм со старшинством операций не единственный. Он там живет вообще повсеместно. Как вы думаете, какой результат должна возвращать функция поиска подстроки "DE" в строке "ABCDEFG"? В COS результат равен 6, то есть позиция символа F, следующего за найденной подстрокой.
"Системные" методы объектов предваряются знаком процента %. Системные функции предваряются знаком доллара $. Среди системных функций имеется ряд функций, которые еще более "системные", нежели остальные системные функции. Они носят название Z-функций и предваряются кроме знака $ еще и буквой Z, например, функция $ZDate(). Я так и не понял, зачем столько разных обозначений системности.
Подобных отступлений от общепринятых правил просто море. Почти все команды имеют огромное количество вариантов записи. Разные варианты записи одной и той же команды решают совершенно разные задачи, но все равно это одна и та же команда. Как вам цикл FOR, состоящий из одного только слова "FOR"? Эквилибристика с различной функциональностью одних и тех же функций и команд направлена на то, чтобы их название можно было сократить до одной-двух букв. Естественно, букв алфавита не хватает, и в языке вынуждены реализовывать совершенно разную функциональность с помощью одной и той же команды (или одной и той же функции), записываемой в разных вариациях. С моей сугубо субьективной точки зрения эти усилия привели лишь к жуткому запутанному синтаксису. Для того, чтобы понять смысл производимых действий нужно, во-первых, расшифровать команду, состоящую из одной буквы. Во-вторых, посчитать в ней количество параметров и сверить их с длинной таблицей различных вариантов записи этой команды. Только после этого можно разобраться, что же в итоге делает эта команда.
Тем не менее, как я понял, вся эта маразматика оставлена лишь для совместимости с MUMPS, на котором COS и основан. В InterSystems, похоже, сами понимают, что COS очень далек от идеала. В частности в Cache Studio можно включить отображение длинных имен, и редактор покажет полные названия однобуквенных команд, так что напрягать мозги, вспоминая, S - это Set или Select уже не придется. В версии 5 можно вообще не использовать язык COS, а вместо него задействовать Cache Basic, в котором старшинство операций соответствует общепринятым представлениям, и вообще он сильно похож на обычный Basic.

3. Кроме маразма в COS я обнаружил забавные конструкции, которые в некоторых ситуациях позволяют довольно удобно решать задачи обработки строк и специальных структур, именуемых списками. Пример:
Присвоили переменной A строковое значение, в котором на самом деле имеется несколько частей, разделенных символом /
Set A="ABC/DEF/123/987/Qwerty"
Попросим показать нам 3-ю часть этой строки:
Write $Piece(A,"/",3)
123
Присвоим третьей части строки новое значение. Обратите внимание на способ записи, именуемый "левосторонним":
Set $Piece(A,"/",3)="New value"
Теперь выведем содержимое всей строки:
Write A
ABC/DEF/New value/987/Qwerty
Левосторонний способ записи применяется ко многим системным функциям, что является несколько непривычным, но, ИМХО, довольно удобным.
Вообще, MUMPS является безтиповым языком, в котором данные любых типов (даже числа) представляются в виде строк. В COS сделана попытка преодолеть ограничения MUMPS. В нем можно объвлять переменные, используя "классы типов данных" (например "%Integer). Более того, в настройках среды можно запретить использование необъявленных переменных.

3. Запустил скрипт для подсчета счастливых билетиков, предложенный SergSuper (спасибо ему огромное за этот универсальный метод сравнения эффективности ядра различных СУБД). В демо-версии Cache на компьютере с P4 1.8ГГц ОЗУ 256Мб данный скрипт отработал за 7.4 секунды. На том же самом компьютере в MS SQL Server он отрабатывает за 1.8 секунд. Правда, сразу должен оговориться, что сотрудники InterSystems меня заранее предупредили о преднамеренно заниженной производительности демо-версии Cache. Я отправил специалисту в InterSystems просьбу произвести подобный тест на полноценной версии Cache и сообщить мне результаты, но ответа пока нет.

Пока все. Колупаюсь дальше.
5 июн 03, 16:16    [223165]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Maksim UM
Member

Откуда: SPb
Сообщений: 432
2 Garya
1. см. методы %OnAfterSave, %OnBeforeSave...
4. Можно взглянуть на скрипт, который вы запускали на Cache?
5 июн 03, 17:12    [223285]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Проверил на oracle9.2 p3-800 Windows2000 Adv Server 512M. 0.04сек.
5 июн 03, 17:28    [223318]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
> 4. Можно взглянуть на скрипт, который вы запускали на Cache?

В принципе, скрипт можно было взять по ссылке, которую я привел, непосредственно из первоисточника. Но так и быть...
1. Создал класс T1, унаследованный от %Persistent со свойством V типа %Integer (БЕЗ ИНДЕКСОВ!!!)
2. Добавил в базу данных 10 записей, у которых значения V равны от 0 до 9.
3. Запустил запрос:
select count(*) from User.T1 x1, User.T1 x2, User.T1 x3, User.T1 x4, User.T1 x5, User.T1 x6
where x1.v + x2.v + x3.v = x4.v + x5.v + x6.v

У меня он выполнился за 7.4 секунды.
5 июн 03, 17:29    [223321]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
2 Al. Странный у тебя результат. Мой напарник (он в Oracle шарит) запускал на этой же машине в Oracle 9.2, получил результат 3.8 секунды. В общем и целом этот скрип быстрее отрабатывал на MS SQL Server, нежели на Oracle. Загляни в еще вот в эту ветку. Приведенные там результаты подтверждают мои слова. Ты на полном серьезе получил такой результат или просто на понт берешь? Кстати, сколько у тебя получилось счастливых билетиков (результат запроса)?
5 июн 03, 17:42    [223335]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
2 Garya

А что вы хотите этим скриптом померить-то, я чего-то никак не пойму???...
5 июн 03, 17:51    [223351]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
AI
Member

Откуда: Москва
Сообщений: 2817
create table t(i number(10));
insert into t values(0);
insert into t values(1);
insert into t values(2);
insert into t values(3);
insert into t values(4);
insert into t values(5);
insert into t values(6);
insert into t values(7);
insert into t values(8);
insert into t values(9);
commit;
select count(*) from t t1, t t2,t t3,t t4,t t5,t t6
where t1.i+t2.i+t3.i=t4.i+t5.i+t6.i;

COUNT(*)
----------
55252
5 июн 03, 17:54    [223353]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
> А что вы хотите этим скриптом померить-то, я чего-то никак не пойму???...
Эффективность реализации ядром операций JOIN SQL.

2 Al. А MS SQL Server 2000 у тебя имеется? Может быть у тебя процессор XEON? И вообще, есть ли какая-либо хитрость в настройке Oracle для того, чтобы на нем можно было получить такое время выполнения?
5 июн 03, 18:12    [223402]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
2 Al. Кажется, я понял, где твоя собака зарыта! Ты смотришь на время выполнения, выраженное не в секундах, а в минутах. Если перевести его в секунды, то получаются уже больше похожие на правду 2.4 секунды.
5 июн 03, 18:18    [223413]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
2 Maksim UM. А у Вас полноценная версия Cache? И, кстати, 5-я или 4-я? Сообщите пожалуйста, какие у вас получились результаты.
5 июн 03, 18:22    [223418]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Maksim UM
Member

Откуда: SPb
Сообщений: 432
2 Garya
У меня нормальная версия 5RC3.
Если делать этот тест, то тот же результат 7.4с
Машина П4 1.7Г 256Мб...
Но, этот тест ничего не показывает на мой взгляд...
У всех баз есть свои сильные и слабые стороны.
Попробуйте глянуть на генерируемую програму при запросе...
и попробуйте переписать на COS своим языком, вот тогда можно
сравнивать.
5 июн 03, 18:36    [223435]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
Вот цитата из статьи, которая распространяется вместе с диском с демо-версией Cache 5.

Известны случаи перевода в Cache’ сложных приложений, которые ранее работали под управлением реляционных СУБД. Например, один из партнеров InterSystems перевел на Cache’ биллинговую систему для операторов сотовой связи. Переход осуществлялся следующим образом: сначала существующее приложение с минимальными изменениями переносится под управление Cache’. Приложение на первом этапе работает с Cache’, так же как и с реляционной СУБД. Опыт показывает, что даже в этом случае, система начинает работать быстрее. Далее ряд операций был переписан, с использованием прямого способа доступа к БД. На этом этапе удалось увеличить производительность критических операций в десятки и сотни раз.

Еще одна цитата из презентации "Миграция с РСУБД", выложенной на сайте InterSystems:
Итог: Cache SQL
- Операции обновления быстрее, чем в РСУБД
- Запросы к БД при небольшом количестве пользователей +/-20%
- При увеличении количества пользователей сравнительные показатели существенно улучшаются.


На семинаре "Корпоративные базы данных 2003" было сказано, что даже простой параллельный перенос таблиц в Cache дает выигрыш в 3 раза по сравнению с Oracle. Я просто пытаюсь расставить точки над i. Если даже считать наиболее достоверной информацию из презентации, то разница между 7.4 сек и 1.8 сек как-то уж очень сильно не укладывается в -20%.
5 июн 03, 19:51    [223486]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
Ну пошло мерянье пиписьками...

Машина: {P-4 1.8Hhz, 1GB RAM}
Программа: 10 строчек. На том самом right-to-left изврате.
Вычисляет то же самое.
Результат:

55252
1.57894 sec.
5 июн 03, 19:51    [223488]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
ЗЫ. Ну а увеличив частоту проца в два раза, то и результат в полторы секудны тоже в два раза уменьшится...
5 июн 03, 19:53    [223492]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
Что это за right-to left изврат? Это СУБД, или просто язык программирования? Я полагаю, что на Ассемблере можно написать программу, которая эту задачу решит за время, трудно отличимое от абсолютного нуля.
5 июн 03, 20:05    [223500]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
Следовательно, сравнение не имеет смысла...


PS. "right-to left изврат" - это "нечто", что заводит объект (вектор размерности 10), джойнит его (вычисляет прямое произведение), суммирует и делает вычисление совпадающих элементов. Собс-но говоря можете его рассматривать как низкоуровневый язык СУБД в данном контексте.
6 июн 03, 11:23    [223911]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Garya
Member

Откуда: Москва
Сообщений: 33178
Блог
Сравнение имеет смысл, когда ты сравниваешь эффективность реализации одного и того же синтаксиса, решающего одни и те же задачи. Эффективность работы JOIN и WHERE являются определяющими для подавляющей часть SQL-запросов. Я сравниваю между собой инструменты, которые способны выполнять SQL-запросы над хранимыми данными.

Если же мы вообще говорим о том, как ЕЩЕ можно решить задачу со счастливыми билетиками, то вот вам скрипт на одном из самых тормозных языков алгоритмического программирования - конкретно, на VBA:
Public Sub Calc()

Dim S As Integer 'Счетчик цикла по сумме цифр
Dim X1 As Integer, X2 As Integer, X3 As Integer, X4 As Integer, X5 As Integer, X6 As Integer '
Цифры билетика
Dim N As Long
Dim Start As Double
Start = Time()
N = 0
For S = 0 To 729 '9*9*9
For X1 = 0 To 9
For X2 = 0 To 9
X3 = S - X1 - X2
If (X3 >= 0) And (X3 <= 9) Then
For X4 = 0 To 9
For X5 = 0 To 9
X6 = S - X4 - X5
If (X6 >= 0) And (X6 <= 9) Then N = N + 1
Next X5
Next X4
End If
Next X2
Next X1
Next S
Debug.Print "Результат="; N, "Время вычисления"; (CDbl(Time()) - Start) * 3600# * 24#; "сек"
End Sub

Взгляните на содержимое окна Immediate:
Calc

Результат= 55252 Время вычисления 0 сек
6 июн 03, 12:19    [224008]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД   [new]
Циничный Кот
Member

Откуда: Moscow / St. Petersburg
Сообщений: 6496
Да, кстати... Прогоните примерчик, только не с тремя, а с четырьмя цифирьками в каждой половинке. У меня получилось так (на той же конфигурации P4-1.8Hhz, 1GB RAM):

Ответ: 4 816 030
MSSQL: 202.92 sec.
Программка: 13.5253 sec.

Ну типа я в 15 раз быстрее сервера могу джойнить...
Алгоритмы, ес-сно, не менялись...

ЗЫ. Да, 6 цифирок все-таки "счастливее" 8и - у них 5.5% счастливых против 4.8%.
6 июн 03, 12:24    [224018]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8 9 10 .. 83   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить