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

Откуда: Рязань
Сообщений: 11092
17-77
я не знаю где еще есть вложенные функции, но если уж их сделали в оракле, то сделали бы нормальными и не заставляли бы писать говно код


C# очень сложный и навороченный язык. Но всё же он позволяет это сделать в концепции ООП. Методы не есть аналоги вложенных функций. Вложенные классы это тоже другое. В PL/SQL не никаких классов. Да и большинство других языков программирования это не позволяет сделать. Так можно договориться и до того чтобы в PL/SQL были шаблоны, лямбда выражения и другой синтаксический сахар.

Лично мне там гораздо больше не хватает возможности if (exists(select * from table))... а необходимость объявлять вложенную функцию прежде чем её использовать вполне можно пережить, поскольку я везде привык так делать.
9 окт 13, 15:08    [14945391]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
OYM
Member

Откуда:
Сообщений: 236
Симонов Денис
17-77
я не знаю где еще есть вложенные функции, но если уж их сделали в оракле, то сделали бы нормальными и не заставляли бы писать говно код


C# очень сложный и навороченный язык. Но всё же он позволяет это сделать в концепции ООП. Методы не есть аналоги вложенных функций. Вложенные классы это тоже другое. В PL/SQL не никаких классов. Да и большинство других языков программирования это не позволяет сделать. Так можно договориться и до того чтобы в PL/SQL были шаблоны, лямбда выражения и другой синтаксический сахар.

Лично мне там гораздо больше не хватает возможности if (exists(select * from table))... а необходимость объявлять вложенную функцию прежде чем её использовать вполне можно пережить, поскольку я везде привык так делать.


Сейчас оракловоды Вас побьют за if exists так как это считается дурным тоном, мол сейчас exists, а через полсекунды уже не exists
9 окт 13, 18:46    [14947031]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
OYM,

тоже самое можно сказать про count(*), который сейчас применяется вместо этого. Поэтому это бред. В таком случае и в запросе нельзя exists использовать.
9 окт 13, 19:01    [14947101]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

OYM
мол сейчас exists, а через полсекунды уже не exists

Ну так это так для любой СУБД, которая по умолчанию использует dirty read или read committed.

Posted via ActualForum NNTP Server 1.5

9 окт 13, 19:07    [14947132]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Dimitry Sibiryakov
Yo.!
не надоело козырять своим невежеством ?

Ну, раз никто не козыряет вежеством о том почему Оракулу впадлу отдавать select-у в
триггере данные такими, какими они были на начало работы запроса или игнорировать
изменения, сделанные DML-ем в функции...

Это то не вопрос, вопрос в том, что то, что сформулировали Вы нужно чуть более чем никому из тех, кто пытается вызвать мутацию строк. Им подавай с изменениями от предыдущего триггера, а они еще формально не произошли.
9 окт 13, 21:33    [14947527]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

Сергей Арсеньев
Им подавай с изменениями от предыдущего триггера

Изменения от предыдущего триггера отлично видны в new без всяких запросов.

Posted via ActualForum NNTP Server 1.5

9 окт 13, 21:56    [14947585]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
OYM
MS SQL настолько удобен и комфортен, что проблема СУБД не должна стоят. Однако, у многих такая проблема стоит. Не могу понять отчего.

Если сказать админу магазина, что ему надо обрабатывать 6 миллионов заказов в минуту на складе с ассортиментом 48 миллиардов позиций и 14.4 миллиардов разных аккаунтов покупателей, админ скажет, что так не бывает, и его не волнует, потянет MS SQL такую нагрузку или нет. Но ведь это всего-навсего старая добрая TPC C на большом масштабе, а реальные задачи бывают и с масштабом побольше и с нагрузкой посложнее. И к одному такому жирному карасю вынуждены пристраиваться десятки а то и тысячи контор поменьше, которых никто не спрашивает, какая СУБД им больше нравится :)
10 окт 13, 04:39    [14948216]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2112
Меня лично бесили эскалации блокировок в мс скуле. И что чтение блокируется. Орякул крут в своей версионности)
10 окт 13, 05:46    [14948236]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
MS SQL Server forever !!!
Guest
OYM
Зачем выбирать другие СУБД, если существует MS SQLServer?

А нефиг другие выбирать ...
10 окт 13, 08:41    [14948369]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Infernal V. Raven
Member

Откуда: St.Petersburg
Сообщений: 1710
Melkomyagkii_newbi
Меня лично бесили эскалации блокировок в мс скуле. И что чтение блокируется. Орякул крут в своей версионности)

Это сколько лет назад было?
MSSQL может работать как версионник.
10 окт 13, 12:56    [14950014]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Dimitry Sibiryakov
Изменения от предыдущего триггера отлично видны в new без всяких запросов.

Эм. В других строках?

А то на форуме Oracle, на мутацию все время нарываются те, кто хотят наложить при помощи триггера ограничение не более трех студентов в одной аудитории одновременно.
10 окт 13, 14:10    [14950697]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

Сергей Арсеньев
А то на форуме Oracle, на мутацию все время нарываются те, кто хотят
наложить при помощи триггера ограничение не более трех студентов в одной аудитории
одновременно.

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

Posted via ActualForum NNTP Server 1.5

10 окт 13, 14:14    [14950746]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
ИХМО мутации добавляют больше проблем чем защиты.
Буквально вчера разбирал перл предыдущего разработчика.

Он в триггере на вставку (FOR EACH ROW) запоминал одно из полей в переменную пакета. А потом триггере уровня статмента делал запрос к той же таблице для проверки дубликатов используя эту переменную. В результате как только будет вставка не одной записи, а нескольких (INSERT TABLE SELECT ...), то получаем полный бред.

Конечно понятно, что это ошибка разработчика. Он пытался таким образом обойти мутацию. И ему это удалось, вот только избавило ли его это от ошибок?
10 окт 13, 14:40    [14950976]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Dimitry Sibiryakov
Мутации или отсутствие таковых тут никаким боком не помогут.

Собственно они и помогают. Просто в политкоректной стране нельзя вывести сообщение об ошибке - программист не понимает что делает. Вот и придумали термин про мутацию строк.

Другое дело, что аналога select .. as of для текущей транзакции они действительно не делают.
Наверное потому, что тогда все изменения надо нумеровать - а значит выстраивать в очередь, что совсем не айс.
10 окт 13, 14:44    [14951018]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Симонов Денис
ИХМО мутации добавляют больше проблем чем защиты.

Так против лома (изобретательного дурака) нет приема...

Этот человек наверное и про парралельную работу нескольких клиентов с БД ничего не слышал.

Обычно когда ловят ошибку про мутацию идут на форму и выесняют, что консистентность на версионнике делают иначе.
10 окт 13, 14:54    [14951102]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Сергей Арсеньев,

ну так про то и толк. Если Оракл не смог защитить дурака именно от этой ошибки, то почему защищает от другой посредством мутаций?
10 окт 13, 15:00    [14951173]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Симонов Денис
Если Оракл не смог защитить дурака именно от этой ошибки, то почему защищает от другой посредством мутаций?


Оракл это железка. Как мог он его защитил, но тот нашел обходной путь.
10 окт 13, 15:08    [14951242]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
Симонов Денис
ИХМО мутации добавляют больше проблем чем защиты.
... то получаем полный бред.
Если бы Oracle реализовал таки чтение из модифицируемой таблицы, то был бы точно такой же полный бред.
Вот и вопрос: на кой хрен заниматься реализацией такой спорной фичи, если идиотам она все-равно не поможет?
10 окт 13, 15:19    [14951337]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67462
Блог
Симонов Денис
ИХМО мутации добавляют больше проблем чем защиты.

Мутации добавляют больше геморроя и меньше проблем по сравнению с отсутствием мутации. Имхо.

Симонов Денис
Конечно понятно, что это ошибка разработчика. Он пытался таким образом обойти мутацию. И ему это удалось, вот только избавило ли его это от ошибок?

Мутация - это способ крикнуть "дурачок, ты хочешь сделать какую-то фигню, подумай получше". Если дурачок подумал и настаивает.... ну давайте посмотрим аналогию. Пробки/автомат в щитке - это способ крикнуть "дурачок, твоя нагрузка сейчас спалит всё нахрен". И если дурачок подумал и настаивает (ну там ставит жучка, for example...) Это не означает, что в щитке не нужны автоматы :)
10 окт 13, 15:22    [14951368]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

softwarer
Мутация - это способ крикнуть "дурачок, ты хочешь сделать какую-то фигню,
подумай получше".

В этом случае ошибка должна выдаваться при любом обращении к таблице. А то оно "тут
играет, а там рыбу заворачивали". Например, на идиотов, проверяющих уникальность селектом
в before insert триггерах, мутация обычно не выскакивает. Она выскакивает совсем на других
людей, которые на свою голову использовали insert select.

Posted via ActualForum NNTP Server 1.5

10 окт 13, 15:35    [14951498]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
Bogdanov Andrey
Вот и вопрос: на кой хрен заниматься реализацией такой спорной фичи, если идиотам она все-равно не поможет?
Как представитель производителя СУБД, ответственно заявляю --- если реализовывать только те бесспорные фичи, которые даже идиотам помогут, то писать СУБД лучше и не начинать. Объяснение легко нагуглить по словам "отец Перегрин амеба руки ноги грехи". (А слабО вспомнить без гугла? :)
10 окт 13, 15:51    [14951637]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67462
Блог
Dimitry Sibiryakov
В этом случае ошибка должна выдаваться при любом обращении к таблице.

Неверно. Экстремальный пример: я партиционировал таблицу, данные закрытых периодов положил на read only носитель. Заглядываю посмотреть - и опаньки, "Данные мутируют (ц) Дима Сибиряков".
10 окт 13, 16:00    [14951700]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

softwarer
Заглядываю посмотреть

В триггере? Назачем?

Posted via ActualForum NNTP Server 1.5

10 окт 13, 16:04    [14951734]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Dimitry Sibiryakov
В триггере? Назачем?

Не совпадает ли падарок на день рожденья с тем, что уже дарили.
10 окт 13, 16:10    [14951791]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67462
Блог
Dimitry Sibiryakov
softwarer
Заглядываю посмотреть

В триггере? Назачем?

Бессмысленный вопрос. Если незачем - значит не заглядываю, мутация не возникает и Ваше предложение "когда она должна возникать" становится пустой тратой трудоёмкости.
10 окт 13, 16:11    [14951802]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8 9 10 .. 54   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить