Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 11 12 13 14 15 16 17 18 [19] 20   вперед  Ctrl
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Я и ёжик
Member

Откуда: СПб
Сообщений: 1815
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 к сожалению всё значительно хуже...
21 апр 04, 15:10    [640863]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Gt.
Guest
типа есть consistent gets и тока по ниму ориентирумся типа так, типа расходы цпу, селективность и т.п. не учитываем ? тогда можно объяснить почему для ваших объемов удалось сортировку окна в памяти провернуть а для моих не удалось ? причем для для джоина сортировка в памяти проходит, а для окна нивкакую ?
21 апр 04, 15:41    [641029]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Я и ёжик
Member

Откуда: СПб
Сообщений: 1815
автор
типа есть consistent gets и тока по ниму ориентирумся типа так, типа расходы цпу, селективность и т.п. не учитываем ?

Селективность как раз учитываем она используется при расчете логических чтений. А вот расходы ЦПУ нет, по крайней мере я не помню таких коэффициентов, могу ошибаться. Да и в теории расходы цпу не считаются существенными при расчете стоимости планов.
На сайте http://dbgroup.ru есть ссылка на хорошую статью Wolfgang Breitling "Fallacies of the Cost Based Optimizer" там достаточно подробно рассматривается расчет стоимости запроса оптимизаторм Oracle.

автор
тогда можно объяснить почему для ваших объемов удалось сортировку окна в памяти провернуть а для моих не удалось ?причем для для джоина сортировка в памяти проходит, а для окна нивкакую ?

Для ответа на первый вопрос надо знать механизмы обработки ораклом аналитических функций, я такой информации пока не встречал, возможно это просто недоработка реализации, ну не расчитаны они на это.
Примерные алгоритмы сортировки в памяти для джойна и как это поместить в ограниченную память можно прочитать в хорошем учебнике который помоему еще присутствует на полках наших магазинов Гектор Гарсиа-Молина. Джеффри Ульман и Дженнифер Уидом "Системы баз данных. Полный курс", там есть целая глава посвященная физичиским методам реализации реляционных операторов.
21 апр 04, 17:04    [641431]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
автор
А вот расходы ЦПУ нет, по крайней мере я не помню таких коэффициентов, могу ошибаться


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

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

И сравнить стоимости с и без этой статистики.
Кстати, здесь статья Burlesona на эту тему.
21 апр 04, 20:57    [642009]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Я и ёжик
Member

Откуда: СПб
Сообщений: 1815
2 Markelenkov
Спасибо.
Markelenkov

И сравнить стоимости с и без этой статистики.

Если не затруднит можно примерчик, интересна величина оцениваемого влияния? У меня только 8-ка. :(
22 апр 04, 10:08    [642575]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
Merle
с127> Я подозреваю, что Вы не знаете даже основ SQL-я, по-видимому сказывается влияние обучения по Бернстайну
Merle> Ну если при отсутствии аргументов Вы начинаете хамить, то я не ощущаю необходимости общаться с Вами в дальнейшем.


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

Об этом было Вам сообщено, не нужно вырывать фразы из контекста.
23 апр 04, 01:37    [644867]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
В текст вкралась ошибочка, предпоследнюю фразу предыдущего поста следует читать так:

Вывод о незнании SQL-я был сделан на основе этого Вашего заблуждения.
23 апр 04, 01:40    [644869]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
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" казалось бы тоже должно настораживать.
23 апр 04, 03:14    [644882]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Я и ёжик
Member

Откуда: СПб
Сообщений: 1815
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.
23 апр 04, 11:00    [645434]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
автор
Если не затруднит можно примерчик, интересна величина оцениваемого влияния? У меня только 8-ка. :(


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

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

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


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

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;
23 апр 04, 22:39    [647614]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
2 Я и ёжик
>Если Вы посмотрите на внутренний коррелированный подзапрос, то увидете что при прямой реализации он возвращает 1 запись, а не 10, (select min(salary) from Departments D2 where D2.dept=Departments.dept).

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

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

Думать тут нечего, и так все очевидно, другое дело что оптимизатор по-видимому этого и правда не делает. Может его сбивает с толку отсутсвие первичного ключа, может если разнести departments и salary в разные таблицы то запрос построится правильно. Случай нетипичный. В целом согласен: оракловый оптимизатор в данной ситуации выбирает не лучший план.
27 апр 04, 02:11    [650803]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
xz321
Guest
Merle. Где обещанный IO cost???
27 апр 04, 12:11    [651575]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Merle
Guest
Где обещанный IO cost???
Упс, простите, забыл совсем.. Но там все незатейливо:
Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0.

Идея была продемонстрировать что Merle не понимает своего же запроса и неверно истолковывает план
Ну если это была идея, тады ой, не стоило ради этого дурацкий флейм разводить и к словам цепляться, готов сразу признать, что я ничего не понимаю...
Мы с Вами, просто категорически общего языка не находим, Вы мне напоминаете того болельщика, который болеет не за ЦСКА, а против спартака, любой сервер хорош, если это не MS.
30 апр 04, 12:38    [659391]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
2 Merle

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


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

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

Кстати могли бы признать, что ошиблись с запросом и что запросы не эквивалентны.
1 май 04, 02:08    [660769]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Merle
Guest
А по-существу есть что сказать?
А по существу я уже все сказал еще в своем первом сообщении в этот топик, но Вас это почему-то не устроило... ;)

В частности очень интересно было бы получить ссылку на Дейта, где он говорит, что 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 при изменении Оракловского запроса подобным образом.
1 май 04, 10:39    [660818]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
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 не было бы необходимости. Это то же самое, что говорит Кодд.

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

Нет, и в этом случае тоже не эквивалентны.
Даже при условии уникальности записей Ваш запрос вернет столько записей, сколько департментов в таблице (это если у каждого департмента есть как минимум одна зарплата, если же зарплаты нет, то департмент в ответе не появится; если зарплата не уникальна, то записей будет даже больше). Запустите свой пример и проверьте. Оракловский запрос всегда вернет одну запись (для Вашего примера, а вообше может и ни одной не вернуть).
2 май 04, 04:44    [661121]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Merle
Guest
Кодд меня тоже устроит, хотя был обещан Дейт, ну да ладно.
Дейта никто не обещал, я сказал "хотя бы Дейта" :) Вам не надоело к словам цепляться?

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

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

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

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

Оракловский запрос всегда вернет одну запись (для Вашего примера, а вообше может и ни одной не вернуть).
Уффф... Он и в третий раз пошел за елкой.
На формальной эквивалентности запросов я никогда и не настаивал, но на определенном наборе данных эти запросы эквивалентны, и что как раз было важно в обсуждаемом примере, они пораждали эквивалентные планы на разных серверах.
Вы прекрасно понимаете что и когда я имел ввиду, у меня нет ни времени ни желания вылизывать формулировки, что бы у Вас не было придирок, благо у остальных глупых вопросов не возникает.
2 май 04, 13:09    [661173]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
u_gray
Member

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

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

ЗЫ: а навороты дело наживное.
2 май 04, 23:13    [661420]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
2 Merle

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

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

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

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

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

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


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

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

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

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

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

Merle>Одну. ;)


Специально было уточнение: на ваших данных. НА ВАШИХ ДАННЫХ запрос возвращает не одну а 10 записей. А оракл - одну. Если бы Вы потрудились прогнать свой запрос, а не только рассуждать насчет плана, то конфуза бы не случилось.
4 май 04, 03:14    [661912]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Merle
Guest
Специально было уточнение: на ваших данных. НА ВАШИХ ДАННЫХ запрос возвращает не одну а 10 записей. А оракл - одну. Если бы Вы потрудились прогнать свой запрос, а не только рассуждать насчет плана, то конфуза бы не случилось.
))))))))
Ok, признаю, был не прав. ;)
В процессе этого нудного обсуждения, когда ставил эксперименты, я упростил и MS'овский запрос (что вообще не изменило плана), и во всех последующих обсуждеиях эквивалентности Ораклу, я имел ввиду именно этот упрощенный запрос. Разные наборы в Oracle и MS этот запрос возвращал только в случае не уникальности. Сейчас, перечитав топик, я обнаружил, что нигде об этом не упомянул, хотя планы приводил именно для этого запроса (хотя, повторюсь, они практически идентичны), а не для первоначального.
Так что признаю, Ваша правда.

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

Но сути дела это не меняет, в данном случае MS'овский оптимизатор оказывается умнее всех..
4 май 04, 14:05    [662146]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Gt.
Guest
Но сути дела это не меняет, в данном случае MS'овский оптимизатор оказывается умнее всех..

что-то я не пойму ты смотришь - я ж показал что cost сиквеловского плана запроса в 4 раза больше, т.е. сиквел выбрал самый неудачный план из всех возможных. да кол-во чтений там больше, а cost гораздо меньше.
+ если поигратся с db_block_size то наверника именно для этого задачи можно получить совсем другие цифры (но естественно не под виндовс)
4 май 04, 14:56    [662194]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Leonid
Member [заблокирован]

Откуда: From nowhere
Сообщений: 743
Gt
(но естественно не под виндовс)

Это можно оставить как заголовок, все остальное убрать, получим жизненное кредо Gt - Yo!, c127 и других

автор
Но сути дела это не меняет, в данном случае MS'овский оптимизатор оказывается умнее всех..

Merle, можно не спорить, но болельщики "против Спартака", скорее застрелятся чем это признают.
5 май 04, 15:48    [663627]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
DmVa
Member

Откуда: Kyiv
Сообщений: 65
Народ вы конечно все хорошо так расписываете, и недостатки подмечаете, но скажите где можно посмотреть статистику по объёмам рынка отхватившим MSSQL и Oracle как по деньгам так и по количеству лицензий? имхо это будет весьма объективный критерий.
К сожалению пока сам такой статистики не нашел.....может кто подскажет?
Спасибо.
6 май 04, 13:03    [665381]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
c127
Guest
2 Merle
>Ok, признаю, был не прав. ;)

Уважаю.

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

2 DmVa

Присоединяюсь. Только боюсь это сильно секретная информация, в лучшем случае удасться получить только очень приблизительные цифры, прошедшие через отделы финансов, маркетинга и пр.
7 май 04, 06:35    [666842]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше? Оракул9i или MS SQL2000? И чем?  [new]
Merle
Guest
А что касается "все равно MSSQL лучше", так вроде бы Gt. привел план, вроде бы не лучше, вроде бы даже хуже получается.
План Gt показывает лишь то, что Оракл не умеет корректно работать с аналитическими функциями (в данном случае почему-то в кеш не кладет).
Там же план совсем не MS-овский, а попрежнему с двумя табличными сканированиями, против одного у MS.
Упрощенный запрос можно и без них в ручную с оптимизировать, и привести к MSSQL-ному плану, там хорошо видно, что он оптимальнее.

Присоединяюсь. Только боюсь это сильно секретная информация, в лучшем случае удасться получить только очень приблизительные цифры, прошедшие через отделы финансов, маркетинга и пр.
Да ну какая там секретная. Год назад, или даже больше, по всему рунету ссылка бегала с объемами рынка. Отчет в принципе ежегодный, так что сейчас должна быть свежая версия, правда искать лень.. ;)
На тот момент положение дел было примерно таково.
IBM - около 40%, Oracle - около 30%, MS - около 20%. Дальше ближайший лидер занимал не больше 3% рынка. Но надо учитывать, что MS только под винды, а остальные конкуренты всеядны, так что цифра в 20% - это серьезно.
Это только OLTP, С OLAP картина совершенно другая, MS была второй, а IBM и Oracle не выше десятого места, конкретных цыфр по объему не помню...
7 май 04, 15:33    [668130]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 11 12 13 14 15 16 17 18 [19] 20   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить