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

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
Выбегалло
drev
Выбегалло
locky

tru55 wrote:
> Как правило, раскрученный и используемый продукт так просто не помирает.
> В подобном случае его покупает кто-то другой и продолжает развивать тем
> или иным способом. Слишком дорого стоит процесс продвижения продукта...
Informix?
Posted via ActualForum NNTP Server 1.4


Информикс что ?
Чита, она же Informix 11 - самый раскрученный выпуск версии после 7ки.

Слухи о смерти информикса не то что бы преувеличены - а оказались полным враньем.


И до какого процента рынка её раскрутили?:)


И к чему это ? При чем процент рынка к смерти (ака прекращению выпуска новых версий) продукта ?


У нас с Вами разные представления о том, что такое "раскрученный" продукт.
27 окт 07, 22:23    [4847736]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Alexsalog
Member

Откуда:
Сообщений: 4116
Локшин Марк
Alexsalog
На Оркал в системе которой я сопровождаю осталось огромное количество совершенно дикого кода и запросов типо приведенного ниже (взято с этого формума, но у нас не лучше - ПОЧЕМУ ТО!!!). И отчего это??? (совпадение) Может чего то не хватает (несмотря на 5 сортов индексов и прочие фенечки, которые - а нужны ли?), раз разработчик идет на такой изврат. А я не мазо.

И к чему эта простыня кода была? Там даже никаких языковых конструкций которых нет в T-SQL не используется. Обычные запросы на ANSI'шном SQL, причем сами по себе запросы тривиальные, единственное, что несколько раз во FROM завернуты. Заметил только CREATE OR REPLACE. Но эта конструкция показывает преимущества совсем не того продукта.


Я объясню. Несмотря на общего родственника у "языковой среды" MS SQL и Oracle - ANSII SQL, Oracle и MS SQL пошли разным путем.
PL/SQL это как бы путь Clipper, FoxPro и прочих субд ориентированых на СПИСОК ЗАПИСЕЙ, по которому можно и нужно двигаться методами процедурного языка. Курсор - главныйн герой оракловых программ. Под него там сделано ВСЕ. Даже НЕДАВНО появившиеся pipeline функции "копят" записи в результрирующем рекордсете через курсор и конструкцию for - как основной метод.
Да в MS SQL нет записей, переменных типа row И проччих, типа "вкусностей" оракла. Но там это обходится легко и непринужденно временными таблицами.

Но в Оракле ТОЖЕ есть временные таблицы (еще бы из там не было - да там как в греции все есть, и ВСЕ можно сделать ВСЕМИ способами - но эб этом ниже). Но ими никто не пользуется. Как например автор того запроса (вернее вьюхи), который я привел.
Во-первых вьюху нельзя сделать многоэтапно. Как, представьте что этот топик мне пришлось бы писать ОДНИМ предложением, проявляя чудеса владения диепричастиями, inline вставками других предложений и все так продемонстировано в указаной вьюхе.
А все почему - возвращаюсь. И как же это обходится в MS SQL? А MS SQL просто написали бы созраненную процедуру, которая возвращает столько рекордсетов, сколько раз в её теле выполняется select * from без into.
В оракле - это не просто проблема - это мега проблем, котрая просуществовала до 9-ой! версии. До которой единственым путем ИНКАПСУЛЯЦИИ логики получения запроса была (и по привычке остается) вьюха - или много этажный запрос геренируемый во время выполнения программы клиента!!!
И все эти 65 разновидностей индексов нафиг не упали покуда была такая архитектурая дыра.
И 1001 способ которым можно сделать на PL/SQL одно и тоже - МИНУС, громадный, потому что есди тебе попадается код прдвинутого Ораклоида, то пипец - опять за парту!!!
Чего стоит такой изврат:
select 1, 2 from dual WITH (select abc, cde from some table)

Ну нахрена этот ЕЩЕ один способ сделать select * from???

И так далее и тому подобное.

У Microsoае продукты по крайней мере не являют собой СВАЛКУ всего того что было создано в 70-ые годы, а каждый новый продукт обладает логической целостностью, разумной завершенностью и конечноссть. функциональности - необходимой и ДОСТАТОЧНОЙ для решения заданых задач.
28 окт 07, 12:45    [4848312]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3823
drev
Выбегалло
drev
Выбегалло
locky

tru55 wrote:
> Как правило, раскрученный и используемый продукт так просто не помирает.
> В подобном случае его покупает кто-то другой и продолжает развивать тем
> или иным способом. Слишком дорого стоит процесс продвижения продукта...
Informix?
Posted via ActualForum NNTP Server 1.4


Информикс что ?
Чита, она же Informix 11 - самый раскрученный выпуск версии после 7ки.

Слухи о смерти информикса не то что бы преувеличены - а оказались полным враньем.


И до какого процента рынка её раскрутили?:)


И к чему это ? При чем процент рынка к смерти (ака прекращению выпуска новых версий) продукта ?


У нас с Вами разные представления о том, что такое "раскрученный" продукт.


Это потому что вы читать не умеете. Я говорил о "самом раскрученном выпуске версии", что включает в себя в основном пиар, а не завоевание доли рынка.
28 окт 07, 15:23    [4848506]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 122115
Alexsalog
Чего стоит такой изврат:
select 1, 2 from dual WITH (select abc, cde from some table)

Ну нахрена этот ЕЩЕ один способ сделать select * from???



Пример заставляет предположить, что Вы не понимаете смысл конструкции
WITH - написано неграмотно...
28 окт 07, 15:23    [4848507]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Yo.!
Guest
Alexsalog

Да в MS SQL нет записей, переменных типа row И проччих, типа "вкусностей" оракла. Но там это обходится легко и непринужденно временными таблицами.

толку от этой непринуждености если в серьезном продакшене их юзать нельзя ? перекомпиляция, блокировки систаблиц и прочие прелести при серьезных нагрузках легко не обходятся. открываем новый TPC-E и смотрим наглядно, как нужно извратится профи, когда заходит речь о маштабируем коде на t-sql ...

Alexsalog

В оракле - это не просто проблема - это мега проблем, котрая просуществовала до 9-ой! версии.

не понял, ref_cursor был в оракле еще 15 лет назад, в mssql до сих пор вернуть несколько резалт сетов можно только последовательно !?

Alexsalog

До которой единственым путем ИНКАПСУЛЯЦИИ логики получения запроса была (и по привычке остается) вьюха - или много этажный запрос геренируемый во время выполнения программы клиента!!!

можно для тупых повторить, что за проблема вернуть 25 реф-курсоров из oracle7 от 1992 года ?

Alexsalog

И 1001 способ которым можно сделать на PL/SQL одно и тоже - МИНУС, громадный, потому что есди тебе попадается код прдвинутого Ораклоида, то пипец - опять за парту!!!

вот тут согласен, главное различие в идеологии. оракл считает программера человком с мозгами которому и предоставляет тучу инструментов, которые более эфективны, каждый в своей ситуации. mssql считает программера быдлом, котрое не способно сделать адекватный выбор инструмента для ситуации и все делает, чтоб у него было как можно меньше выбора и соответственно вариантов начудить.

Alexsalog

У Microsoае продукты по крайней мере не являют собой СВАЛКУ всего того что было создано в 70-ые годы, а каждый новый продукт обладает логической целостностью,

за что сыскало безумную благодарность тысяч клиентов которые выяснили, что чтоб мигрировать на mssql2k5 надобится сотни человеко-часов, т.к. на свалку были выкинуты целые конструкции sql. про счастивых VBшников, FOXPROшников и юзеров MS JAVA мы тактично промолчим ;)
28 окт 07, 21:05    [4848868]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
zhmur
Member

Откуда: Severodvinsk
Сообщений: 362
Раз уж разговор пошёл о возможностях. Как в MS SQL реализована работа с XML? Насколько я понимаю такой полной и комплексной поддержки, как в оракле, в MS SQL ещё долго не будет. Чего стоит один репозитарий XML DB. Я не знаю даже похожих аналогов у MS.
28 окт 07, 21:49    [4848915]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Alexsalog
Member

Откуда:
Сообщений: 4116
dmidek
Alexsalog
Чего стоит такой изврат:
select 1, 2 from dual WITH (select abc, cde from some table)

Ну нахрена этот ЕЩЕ один способ сделать select * from???



Пример заставляет предположить, что Вы не понимаете смысл конструкции
WITH - написано неграмотно...

Писал из интернет-кафе (без доки). Да, конструкцией не пользовался никогда. Увидел у "ораклоида". Чем это отличается от обычного вложеного запроса я так и не понял с его слов.
На мой взгляд - ненужная, избыточная деверсификация конструкций языка.

Yo.!
Alexsalog

В оракле - это не просто проблема - это мега проблем, котрая просуществовала до 9-ой! версии.

не понял, ref_cursor был в оракле еще 15 лет назад, в mssql до сих пор вернуть несколько резалт сетов можно только последовательно !?


Покажите как использовать ref_cursor в случае если в клиентской программе "пользователю" предоставлено поле для запроса, который будет тупо запущен на выполнение и от которого клиентская программа ждет набора записей как если бы это было "select * from...". На скуле это делалось:
exec SomeSP(parameters,parameters,parameters,);
Покажите правда - мне это очень нужно поработе. Хотя в современных условиях уже есть слава богу pipeline функции. Но, как бы это Вы сделали до 9-ой версии?
Мои предшественники плодили многоэтажные вью.
29 окт 07, 02:04    [4849113]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
Alexsalog
dmidek
Alexsalog
Чего стоит такой изврат:
select 1, 2 from dual WITH (select abc, cde from some table)

Ну нахрена этот ЕЩЕ один способ сделать select * from???



Пример заставляет предположить, что Вы не понимаете смысл конструкции
WITH - написано неграмотно...

Писал из интернет-кафе (без доки). Да, конструкцией не пользовался никогда. Увидел у "ораклоида". Чем это отличается от обычного вложеного запроса я так и не понял с его слов.
На мой взгляд - ненужная, избыточная деверсификация конструкций языка.


Попробуйте почитать документацию по SQL Server 2005. Обратите внимание на CTE. И WITH.

Далее, на мой взгляд, Вы занимаетесь шапкозакидательством. Действительно, SQL Server ест долю рынка Oracle, но по другим причинам.
29 окт 07, 05:45    [4849155]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
locky

pkarklin wrote:
> Пакеты тоже обсуждались... Их нет и не будет, ибо...
Жалко. Я б от пакетов не отказалсо - удобная штука, надо сказать...
Posted via ActualForum NNTP Server 1.4


А в чём их удобство?:)

Комбинация недокласса с недоинтерфейсом:)

Базовые недостатки:

1. Две команды для создания пакета (в нормальной ситуации для этого используют private, public).
2. Пакет, это такой псевдосинглетон (session-wide), в котором все методы - статические.
3. Все доводы, почему глобальные переменные почти всегда не стоит использовать, применимы к пакетным переменным целиком и полностью.
4. Перекомпиляция всего мегабайтного пакета при изменении одной private функции - гениальное изобретение.
5. Куча проблем в работе с метаданными из-за пакетов.
6. Dependecies, которые вступают в противоречие с изоляцией
29 окт 07, 06:27    [4849172]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472

>Да в MS SQL нет записей, переменных типа row
смеялсо


Posted via ActualForum NNTP Server 1.4

29 окт 07, 08:26    [4849248]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
ScareCrow

>Да в MS SQL нет записей, переменных типа row
смеялсо


Posted via ActualForum NNTP Server 1.4


А что, есть?:)
29 окт 07, 09:45    [4849398]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Alexsalog

Я объясню.
Несмотря на общего родственника у "языковой среды" MS SQL и Oracle - ANSII SQL, Oracle и MS SQL пошли разным путем.

Что-то Ваше обяснение не выглядит как ответ на вопрос зачем Вы привели именно этот кусок кода, в связи с неуверенностью что он лучше всего представляет Оракл. Т.е. предполагалась, что вы докажете что это лучшее из лучшего в Оракле. А Вы пытаетесь другое обяснять - типа давать сравнительный анализ языков. Слишком грубая пропаганда получается. Вас про Ерему спрашуют, а Вы типа про Фому, да еще и объясняете.

Alexsalog

PL/SQL это как бы путь Clipper, FoxPro и прочих субд ориентированых на СПИСОК ЗАПИСЕЙ, по которому можно и нужно двигаться методами процедурного языка. Курсор - главныйн герой оракловых программ. Под него там сделано ВСЕ. Даже НЕДАВНО появившиеся pipeline функции "копят" записи в результрирующем рекордсете через курсор и конструкцию for - как основной метод.

Вообще курсор главный герой в механизме доступа к результатам языка, который поддерживает множество записей SQL из языка, который может поддерживать только одну запись (это большинство если не все языки ХП). Не только у Оракла.
Эти языки не поддерживают множества записей (видно то что Вы назвали СПИСОК ЗАПИСЕЙ). Потому и используются курсоры. Но у PL/SQL - есть коллекции, пожалуста заполняйте и пользуйтесь. И PL/SQL это как больше АДА, если верить другим сравнивателям языков. С клиппером сто пудово ничего общего не имеет. А на "СПИСОК ЗАПИСЕЙ" как бы ориентированы сами РСУБД в силу природы вещей.

Alexsalog

Но в Оракле ТОЖЕ есть временные таблицы (еще бы из там не было - да там как в греции все есть, и ВСЕ можно сделать ВСЕМИ способами - но эб этом ниже). Но ими никто не пользуется. Как например автор того запроса (вернее вьюхи), который я привел.

Почему в Оракле ТОЖЕ, а не наоборот в Скуле тоже? Оракл их у Скуля содрал? Хорошо поверю Вам на слово, хотя пока все говорит о том, что это слишком беспечно.
Почему же никто не пользуется? Потому что все берут пример с автора? Это Ваше предположение не верно - пользуются.

Alexsalog

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

Что скрывается за "сделать вьху многоэтапно".

Alexsalog

А все почему - возвращаюсь. И как же это обходится в MS SQL? А MS SQL просто написали бы созраненную процедуру, которая возвращает столько рекордсетов, сколько раз в её теле выполняется select * from без into.

Тоже пока неясно. Там где можно обойтись одним SQL, Вы предлагаете уже использовать ХП?
Т.е. перемешивать декларативный и ассоциативный доступ SQL c императивными методами другого языка? Всегда думал, что это плохой стиль, какой-бы большой SQL не был. Ить SQL язык БД. И если только выразительной силы не хватает диалекта SQL данной СУБД получения нужного представления, тогда приходится прибегать к его процедурным расширениям. Но это типа заплатка.
Может просто Вы проггер, а не базист и все пытаетесь запихать в процедуры?

Alexsalog

В оракле - это не просто проблема - это мега проблем, котрая просуществовала до 9-ой! версии. До которой единственым путем ИНКАПСУЛЯЦИИ логики получения запроса была (и по привычке остается) вьюха - или много этажный запрос геренируемый во время выполнения программы клиента!!!

Про проблему все же расшифруйте. Впервые о ней читаю. А ведь вроде читал не мало. Вьюхи вообще испотльзуются для независимости данных от приложений. Что еще за логика получения запроса, которая ИНКАПСУЛИРУЕТСЯ и зачем? И куда она инкапсулируется? Разве не достаточно логики самого запроса, которая содержится в SQL? Ить SQL это язык БД. А Вы думали что? Язык написания параметров для рекордсетов?

Alexsalog

И все эти 65 разновидностей индексов нафиг не упали покуда была такая архитектурая дыра.
И 1001 способ которым можно сделать на PL/SQL одно и тоже - МИНУС, громадный, потому что есди тебе попадается код прдвинутого Ораклоида, то пипец - опять за парту!!!

Все еще про дыру и тем более архитектурную не доконца ясно. Вы не продвинутый ораклоид? Я разочарован немного. Про архитектурные дыры надо подписываться продвинутым ораклоидом.
И разве если есть несколько дорог в одно и то же место, не может оказаться так, что одна из них покороче будет? А если тока одна это не всегда вызывает сожаления?

Alexsalog

Чего стоит такой изврат:
select 1, 2 from dual WITH (select abc, cde from some table)

Ну нахрена этот ЕЩЕ один способ сделать select * from???


А затем что SQL расшифровывается как структурированный язык запросов, а эта конструкция позволяет повысить структурированость некоторых запросов.

Alexsalog

У Microsoае продукты по крайней мере не являют собой СВАЛКУ всего того что было создано в 70-ые годы, а каждый новый продукт обладает логической целостностью, разумной завершенностью и конечноссть. функциональности - необходимой и ДОСТАТОЧНОЙ для решения заданых задач.

Что-то отсутствие пакетов, без которых код может быть похож на свалку Вас не обеспокоила. Зато свалка языков 70 (а главные идеи языков их конструкций в целом тада и были придуманы, включая ООП) Вас не шуточно беспокоит. Придумайте новый язык. Набор слов: логическая целостность, разумная завершонность и конечность и функциональности - необходимой и ДОСТАТОЧНОЙ для решения заданых задач предлагаю считать пропагандистской уловкой, до выяснения что за этим скрывается и подтверждением, что этого нет у другого продукта, в данном случае Оракла.

Удивительно, что Вы верите, что сможете легко придумать что-то новое в этом сравнении? Ведь им занимались более или менее грамотные специалисты и не только здесь.
Или Вы как ЧАЛ записали их всех в недоучки?
29 окт 07, 10:15    [4849534]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
Alexsalog
Несмотря на общего родственника у "языковой среды" MS SQL и Oracle - ANSII SQL, Oracle и MS SQL пошли разным путем.

Для начала я бы добавил, что разными путями пошли Oracle и Sybase, а уж потом MSSQL взял то, что было у Sybase. Первое впечатления от знакомства с процедурными расширениями Oracle и Sybase в середине 90-ых было таким (я тогда почти одновременно столкнулся с обоими вариантами):
Oracle взял существующий язык программирования и интегрировал в него возможность выполнения запросов. Естественно, изначальный язык ни о каких курсорах не подозревал и возможность работы с многострочными наборами появилась позже.
Sybase же пошел не от языка пргограммирования, а от SQL - была сделана возможность хранить в СУБД скрипты, обычно хранившиеся в файлах. Этакий аналог bat-файлов. Потом уже оказалось, что идея чрезвычайно плодотворная и язык стали развивать, но избавиться от изначальной bat-ности до сих пор не удалось.
29 окт 07, 10:39    [4849661]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
толку от этой непринуждености если в серьезном продакшене их юзать нельзя ?


От жежь, а. "Все" юзают, и только Yo.! "нельзя." ;)

Yo.!
перекомпиляция,


Эт не проблема сервера, а проблема кривизны рук разработчика. В некоторых случаях перекомиляция как раз таки помагает выбрать более корректный план выполнения.

Yo.!
блокировки систаблиц


Этому баяну сто лет в обед. И это было верно для 7.0.

Yo.!
и прочие прелести


Какие?! :)

Yo.!
в mssql до сих пор вернуть несколько резалт сетов можно только последовательно !?


Ашыпка вышла. Можно. Let's google - MARS. ;)
29 окт 07, 11:55    [4850157]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
zhmur
Раз уж разговор пошёл о возможностях. Как в MS SQL реализована работа с XML? Насколько я понимаю такой полной и комплексной поддержки, как в оракле, в MS SQL ещё долго не будет. Чего стоит один репозитарий XML DB. Я не знаю даже похожих аналогов у MS.


Ну, давайте, тогда, определимся, что есть для Вас признаки "полной и комплексной поддержки". О поддержке XML в MS SQL можно узнать здесь:

https://www.sql.ru/articles/mssql/2005/020901XMLSupportInMicrosoftSQLServer2005.shtml
29 окт 07, 11:58    [4850185]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

drev wrote:
> А в чём их удобство?:)
>
> Комбинация недокласса с недоинтерфейсом:)

Это у них реализация хреновая, а идея - ничо так...
Я б не отказался группировать процы в пакеты.
Ну не нравицо мне, когда у меня 22 тыщи процедур для 500+ документов и
отчетов - много это :(
А вот 500+ пакетов - это уже обозримо :)

Posted via ActualForum NNTP Server 1.4

29 окт 07, 13:02    [4850603]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
locky
Это у них реализация хреновая, а идея - ничо так...
Я б не отказался группировать процы в пакеты.
Ну не нравицо мне, когда у меня 22 тыщи процедур для 500+ документов и
отчетов - много это :(
А вот 500+ пакетов - это уже обозримо :)


Если я правильно понял, то все, что Вам необходимо - это наличие некоего "группирующего" контейнера? Если так, то почему бы не использовать, например, VSS, для "группировки"?
29 окт 07, 13:11    [4850666]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Alex_Toms
Member

Откуда: Саранск
Сообщений: 600
Эх так и хочется и мне кинуть свой камень в этот спор.
А вот и не подерётесь!

Десять лет назад мне пришлось осваивать MSSQL 6 (делал разработку) и с небольшой разницей Oracle 7.7 (обслуживание биллинга). MSSQL осваивать пришлось самостоятельно, если бы не графическая оболочка и наличие тогда литературы, вряд ли бы я смог осилить этот сервер и от разработки пришлось бы отказаться. В общем от освоения MSSQL остались хорошие воспоминания.
Освоение Oracle оказалось гораздо сложнее, настройка и управление сервером в основном приходилось делать скриптами запускаемые пакетными (bat) файлами. После ухода с DOS, это казалось каким то архаизмом, потом ничего, привык. А дальше с опоздание всё таки появилась графическая оболочка. Литературы было мало. От спецов по Oracle так и веяло снобизмом и очень пренебрежительно относились к MSSQL, на тот момент по возможностям, он конечно сильно уступал Oracle, но был гораздо проще.
По опыту могу сказать, что лично мне хотелось бы видеть SQL сервер, который воплотил бы все плюсы этих систем, но к сожалению это не реально, а полезные вещи есть и там и там.

Всем удачи.
29 окт 07, 13:14    [4850682]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

pkarklin wrote:
> Если я правильно понял, то все, что Вам необходимо - это наличие некоего
> "группирующего" контейнера? Если так, то почему бы не использовать,
> например, VSS, для "группировки"?
да использую :). (точнее - использовал во время оно).
Но пакеты - было бы удобно, всё-таки...

Posted via ActualForum NNTP Server 1.4

29 окт 07, 13:53    [4850894]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
locky

pkarklin wrote:
> Если я правильно понял, то все, что Вам необходимо - это наличие некоего
> "группирующего" контейнера? Если так, то почему бы не использовать,
> например, VSS, для "группировки"?
да использую :). (точнее - использовал во время оно).
Но пакеты - было бы удобно, всё-таки...


Ну, положим, пакеты в Oracle позволяют не только группировать процедуры вместе. Как минимум:
1. использование пакетных переменных для передачи значений между программными единицами, например, между триггерами и процедурами
2. возможность перегрузки процедур
3. единая грантовка на пакет целиком
29 окт 07, 14:22    [4851092]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Yo.!
Guest
pkarklin

От жежь, а. "Все" юзают, и только Yo.! "нельзя." ;)

Ага смотрим MSDN

MSDN
In general, you use table variables whenever possible except when there is a significant volume of data and there is repeated use of the table. In that case, you can create indexes on the temporary table to increase query performance. However, each scenario may be different. Microsoft recommends that you test if table variables are more helpful than temporary tables for a particular query or stored procedure.

http://support.microsoft.com/default.aspx?scid=kb;en-us;305977

а теперь смотрим код MS из TPC-E :

CREATE PROCEDURE    MarketFeedFrame1	
                        @st_submitted_id    char(4),
                        @type_limit_buy     char(3),
                        @type_limit_sell    char(3),
                        @type_stop_loss     char(3),

                        @qty1     int, @price1    S_PRICE_T, @symbol1     varchar(15),
                        @qty2     int, @price2    S_PRICE_T, @symbol2     varchar(15),
                        @qty3     int, @price3    S_PRICE_T, @symbol3     varchar(15),
                        @qty4     int, @price4    S_PRICE_T, @symbol4     varchar(15),
                        @qty5     int, @price5    S_PRICE_T, @symbol5     varchar(15),
                        @qty6     int, @price6    S_PRICE_T, @symbol6     varchar(15),
                        @qty7     int, @price7    S_PRICE_T, @symbol7     varchar(15),
                        @qty8     int, @price8    S_PRICE_T, @symbol8     varchar(15),
                        @qty9     int, @price9    S_PRICE_T, @symbol9     varchar(15),
                        @qty10    int, @price10   S_PRICE_T, @symbol10    varchar(15),

                        @qty11    int, @price11   S_PRICE_T, @symbol11    varchar(15),
                        @qty12    int, @price12   S_PRICE_T, @symbol12    varchar(15),
                        @qty13    int, @price13   S_PRICE_T, @symbol13    varchar(15),
                        @qty14    int, @price14   S_PRICE_T, @symbol14    varchar(15),
                        @qty15    int, @price15   S_PRICE_T, @symbol15    varchar(15),
                        @qty16    int, @price16   S_PRICE_T, @symbol16    varchar(15),
                        @qty17    int, @price17   S_PRICE_T, @symbol17    varchar(15),
                        @qty18    int, @price18   S_PRICE_T, @symbol18    varchar(15),
                        @qty19    int, @price19   S_PRICE_T, @symbol19    varchar(15),
                        @qty20    int, @price20   S_PRICE_T, @symbol20    varchar(15)
                        
AS
...

    -- Populate the @ticker table from the procedure parameters.

    INSERT INTO @ticker VALUES ( 1,  @qty1,  @price1,  @symbol1)
    INSERT INTO @ticker VALUES ( 2,  @qty2,  @price2,  @symbol2)
    INSERT INTO @ticker VALUES ( 3,  @qty3,  @price3,  @symbol3)
    INSERT INTO @ticker VALUES ( 4,  @qty4,  @price4,  @symbol4)
    INSERT INTO @ticker VALUES ( 5,  @qty5,  @price5,  @symbol5)
    INSERT INTO @ticker VALUES ( 6,  @qty6,  @price6,  @symbol6)
    INSERT INTO @ticker VALUES ( 7,  @qty7,  @price7,  @symbol7)
    INSERT INTO @ticker VALUES ( 8,  @qty8,  @price8,  @symbol8)
    INSERT INTO @ticker VALUES ( 9,  @qty9,  @price9,  @symbol9)
    INSERT INTO @ticker VALUES (10, @qty10, @price10, @symbol10)
    INSERT INTO @ticker VALUES (11, @qty11, @price11, @symbol11)
    INSERT INTO @ticker VALUES (12, @qty12, @price12, @symbol12)
    INSERT INTO @ticker VALUES (13, @qty13, @price13, @symbol13)
    INSERT INTO @ticker VALUES (14, @qty14, @price14, @symbol14)
    INSERT INTO @ticker VALUES (15, @qty15, @price15, @symbol15)
    INSERT INTO @ticker VALUES (16, @qty16, @price16, @symbol16)
    INSERT INTO @ticker VALUES (17, @qty17, @price17, @symbol17)
    INSERT INTO @ticker VALUES (18, @qty18, @price18, @symbol18)
    INSERT INTO @ticker VALUES (19, @qty19, @price19, @symbol19)
    INSERT INTO @ticker VALUES (20, @qty20, @price20, @symbol20)



и вспоминаем "захочешь жить - не так раскорячешся" (C) Особености национальной рыбалки.

pkarklin

Эт не проблема сервера, а проблема кривизны рук разработчика. В некоторых случаях перекомиляция как раз таки помагает выбрать более корректный план выполнения.

ага, и чего это профи из Майкрософт приходится так извращатся, рекомпиляция бы так чудно помогла найти корректный план ? или у них в TPC тотально у всех ручки кривые ? :)

pkarklin

Yo.!
и прочие прелести


Какие?! :)

ну i/o на tempdb к примеру ...

pkarklin

Ашыпка вышла. Можно. Let's google - MARS. ;)

неужто научился иметь несколько недофеченых резалт сетов ?

2zhmur
поддержка XML у MS сводится к пришлепке сверху на BLOB, со всеми вытекающими ... ничего похоже га xmldb в планах не числится. у оракла такая пришлепка кажется в 8i еще была.

ЗЫ. фича пакетов не просто в объединении но и в объявлении общих переменных, курсоров и т.п.
29 окт 07, 14:23    [4851096]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
Alex_Toms
Member

Откуда: Саранск
Сообщений: 600
А мне идея использования пакетов нравится. Это аналог подкаталогов (папок), можно раскидать объекты по функциональному назначению или по группам разработчиков, чтобы легче было сопровождать систему. Не всегда ведь удобно, когда все файлы находятся в одной папке. Хотя это дело вкуса, а о вкусах спорить бесполезно.
И мне также больше нравятся обозначение переменных без @, и есть цикл FOR и WHILE, и гибкий экспорт-импорт, позволяющий выборочно переносить данные из БД и избавляться от фраментации табличного пространства. Также есть синонимы, штука бывает очень полезная. И документирование объектов гораздо удобнее. Но нет некоторых типов полей, например как BIT, а это более удобно чем поле CHAR, и свойство Identity больше нравится, чем использование последовательностей, и SELECT без DUAL болше нравится, но это уже мелочи...
29 окт 07, 14:34    [4851163]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

tru55 wrote:
> Ну, положим, пакеты в Oracle позволяют не только группировать процедуры
> вместе. Как минимум:
> 1. использование пакетных переменных для передачи значений между
> программными единицами, например, между триггерами и процедурами
Удобно. Но, к сожалению, некоторые т.н. "программисты" этим очень
злоупотребляют :)
С другой стороны - можно ведь и не злоупотреблять, верно?
Удобно, одним словом.

> 2. возможность перегрузки процедур
Сомнительно - зачем нужно? Для геммороя?

> 3. единая грантовка на пакет целиком
У меня таких проблем не возникало - гранты имеют только ~1% от общего
числа процедур. но, в любом случае - возможность есть - пусть будет.

Хотя мне больше всё-таки нужна группировка (ну, и от пакетных переменных
- тоже не отказаолся бы, наверное).

Posted via ActualForum NNTP Server 1.4

29 окт 07, 14:44    [4851216]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
Ага смотрим MSDN


Ну, давайте посмотрим... Только в "оригинальную" статью (есть ссылка в приведенной Вами стаье), а не в FAQ по табличным переменным, да еще по 2000 версии.

If a sufficient percentage of data has changed in a table referenced by a stored procedure since the time the original query plan was generated, SQL Server will recompile the stored procedure to ensure that it has a plan based on the most up-to-date statistical data. As an example, consider the following stored procedure:...

Т.е. Вы считаете, что если Вы по ходу дела (после того, как был создан план выполнения хп) залили во времянку пару-тройку сотен тысяч записей для обработки, то план, составленный на этапе копиляции (когда таблица пуста - читай отсутствует статистика) будет самым верным? IMHO, все с точностью до наоборот!

Yo.!
а теперь смотрим код MS из TPC-E :


И что здесь на Ваш взгляд "криминального"? Значения парамтеров положили в табличную переменную. Предположу, что для дальнейшей SET-ориентированной обработки. Если будет приведен полный текст или тынц на оный, можно будет о чем то рассуждать. А так - слив не засчитан.

Yo.!
ну i/o на tempdb к примеру ...


Т.е. вот так вот абстрактно "i/o на tempdb"? В каком контексте? М.б. ВЫ о версионности? Могу Вас разочаровать версионность (успешно используем на OLTP системе) не создает какой-либо заметной нагрузки на tempdb. Почему, наверное стоит прильнуть к первоисточнику, например, Inside Microsoft® SQL Server™ 2005: The Storage Engine By Kalen Delaney Там даже и формула для расчета приведена.

Yo.!
неужто научился иметь несколько недофеченых резалт сетов ?


А то?!

Yo.!
фича пакетов не просто в объединении но и в объявлении общих переменных,


и

tru55
использование пакетных переменных для передачи значений между
программными единицами, например, между триггерами и процедурами


Тсс... Не говорите больше об этом никому. Это считается моветоном в программировании.
29 окт 07, 15:09    [4851388]     Ответить | Цитировать Сообщить модератору
 Re: Microsoft задавит Oracle  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
pkarklin

tru55
использование пакетных переменных для передачи значений между
программными единицами, например, между триггерами и процедурами


Тсс... Не говорите больше об этом никому. Это считается моветоном в программировании.


Да что вы говорите?
На этом основан, в частности, стандартный способ избавления от мутации таблицы в триггере.
Я уж не говорю об удобстве отключения функционирования части (всего) триггера в зависимости от значения переменной, которое в каждой сессии свое, и проч.
29 окт 07, 15:21    [4851483]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 17   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить