powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Что лучше? Оракул9i или MS SQL2000? И чем?
25 сообщений из 488, страница 19 из 20
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32489943
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gt.
итак MS вариант в 4 раза медленее, причем что забавно именно из-за 1204 physical reads, которые при таком плане присутствуют всегда, т.е. по какой-то причине оно не кеширется сколько раз не прогоняй запрос.

Ну не Ms вариант, а Oracle вариант с функциями окна, для реализации оконной функции, при таком объеме данных, Oracle пришлось вынести сортировку на диск отсюда Ваши "1204 physical reads" и "1 sorts (disk)",
он опять же честно делал , то что я ему написал в запросе, т.е. ему для каждой строчки отношения надо было получить min_salary для чего гдето держать всё окно. При нормальной, встроенной реализации group by (sort) этого можно избежать, и как нас уверяют MSSQL именно так и делает, ну и хорошо.

Gt.тестил на 10ке, как ежики добиись другого плана не знаю ... у меня 9ка после analyze table сразу такой план дает.
Ну значит в 9-ке над оптимизатором поработали, чего иследовало ожидать. На 8i к сожалению всё значительно хуже...
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32490051
Gt.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt.
Гость
типа есть consistent gets и тока по ниму ориентирумся типа так, типа расходы цпу, селективность и т.п. не учитываем ? тогда можно объяснить почему для ваших объемов удалось сортировку окна в памяти провернуть а для моих не удалось ? причем для для джоина сортировка в памяти проходит, а для окна нивкакую ?
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32490323
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортипа есть consistent gets и тока по ниму ориентирумся типа так, типа расходы цпу, селективность и т.п. не учитываем ?
Селективность как раз учитываем она используется при расчете логических чтений. А вот расходы ЦПУ нет, по крайней мере я не помню таких коэффициентов, могу ошибаться. Да и в теории расходы цпу не считаются существенными при расчете стоимости планов.
На сайте http://dbgroup.ru есть ссылка на хорошую статью Wolfgang Breitling "Fallacies of the Cost Based Optimizer" там достаточно подробно рассматривается расчет стоимости запроса оптимизаторм Oracle.

автор тогда можно объяснить почему для ваших объемов удалось сортировку окна в памяти провернуть а для моих не удалось ?причем для для джоина сортировка в памяти проходит, а для окна нивкакую ?
Для ответа на первый вопрос надо знать механизмы обработки ораклом аналитических функций, я такой информации пока не встречал, возможно это просто недоработка реализации, ну не расчитаны они на это.
Примерные алгоритмы сортировки в памяти для джойна и как это поместить в ограниченную память можно прочитать в хорошем учебнике который помоему еще присутствует на полках наших магазинов Гектор Гарсиа-Молина. Джеффри Ульман и Дженнифер Уидом "Системы баз данных. Полный курс", там есть целая глава посвященная физичиским методам реализации реляционных операторов.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32490795
Фотография Markelenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА вот расходы ЦПУ нет, по крайней мере я не помню таких коэффициентов, могу ошибаться

Можно собрать системную статистику:

dbms_stats.gather_system_stats(...);
select pname,pval1 from sys.aux_stats$ where pname='CPUSPEED';

И сравнить стоимости с и без этой статистики.
Кстати, здесь статья Burlesona на эту тему.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32491178
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Markelenkov
Спасибо.
Markelenkov
И сравнить стоимости с и без этой статистики.

Если не затруднит можно примерчик, интересна величина оцениваемого влияния? У меня только 8-ка. :(
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32492988
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Merle
с127> Я подозреваю, что Вы не знаете даже основ SQL-я, по-видимому сказывается влияние обучения по Бернстайну
Merle> Ну если при отсутствии аргументов Вы начинаете хамить, то я не ощущаю необходимости общаться с Вами в дальнейшем.


Уважаемый Merle, очень тяжело подобрать весомый аргумент для человека, полагающего, что запрос возвращающй одну запись эквивалентен запросу, возвращающему 10 записей. Вывод о незнании SQL-я было сделан этого Вашего заблуждения.

Об этом было Вам сообщено, не нужно вырывать фразы из контекста.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32492990
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В текст вкралась ошибочка, предпоследнюю фразу предыдущего поста следует читать так:

Вывод о незнании SQL-я был сделан на основе этого Вашего заблуждения.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32493002
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Leonid

> Хочу Вас огорчить, в лагере "мышевозов" все поняли :)

Простите, не заметил.

> И почему oracle по вашему непогрешим?

Я так не считаю, у оракла тоже куча проблем. Мне лично больше нравится DB2, но и она далека от идеала. Но таких глупостей как в MSSQL там нет. Есть другие, но не такие явные.

> На каком SQL диалекте это написано? Я в oracle REMAINDER не нашел. А по смыслу mod и remainder, разве не одно и то же? Если нет, тогда поясните...

Это sybase ASA, но это не важно, результат будет одинаковый, просто ничего другого нет под рукой. mod и remainder это одно и то же, я выдрал их из хелпа, и не поменял. Мне нужно было слегка испортить уникальность зарплаты, которая первоначально равна id, для этого подойдет почти любая функция. В этом случае для каждого департмента возвращается много записей, а не одна на департмент, как в первоначальном примере.

> То есть, те же два сканирования таблицы.

Все правильно, план и не должен был поменяться. Идея была продемонстрировать что Merle не понимает своего же запроса и неверно истолковывает план, полагая что если "внутренний запрос применить ко внешнему, то результат не изменится" (Merle, [622333]).

2 Я и ёжик

> Для каждого шага плана указана оцениваемая оптимизатором его стоимость (cost), число записей на выходе (card), показана ожидаемая стоимость запроса, какой же использовался оптимизатор?

Это ни о чем не говорит. По-моему rule-based тоже выдает похожую информацию. Оптимизатор мог показать план выполненного запроса.

> Оптимизатор рассмотрел только выполнение запроса в лоб.

Не знаю, что он там рассмотрел, но на таблице из 2000 записей, да еще когда внутренний запрос возвращает порядка 10 записей, оптимизировать запрос часто невыгодно, на построение индексов, сортировку и пр. уйдет больше времени, чем на выполнение "в лоб". Так что оптимизатор как раз и выбрал оптимальный или близкий к этому план.

> Ну да 100 логических чтений вместо 9 решение несомненно правильное и более выгодное :).

Да, на этой таблице суммарное время выполнения может оказаться наилучшим. Всякие хитрые алгоритмы обычно занимают мнрого времени на подготовку и чтение промежуточных данных. По этой причине, например, короткие таблицы индексировать бессмысленно, поиск по индексу дольше, чем сканирование таблицы, хотя сообщение оптимизатора "full table scan" вместо "index scan" казалось бы тоже должно настораживать.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32493442
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127Это ни о чем не говорит. По-моему rule-based тоже выдает похожую информацию. Оптимизатор мог показать план выполненного запроса.

Не выдает, только план без оценок.
При установке set autotrace traceonly, показывается план выдаваемый утилитой explain plan с оценками оптимизатора до выполнения, а не с фактическими результатами выполнения.
с127>Оптимизатор рассмотрел только выполнение запроса в лоб.
Не знаю, что он там рассмотрел, но на таблице из 2000 записей, да еще когда внутренний запрос возвращает порядка 10 записей, оптимизировать запрос часто невыгодно, на построение индексов, сортировку и пр. уйдет больше времени, чем на выполнение "в лоб". Так что оптимизатор как раз и выбрал оптимальный или близкий к этому план.

Если Вы посмотрите на внутренний коррелированный подзапрос, то увидете что при прямой реализации он возвращает 1 запись, а не 10, (select min(salary) from Departments D2 where D2.dept=Departments.dept). И оптимизатору надо еще подумать и понять что можно его привести к виду когда он возвратит 10 записей и дальше пользоваться этой внутренней табличкой, чего оптимизатор Oracle 8i не делает.При этом 8i и на большой таблице > 100 000 записей поступает также и в общем то успешно замирает на этом запросе, 9i уже умнее и догадывается преобразовать запрос.

c127>>Ну да 100 логических чтений вместо 9 решение несомненно правильное и более выгодное :).
Да, на этой таблице суммарное время выполнения может оказаться наилучшим. Всякие хитрые алгоритмы обычно занимают мнрого времени на подготовку и чтение промежуточных данных.

Статистика показанная после планов запросов, это общая статистика по результатам выполнения запроса и она показвает все обращения к блокам данным включая выполненные "всякими хитрыми алгоритмами" и "чтением промежуточных данных". В указанных примерах соотношение реально потраченных ресурсов было 100 к 9.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32495119
Фотография Markelenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли не затруднит можно примерчик, интересна величина оцениваемого влияния? У меня только 8-ка. :(

Вот нарезал куски из идентичных мест (event 10053). Извиняйте, объем получился большой, лишнее коцнул. Ну и тяпница сёдня, пивко пьем-с ;)

Без системной статистики:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
QUERY
select * from t where object_id in (select min(object_id) from t)
***************************************
PARAMETERS USED BY THE OPTIMIZER
********************************
OPTIMIZER_FEATURES_ENABLE =  9  .2  .0 
OPTIMIZER_MODE/GOAL = Choose
...
***************************************
BASE STATISTICAL INFORMATION
***********************
Table stats    Table:  T   Alias:  T
  TOTAL ::  CDN:  27216   NBLKS:   790   AVG_ROW_LEN:   96 
_OPTIMIZER_PERCENT_PARALLEL =  0 
***************************************
SINGLE TABLE ACCESS PATH
  TABLE:  T     ORIG CDN:  27216   ROUNDED CDN:  27216   CMPTD CDN:  27216 
  Access path: tsc  Resc:   78   Resp:   78 
  BEST_CST:  78  .00   PATH:  2   Degree:   1 
***************************************
OPTIMIZER STATISTICS AND COMPUTATIONS
***************************************
GENERAL PLANS
***********************
Join order [1 ]:   T[T]#0
Best so far: TABLE#:  0   CST:          78   CDN:       27216   BYTES:      108864 
Final - All Rows Plan:
  JOIN ORDER:  1 
  CST:  78   CDN:  27216   RSC:  78   RSP:  78   BYTES:  108864 
  IO-RSC:  78   IO-RSP:  78   CPU-RSC:  0   CPU-RSP:  0 


С по-быстрому собраной статистикой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
QUERY
select * from t where object_id in (select min(object_id) from t)
***************************************
PARAMETERS USED BY THE OPTIMIZER
********************************
OPTIMIZER_FEATURES_ENABLE =  9  .2  .0 
OPTIMIZER_MODE/GOAL = Choose
...
***************************************
BASE STATISTICAL INFORMATION
***********************
Table stats    Table:  T   Alias:  T
  TOTAL ::  CDN:  27216   NBLKS:   790   AVG_ROW_LEN:   96 
_OPTIMIZER_PERCENT_PARALLEL =  0 
***************************************
SINGLE TABLE ACCESS PATH
  TABLE:  T     ORIG CDN:  27216   ROUNDED CDN:  27216   CMPTD CDN:  27216 
  Access path: tsc  Resc:   82   Resp:   82 
  BEST_CST:  83  .00   PATH:  2   Degree:   1 
***************************************
OPTIMIZER STATISTICS AND COMPUTATIONS
***************************************
GENERAL PLANS
***********************
Join order [1 ]:   T[T]#0
Best so far: TABLE#:  0   CST:          83   CDN:       27216   BYTES:      108864 
Final - All Rows Plan:
  JOIN ORDER:  1 
  CST:  83   CDN:  27216   RSC:  82   RSP:  82   BYTES:  108864 
  IO-RSC:  78   IO-RSP:  78   CPU-RSC:  10305829   CPU-RSP:  10305829 


P.S. Таблица t: create table t as select * from all_objects;
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32497721
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Я и ёжик
> Если Вы посмотрите на внутренний коррелированный подзапрос, то увидете что при прямой реализации он возвращает 1 запись, а не 10, (select min(salary) from Departments D2 where D2.dept=Departments.dept).

10 запсей это для всего запроса, там мощность {Departments.dept} порядка десяти и для каждого департмента функция min() очевидно вернет не больше одной запси. Это очевидная оценка.

> И оптимизатору надо еще подумать и понять что можно его привести к виду когда он возвратит 10 записей и дальше пользоваться этой внутренней табличкой, чего оптимизатор Oracle 8i не делает

Думать тут нечего, и так все очевидно, другое дело что оптимизатор по-видимому этого и правда не делает. Может его сбивает с толку отсутсвие первичного ключа, может если разнести departments и salary в разные таблицы то запрос построится правильно. Случай нетипичный. В целом согласен: оракловый оптимизатор в данной ситуации выбирает не лучший план.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32498346
xz321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Merle. Где обещанный IO cost???
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32504301
Merle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где обещанный IO cost???
Упс, простите, забыл совсем.. Но там все незатейливо:
Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0.

Идея была продемонстрировать что Merle не понимает своего же запроса и неверно истолковывает план
Ну если это была идея, тады ой, не стоило ради этого дурацкий флейм разводить и к словам цепляться, готов сразу признать, что я ничего не понимаю...
Мы с Вами, просто категорически общего языка не находим, Вы мне напоминаете того болельщика, который болеет не за ЦСКА, а против спартака, любой сервер хорош, если это не MS.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32505285
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Merle

> Ну если это была идея, тады ой, не стоило ради этого дурацкий флейм разводить и к словам цепляться, готов сразу признать, что я ничего не понимаю...
Мы с Вами, просто категорически общего языка не находим, Вы мне напоминаете того болельщика, который болеет не за ЦСКА, а против спартака, любой сервер хорош, если это не MS.


А по-существу есть что сказать?

В частности очень интересно было бы получить ссылку на Дейта, где он говорит, что distinct противоречит концепции SQL-а. В том сообщении, где Вы называли меня хамом и невеждой, и которое модератор зачем-то удалил, Вы советовали мене поискать это у Дейта. Я не нашел.

Кстати могли бы признать, что ошиблись с запросом и что запросы не эквивалентны.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32505330
Merle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А по-существу есть что сказать?
А по существу я уже все сказал еще в своем первом сообщении в этот топик, но Вас это почему-то не устроило... ;)

В частности очень интересно было бы получить ссылку на Дейта, где он говорит, что distinct противоречит концепции SQL-а.
Копаться в Дейте, к сожалению нет никакого желания, Кодд устроит? Вот в этих трудах:
E. F. Codd: Fatal Flaws in SQL - Part ONE
E. F. Codd: Fatal Flaws in SQL - Part Two.
Он не двусмыслено дает понять, что возможность получения в SQL'е нескольких одинаковых кортежей совсем не гуд, и не разу не соответствует формальной реляционной теории. И как следствие, одним из Flaw SQL'я является наличие distinct, union all, ect...

Кстати могли бы признать, что ошиблись с запросом и что запросы не эквивалентны.
Эквивалентны, конечно при условии, что записи уникальны. Единственно, что я забыл сразу на это указать, признаю, но я думал, что уважаемая аудитория в состоянии разобраться с уникальностью, без лишних инсинуаций.
Уж очень соблазнительно было показать практически полное совпадение планов Oracle и SQL при изменении Оракловского запроса подобным образом.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32505569
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Merle

> Копаться в Дейте, к сожалению нет никакого желания, Кодд устроит? Вот в этих трудах:
E. F. Codd: Fatal Flaws in SQL - Part ONE
E. F. Codd: Fatal Flaws in SQL - Part Two.


Кодд меня тоже устроит, хотя был обещан Дейт, ну да ладно. Но так ссылки не даются, дайте страницу или раздел поточнее, и обязательно где они были напечатаны, иначе как я их найду. Я не придираюсь, это правила хорошего тона.

> Он не двусмыслено дает понять, что возможность получения в SQL'е нескольких одинаковых кортежей совсем не гуд, и не разу не соответствует формальной реляционной теории. И как следствие, одним из Flaw SQL'я является наличие distinct, union all, ect...

Во-первых мне неизвестно что такое "не двусмыслено дает понять". Мы же не философией занимаемся, там должно быть либо "да", либо "нет".

Во-вторых давайте сравним то, что сказали только что Вы со ссылкой на Кодда, с тем, что я сказал в посте [639318]: "Дистинкт как раз не является нарушением реляционной теории.... Наоборот, он как раз восстанавливает список записей до множества, где повторяющихся элементов нет." Т.е. дистинкт был введен, чтоб убрать повторяющиеся кортежи и на выходе получить МНОЖЕСТВО элементов - кортежей. Это значит, что не distinct плохо вписывается, а реализация оператора select приводит к противоречию с реляционной теорией, а distinct как раз спасает положение. Если бы опреатор select работал правильно, то в distinct не было бы необходимости. Это то же самое, что говорит Кодд.

> Эквивалентны, конечно при условии, что записи уникальны. Единственно, что я забыл сразу на это указать, признаю, но я думал, что уважаемая аудитория в состоянии разобраться с уникальностью, без лишних инсинуаций.

Нет, и в этом случае тоже не эквивалентны.
Даже при условии уникальности записей Ваш запрос вернет столько записей, сколько департментов в таблице (это если у каждого департмента есть как минимум одна зарплата, если же зарплаты нет, то департмент в ответе не появится; если зарплата не уникальна, то записей будет даже больше). Запустите свой пример и проверьте. Оракловский запрос всегда вернет одну запись (для Вашего примера, а вообше может и ни одной не вернуть).
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32505608
Merle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кодд меня тоже устроит, хотя был обещан Дейт, ну да ладно.
Дейта никто не обещал, я сказал "хотя бы Дейта" :) Вам не надоело к словам цепляться?

Но так ссылки не даются, дайте страницу или раздел поточнее, и обязательно где они были напечатаны, иначе как я их найду. Я не придираюсь, это правила хорошего тона.
Нет придираетесь...
Той информации, что я Вам дал, вполне достаточно, чтобы при желании самостоятельно найти эти две небольшие статьи на несколько страничек.
Единственно что, я не уверен, что они есть в открытом доступе. Опубликованы они были в 89 году, в рамках конференции CMG Transactions..

Во-первых мне неизвестно что такое "не двусмыслено дает понять".
Ну это уже Ваши проблемы. не двусмыслено дает понять - это значит "не двусмыслено дает понять". Если у Вас и с пониманием этой фразы возникли сложности, то я тут бессилен.

там должно быть либо "да", либо "нет".
Вы прекратили пить коньяк по утрам? "Да" или "Нет", будьте добры.. :)

Если бы опреатор select работал правильно, то в distinct не было бы необходимости.
Примерно то же самое сказал и я, разьве что проблема не в селекте, а в SQL'е в целом. Но Вы настаивали на том, что top, в отличии от distinct, в реляционную теорию не вписывается, в то время как я утверждал, что в реляционной теории оператора типа distinct вообще быть не может (заметте, не в SQL, а в реляционной теории), поскольку формальная теория не допускает повторения кортежей.

Оракловский запрос всегда вернет одну запись (для Вашего примера, а вообше может и ни одной не вернуть).
Уффф... Он и в третий раз пошел за елкой.
На формальной эквивалентности запросов я никогда и не настаивал, но на определенном наборе данных эти запросы эквивалентны, и что как раз было важно в обсуждаемом примере, они пораждали эквивалентные планы на разных серверах.
Вы прекрасно понимаете что и когда я имел ввиду, у меня нет ни времени ни желания вылизывать формулировки, что бы у Вас не было придирок, благо у остальных глупых вопросов не возникает.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32505796
Фотография u_gray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запарился читать все высказывания, могу ответить словами Т.Кайта:
"... ни хуже, ни лучше - они просто разные".

Из-за разной реализации в ядре часть операций у Oracle имеет преимущество, часть нет.

ЗЫ: а навороты дело наживное.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32506191
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Merle

> Эквивалентны, конечно при условии, что записи уникальны.

В Вашем примере записи УНИКАЛЬНЫ (посколоку уникально id в качестве зарплаты), а запросы НЕ ЭКВИВАЛЕНТНЫ: у одного одна запись, а у другого - десять.

Хотя Вам наверное будет проще согласиться что у Вас имеется не только отличное от общепринятого понятие об аргументах, но также и отличное от общепринятого определение уникальности записи и эквивалентности запросов.

Вы зря не хотитие признать свою ошибку, потому что с каждым постом Вы сами закапываете себя все глубже и глубже и признать ошибку становится все труднее, а Вы выглядите все хуже. Каждый человек может ошибится, в этом нет ничего страшного. Но если Вы хотите продолжить, то теперь Вам уже прийдется спорить с Merle.

> На формальной эквивалентности запросов я никогда и не настаивал

Merle> Оракле запрос select * from Departments where rownum<2 order by salary desc;
Являющийся полностью эквивалентным первому


Причем тут говорится, что не просто эквивалентен, а ПОЛНОСТЬЮ эквивалентен.

> но на определенном наборе данных эти запросы эквивалентны

Да, на таблицах из одной записи.

Читаем чуть раньше:

c127>Поэтому вопрос: а сколько записей вернет
<...>
в Вашем примере на тех данных?

Merle>Одну. ;)


Специально было уточнение: на ваших данных. НА ВАШИХ ДАННЫХ запрос возвращает не одну а 10 записей. А оракл - одну. Если бы Вы потрудились прогнать свой запрос, а не только рассуждать насчет плана, то конфуза бы не случилось.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32506396
Merle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Специально было уточнение: на ваших данных. НА ВАШИХ ДАННЫХ запрос возвращает не одну а 10 записей. А оракл - одну. Если бы Вы потрудились прогнать свой запрос, а не только рассуждать насчет плана, то конфуза бы не случилось.
))))))))
Ok, признаю, был не прав. ;)
В процессе этого нудного обсуждения, когда ставил эксперименты, я упростил и MS'овский запрос (что вообще не изменило плана), и во всех последующих обсуждеиях эквивалентности Ораклу, я имел ввиду именно этот упрощенный запрос. Разные наборы в Oracle и MS этот запрос возвращал только в случае не уникальности. Сейчас, перечитав топик, я обнаружил, что нигде об этом не упомянул, хотя планы приводил именно для этого запроса (хотя, повторюсь, они практически идентичны), а не для первоначального.
Так что признаю, Ваша правда.

Запрос был примерно такой: select * from tbl where a = (select min(a) from tbl)

Но сути дела это не меняет, в данном случае MS'овский оптимизатор оказывается умнее всех..
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32506437
Gt.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt.
Гость
Но сути дела это не меняет, в данном случае MS'овский оптимизатор оказывается умнее всех..

что-то я не пойму ты смотришь - я ж показал что cost сиквеловского плана запроса в 4 раза больше, т.е. сиквел выбрал самый неудачный план из всех возможных. да кол-во чтений там больше, а cost гораздо меньше.
+ если поигратся с db_block_size то наверника именно для этого задачи можно получить совсем другие цифры (но естественно не под виндовс)
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32507611
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gt(но естественно не под виндовс)
Это можно оставить как заголовок, все остальное убрать, получим жизненное кредо Gt - Yo!, c127 и других

авторНо сути дела это не меняет, в данном случае MS'овский оптимизатор оказывается умнее всех..
Merle, можно не спорить, но болельщики "против Спартака", скорее застрелятся чем это признают.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32508944
DmVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ вы конечно все хорошо так расписываете, и недостатки подмечаете, но скажите где можно посмотреть статистику по объёмам рынка отхватившим MSSQL и Oracle как по деньгам так и по количеству лицензий? имхо это будет весьма объективный критерий.
К сожалению пока сам такой статистики не нашел.....может кто подскажет?
Спасибо.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32509982
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Merle
> Ok, признаю, был не прав. ;)

Уважаю.

А что касается "все равно MSSQL лучше", так вроде бы Gt. привел план, вроде бы не лучше, вроде бы даже хуже получается. Правда я тот план поленился посмотреть, так что пока только со ссылкой на Gt. Но по-прежнему считаю, что планы разных SQL серверов нужно сравнивать осторожно.

2 DmVa

Присоединяюсь. Только боюсь это сильно секретная информация, в лучшем случае удасться получить только очень приблизительные цифры, прошедшие через отделы финансов, маркетинга и пр.
...
Рейтинг: 0 / 0
Что лучше? Оракул9i или MS SQL2000? И чем?
    #32510890
Merle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что касается "все равно MSSQL лучше", так вроде бы Gt. привел план, вроде бы не лучше, вроде бы даже хуже получается.
План Gt показывает лишь то, что Оракл не умеет корректно работать с аналитическими функциями (в данном случае почему-то в кеш не кладет).
Там же план совсем не MS-овский, а попрежнему с двумя табличными сканированиями, против одного у MS.
Упрощенный запрос можно и без них в ручную с оптимизировать, и привести к MSSQL-ному плану, там хорошо видно, что он оптимальнее.

Присоединяюсь. Только боюсь это сильно секретная информация, в лучшем случае удасться получить только очень приблизительные цифры, прошедшие через отделы финансов, маркетинга и пр.
Да ну какая там секретная. Год назад, или даже больше, по всему рунету ссылка бегала с объемами рынка. Отчет в принципе ежегодный, так что сейчас должна быть свежая версия, правда искать лень.. ;)
На тот момент положение дел было примерно таково.
IBM - около 40%, Oracle - около 30%, MS - около 20%. Дальше ближайший лидер занимал не больше 3% рынка. Но надо учитывать, что MS только под винды, а остальные конкуренты всеядны, так что цифра в 20% - это серьезно.
Это только OLTP, С OLAP картина совершенно другая, MS была второй, а IBM и Oracle не выше десятого места, конкретных цыфр по объему не помню...
...
Рейтинг: 0 / 0
25 сообщений из 488, страница 19 из 20
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Что лучше? Оракул9i или MS SQL2000? И чем?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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