Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 22 23 24 25 26 27 28 29 [30] 31   вперед  Ctrl
 Re: MS SQL > Oracle = True?  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
автор
а реализация циклами и прочее - как-то под другому. и именно это я хотел сказать. и ЭТО во всех книгах есть.


Ну если в книгах есть - процитируйте,pls.
31 янв 05, 10:38    [1286288]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
StalkerS
ну вообще-то, то, что вы истратите 300$, не будет гарантировать вам какой-то особый результат.

Безусловно, идиот без проблем профукает и на три-четыре порядка больше. Но у ораклоидов нет привычки закладываться на идиотов :)

StalkerS
В общем-то, я не особо сомневаюсь, что можно составить запрос, который будет парситься 20 мин. в оракл.

Мне будет весьма любопытно это увидеть. С тем комментарием, что этот запрос должно быть хоть как-то реально написать руками (сделать запрос, текст которого двадцать минут будет считываться с диска в оперативку и я могу :)
31 янв 05, 11:28    [1286474]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
andy st
Member

Откуда:
Сообщений: 899
c127
2 andy st
>ссылку,плз... или файл на мыло... буду премного благодарен.
Читайте внимательно мои посты, там это есть. У меня нет аргументов понятных человеку, утверждающему, что рекурсия не может быть реализована в виде цикла.

Мальцева, к сожалению в электронном виде я не нашел... если есть ссылка или файл - на мыло, если не лень.
и еще раз:
для рекурсивного алгоритма может быть реализован алгоритм на циклах, приводящий к тому же результату.
и этот новый алгоритм уже не будет называться рекурсивным.
у Вирта есть такое определение
"Объект называется рекурсивным, если он содержит сам себя или определен с помощью самого себя".
ГДЕ в алгоритме, реализованном циклами присутствует этот признак???
пример алгоритмов привести?
2Alexey Sh
я давал ссылку.
31 янв 05, 11:36    [1286510]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7004
softwarer
Мне будет весьма любопытно это увидеть. С тем комментарием, что этот запрос должно быть хоть как-то реально написать руками (сделать запрос, текст которого двадцать минут будет считываться с диска в оперативку и я могу :)


Напомнило одну вещь. Между баг-листами MySQL и InterBase гулял запрос вида select 1+1+...+1 from dual, который валил сервер на переполнении стека. Я тогда ради прикола проверил на других серверах. MSSQL 2000, как и ожидалось, обработал stack overflow и вернул соотв. код ошибки клиенту. Хотя, если верить доке, предыдущие версии тоже падали на таких вещах. Но Оракл удивил. Даже при увеличении значащей части запроса на порядок он все таки его выполнял. Но оооочень медленно, последняя моя попытка работала минут 15. Уж не знаю, во что у него внутрях превращается рекурсия ;-)))
31 янв 05, 11:42    [1286529]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
dimitr
вида select 1+1+...+1 from dual, который валил сервер на переполнении стека. ...... Уж не знаю, во что у него внутрях превращается рекурсия ;-)))

Хм. Я здесь не очень вижу рекурсию :). Я бы даже предположил, что вижу выражение, рассчитываемое на этапе парсинга :)

Пожалуй, это может завалить парсер, написанный рекурсивным спуском. Но такие парсеры вряд ли можно встретить в профессиональных продуктах. А тот же свертка-сдвиг должен отрабатывать такое абсолютно спокойно. Как ведет себя Оракл - сейчас посмотрю, может найду что-нибудь интересное.
31 янв 05, 11:56    [1286590]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7004
softwarer
Хм. Я здесь не очень вижу рекурсию :). Я бы даже предположил, что вижу выражение, рассчитываемое на этапе парсинга :)


Тут надо бы оговорить, кто что понимает под парсингом, но я не об этом :)

Грамматический парсинг-то проходит. Но последующая компиляция или выполнение уходят в рекурсию. Ведь тут бинарная операция, и мы имеем длиииинное несбалансированное дерево выполнения. По крайней мере, все известные мне сервера (кроме Оракла) обрабатывают такое рекурсивно.
31 янв 05, 12:07    [1286644]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
dimitr
Ведь тут бинарная операция, и мы имеем длиииинное несбалансированное дерево выполнения. По крайней мере, все известные мне сервера (кроме Оракла) обрабатывают такое рекурсивно.

Хм. Мне сходу вспоминается алгоритм "приоритетов" - если не ошибаюсь, описан в "книге дракона"; грубо говоря, это та же самая свертка-сдвиг. Рассматривается выражение a <op> b <op> c, выбирается более приоритетная операция, выполняется, результат подставляется вместо аргументов (т.е. свертка)...
31 янв 05, 12:26    [1286736]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7004
softwarer
Рассматривается выражение a <op> b <op> c, выбирается более приоритетная операция, выполняется, результат подставляется вместо аргументов (т.е. свертка)...


Это понятно. Но практически мы имеем, что только Оракл (предположительно) работает по такой схеме, в то время как остальные - рекурсивны. Не могу сказать, чтобы в реальной жизни это мешало, но экстремальные случаи тут нарвутся на ошибку. Хотя я бы предпочел про оракловый алгоритм узнать более определенно, для общего развития ;-)
31 янв 05, 12:33    [1286776]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
dimitr
Хотя я бы предпочел про оракловый алгоритм узнать более определенно, для общего развития ;-)

Похоже, я угадал с направлением. Завалить таким макаром оракла оказалось тоже несложно; потребовалось делать так: select 1+(1+(1+....)) from dual, то есть заставить его таки наращивать неразобранное, не давая сделать свертку.

Кроме того, стоит отметить, что общее время работы 100% приходилось на время парсинга, то есть, видимо, предвычислялись константные выражения.

Наконец, ошибка в конце выражения находилась очень быстро, то есть похоже алгоритм неоднопроходный.
31 янв 05, 12:54    [1286870]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
softwarer
dimitr
Хотя я бы предпочел про оракловый алгоритм узнать более определенно, для общего развития ;-)

Похоже, я угадал с направлением. Завалить таким макаром оракла оказалось тоже несложно; потребовалось делать так: select 1+(1+(1+....)) from dual, то есть заставить его таки наращивать неразобранное, не давая сделать свертку.

Кроме того, стоит отметить, что общее время работы 100% приходилось на время парсинга, то есть, видимо, предвычислялись константные выражения.

Наконец, ошибка в конце выражения находилась очень быстро, то есть похоже алгоритм неоднопроходный.

А сколько нужно уровней вложенности ? Я вот сделал 250 для ASA:
BEGIN
  DECLARE @SQL long varchar;

  SELECT 'SELECT ' || List('(1+', '') || '1' || List(')', '') || ' FROM Dummy'
  INTO @SQL
  FROM RowGenerator
  WHERE Row_Num < 250;

  EXECUTE IMMEDIATE WITH RESULT SET ON @SQL;

  SELECT @SQL;

  SELECT Rewrite(@SQL);
END;
Выполнилось за 0.015 секунд. Вернулось число 250. Далее в тексте построенного скрипта вернулся как и ожидалось дикий скрипт с "(1+(1+...)". Следующая функция показала, как ASA преобразует этот запрос (предкомпиляция). Там уже стояло: "1+1+1+...". Тут дело в том, что у ASA двупроходный компилятор - сначала текст запроса/ХП в первом проходе переводиться в оптимизированный текст запроса (тут уже могут перестроиться выражения или даже порядок условий или соединений - смотря как более выгодно решит оптимизатор ASA), а далее только уже по предкомпилированному тексту запросов будет строиться сам байт-код для ХП и планы запросов. Кстати функция Rewrite еще полезна для самих программистов - в случае сложных условий AND и OR с множеством скобок всегда можно подсмотреть, какую версию предложит ASA, частенько в коде она смотрится более красиво и кратко, да еще и денег за просмотр не берут :)
31 янв 05, 14:56    [1287551]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
В MSSQL заваливается на 659 :-
declare @x nvarchar(4000)
declare @q integer

select @q=659, @x=''

while @q > 1
begin
    select @x = @x + '1+', @q=@q-1
end

select @x='select '+@x+'1';

exec (@x)

Для 658 всё нормально работает. Возвращает 658.
Для 659 сообщение об ошибке:

Server: Msg 8621, Level 17, State 1, Line 1
Internal Query Processor Error: The query processor ran out of stack space during query optimization.
31 янв 05, 15:07    [1287613]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
ASCRUS
А сколько нужно уровней вложенности ? Я вот сделал 250 для ASA:

Со скобками заваливается где-то между 8000 и 8100 - в смысле, 8000 проскакивают. Время, если не врет pl/sql developer - 0,172. Впрочем, полагаю, это вряд ли магическое число, скорее нечто зависящее от настроек.

Без скобок - я довел до того, что он начал активно свопиться, но предела не нашел. Искать, не завалится ли он через несколько часов непрерывного свопа, если честно, лениво :)
31 янв 05, 15:24    [1287693]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
А давайте вот с этой стороны еще посмотрим на эти две СУБД. Работа с деревьями это все хорошо, но, боюсь, что при принятии решения о выборе того или иного сервера СУБД этот аспект будет не самым важным. Свеженький документик есть:

Compare Database and Business Intelligence Pricing and Licensing
31 янв 05, 16:58    [1288128]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
pkarklin
А давайте вот с этой стороны еще посмотрим на эти две СУБД. Работа с деревьями это все хорошо, но, боюсь, что при принятии решения о выборе того или иного сервера СУБД этот аспект будет не самым важным. Свеженький документик есть:

Compare Database and Business Intelligence Pricing and Licensing

Забавно сравнивать СУБД по маркетинговым исследованиям, выложенным на сайт того или иного производителя ПО :) Хотите я Вам дам ссылочку на документ, где будет Sybase ASA сравниваться по стоимости владения с MSSQL и Oracle в сегменте SMB решений и там так же в циферках будет четко и ясно доказано, что данный сервер, стоимостью 500$ сразу в комплекте со всеми прибамбасами и нулевым администрированием будет в 10-раз дешевле аналогичных решений других производителей, причем даже спорить будет не о чем ?

P.S. А потом если еще и сравнивать по ценам, неплохо бы заодно помнить, что в таких документиках цены пишутся в американских долларах для США, а уж сколько и где за него берут представительства - это вопрос другой и интересный. Плюс мне известны случаи дешевизны продукции Microsoft, которые приводили к тому, что после покупки одного ПО вдруг появлялись гости и приходилось платить уже другие деньги и за все, что стоит в конторе :) Там уже бесплатным Линуксом не отмажешься :)
31 янв 05, 17:14    [1288228]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
2 ASCRUS

Опубликованием этой ссылки я никоим образом не преследовал цели "опустить все остальные СУБД" по сравнению с MS SQL Server. Просто на этом форуме часто промелькивают ссылки, аналогичные моей. И мне показалось, что народу будете интересно со свежей информацией познакомиться. Если у Вас есть конкретные цифра, что OLAP прилада к Oracle идет бесплатно, а не за бабки, как это указано в той статье, то Welcome, а так...

ASCRUS

Плюс мне известны случаи дешевизны продукции Microsoft, которые приводили к тому, что после покупки одного ПО вдруг появлялись гости и приходилось платить уже другие деньги и за все, что стоит в конторе :)


так может пора прекращать воровать. ;)
31 янв 05, 17:22    [1288277]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
pkarklin
Compare Database and Business Intelligence Pricing and Licensing

Лично я назову давно известным тот факт, что Oracle дороже. Но в Вашей ссылке мое внимание привлек следующий момент:

http://www.microsoft.com/sql/evaluation/compare/pricecomparison.asp
По мнению этой страницы, Oracle EE стоит $40.000 на процессор, "with BI" стоит $80.000 на процессор. Я правильно понял?

Если залезть в прайс Oracle, окажется, что EE действительно стоит $40.000, OLAP Option - стоит $20.000, соответственно, как они в сумме получили $80.000 - я не понял.
31 янв 05, 18:25    [1288568]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
segun
Member

Откуда: Москва
Сообщений: 504
OLAP Server Add-on - $20,000 (OLAP Option)
Data Mining Add-on - $20,000(Mining Option)

Поэтому и получается $80,000.
31 янв 05, 18:41    [1288615]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
nkulikov
Guest
Да прикольно....

Только неоднозначно. Начиная с того сколько алгоритмов Mining в серверах и то что MS SQL еще не доступен на Multicore Процессорах, это только принципиальная позция. Люди составляющие прайс листы в Oracle и IBM могут поменять это все по месту...

Опять же берется все и счтается в тупую, а у любой компании есть Bundles.
MS SQL помоему требует опредаленной лицензии на OS. В то время как остальные БД нет и это не показано...

Короче сравнение от вендора объективным быть не может...
31 янв 05, 19:22    [1288709]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
segun
OLAP Server Add-on - $20,000 (OLAP Option)
Data Mining Add-on - $20,000(Mining Option)

Спасибо. По mining-у, к сожалению, я совсем ничего не могу сказать.

Впрочем, отмечу, что в BI от Oracle, с моей точки зрения, главной проблемой пока является качество, а не цена. Сравнить с MS, увы, некомпетентен.
31 янв 05, 19:25    [1288720]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
c127
Guest
2 andy st

>Мальцева, к сожалению в электронном виде я не нашел... если есть ссылка или файл - на мыло, если не лень.

Нет у меня файла. Можете сходить в библиотеку. Но эту теорему наверняка можно найти в сети. tchingiz на стр.28 давал какие-то ссылки (я их не читал), может они Вам помогут.

>у Вирта есть такое определение
"Объект называется рекурсивным, если он содержит сам себя или определен с помощью самого себя".
ГДЕ в алгоритме, реализованном циклами присутствует этот признак???


Определение Вирта дано "на пальцах", для его нужд этого было достаточно, но это не строгое определение.

Вы смешиваете алгоритм и его реализацию. Например при определении алгоритма записано: инициировать массив X нулями. Тут нет цикла. Скорее всего это будет реализовано в виде цила, но может и нет, например можно руками прописать X[0]=0, X[1]=0,..., и если алгоритм не зависит от размера X, то это даже будет работать. Алгоритм от этого не меняется, но реализация меняется.

Кстати строгого общепринятого определения алгоритма не существует. Машина Тьюринга (наверное Поста тоже) была придумана как попытка формализовать понятие алгоритма и убрать из него неоднозначности. Поэтому если хотите продолжать разговор, то нам нужно определиться с терминологией и сформулировть утверждения.
1 фев 05, 05:12    [1289091]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
andy st
Member

Откуда:
Сообщений: 899
c127

Вы смешиваете алгоритм и его реализацию. Например при определении алгоритма записано: инициировать массив X нулями. Тут нет цикла. Скорее всего это будет реализовано в виде цила, но может и нет, например можно руками прописать X[0]=0, X[1]=0,...,
и если алгоритм не зависит от размера X, то это даже будет работать. Алгоритм от этого не меняется, но реализация меняется.

а как без смешивания алгоритма и реализации?
везде мешают.
те же алгоритмы сортировки: пузырьковая, Шелла, вставками, поразрядная и пр. каждому названию соответствует реализация с присущими только этому названию признаками.
рекурсия аналогично, должна присутствовать в реализации алгоритма каким-то образом, чтобы алгоритм можно было назвать рекурсивным.

c127

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

а как все начиналось?... ;)
Процесс давно формализован, еще в 40-х годах прошлого века
а теперь, оказывается надо определитья с терминологией... ;)
ну определимся. а дальше?
третий круг на носу, а каждый так и сидит при своем понимании рекурсии.
единственный толк - зато пальцы натернировали - железные бочки можно дырявить.
может разойдемся с миром?
1 фев 05, 07:23    [1289125]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
nkulikov
MS SQL еще не доступен на Multicore Процессорах


Всмысле?!

nkulikov
MS SQL помоему требует опредаленной лицензии на OS. В то время как остальные БД нет и это не показано...


Какой такой определенной?!
1 фев 05, 09:10    [1289269]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
andy st

а как без смешивания алгоритма и реализации?
везде мешают.
те же алгоритмы сортировки:

Отнюдь. Те же алгоритмы сортировки никак не определяют такой важный момент реализации, как, например, выбор между физическим перемещением сортируемых записей (т.е. физическая сортировка) и тем или иным вариантом индексирования или выбор между сравнением записей (то есть запуском функции сравнения над записями) или предвычислением некоторой метрики для каждой записи. Алгоритм определяет идею, generic, шаблон реализации.

Простой пример - базовые варианты интегрирования (прямоугольники, трапеции, параболы) - являются с точки зрения программирования одним и тем же алгоритмом, отличаясь именно реализацией, единственной не-generic строкой.
1 фев 05, 11:05    [1289630]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
AntiOracle
Guest
В какой форум не зайди, Oracle-исты все брызжут и брызжут слюной - традиции мол, фичи (сами и половины не используют).
Профи прекрасно понимают, что конкретная задача в 99% случаев решается и там и там.

А MSSQL сервер все продолжает и продолжает отвоевывать позиции у Oracle и по работе и по удобству. И веры в победу MS почему-то куда больше (не задавят, так задушат).

Что может противопоставить Oracle хоть с тонной традиций и со своей хорошей БД, огромной софтверной империи, запросто навязывающей вкусы и предпочтения.

И пусть Oracle-исты брызжут слюной...
1 фев 05, 14:11    [1290608]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
andy st
Member

Откуда:
Сообщений: 899
softwarer

Отнюдь. Те же алгоритмы сортировки никак не определяют такой важный момент реализации, как, например, выбор между физическим перемещением сортируемых записей (т.е. физическая сортировка) и тем или иным вариантом индексирования или выбор между сравнением записей (то есть запуском функции сравнения над записями) или предвычислением некоторой метрики для каждой записи.
Алгоритм определяет идею, generic, шаблон реализации.

Простой пример - базовые варианты интегрирования (прямоугольники, трапеции, параболы) - являются с точки зрения программирования одним и тем же алгоритмом, отличаясь именно реализацией, единственной не-generic строкой.

и от этой строки зависит как точность интегрирования, так и скорость.
поэтому виды интегрирования и разделяют по этой самой одной строке.

та же самая быстрая сортировка может быть реализована как с помощью рекурсии, так и на массивах. запростом можно если сделать процедуру сортировки на рекурсии и не упомятуть это. никто не запрещает и до поры до времени эт будет не критично. однако как только человек задаст такой большой массив, который при реализации этой сортирови приведет к переполнению стека - он задумается о деталях реализации и будет в них копаться.
а добавление фразы "с использованием рекурсии" к названию "быстрая сортировка" избавляет от лишних телодвижений и сразу ставит в известность о том, что обработка больших обхемов информации может привести к переполнению стека.
я это к тому, что каждый вправе для себя называть "Оку" танком. но если кто-то другой захочет из этого танка пострелять пострелять - надо будет объяснить, как именно это можно сделать. или заранее написать, что "Ока" - не стреляющий танк, и маааленький, т.к. в детстве болел...
поэтому и лучше описать это все заранее.
1 фев 05, 14:43    [1290776]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 22 23 24 25 26 27 28 29 [30] 31   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить