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

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

То есть, вот этот какой то бредовый наезд, что из триггера на таблицу эту же таблицу ну никак нельзя модифицировать, я считаю порождением факта о мутирующих таблицах в Оракле, и ничем иным. Для Вас, похоже, авторитет Оракла настолько непререкаем, что Вы даже и усомниться в его функционировании не можете.
Помню, была совершенно идиотская битва с MS SQL-цами, на тему, зачем нужно вообще в одном коннекте стартовать несколько транзакций одновременно, и боже сохрани, иметь в одной транзакции несколько открытых курсоров с возможностью поочередного фетча.
Это просто не укладывалось в их мозгу, потому что этого НЕТ в MS SQL, а значит и НЕ ДОЛЖНО быть ни в какой другой СУБД.
Вы аналогичные мысли пытаетесь проталкивать?

С таким же успехом можно было сказать, что текущую функциональность Firebird благословил Господь, и все кто усомнились в ее праведности, есть еретики. Но этого же нет. С вами пытаются вести дискуссию разработчики Firebird, которые, уверяю, имеют опыт работы как с Ораклом так и с MS SQL, и внимательно изучают в т.ч. и их тонкости функционирования.
Впечатление такое, что Вы находитесь в какой-то иной плоскости, которая сродни религиозному фанатизму. Прошу Вас, разуверьте меня, скажите, что Вам в Oracle нравится не все.
Мне вот, в ФБ действительно нравится не все.


И это Вы мне объясняете про бред и домыслы ???
Успокойтесь, можно модифицировать таблицы из их же триггера. Способ еще в 7 Oracle придумали, если склероз мне не изменил. Просто при этом надо отчетливо понимать, ччто именно ты делаешь, но это ведь Вас не должно пугать ???
8 авг 10, 21:58    [9231303]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
protector
Member

Откуда: Иваново, Россия
Сообщений: 600


Gluk (Kazan)



Ты сделал 8 постов подряд. Нельзя было ответить в одном? Хочешь чтобы и
другие отвечали 1 постом на каждую твою фразу?

Posted via ActualForum NNTP Server 1.4

8 авг 10, 22:06    [9231315]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

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

protector
Нельзя было ответить в одном?

Ну, ты же знаешь, когда понос подпирает...

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

Posted via ActualForum NNTP Server 1.4

8 авг 10, 22:30    [9231361]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
protector
Member

Откуда: Иваново, Россия
Сообщений: 600


Dimitry Sibiryakov

Ну, ты же знаешь, когда понос подпирает...

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


Какой ты всё таки злой. Будь добрее и люди к тебе потянутся. Я кстати
не знаю что там за лазейка, хотя работал с оракулом 2 года. Мне и в голову
не приходило даже думать о том, чтобы писать в ту-же таблицу в триггере в
оракуле.

Posted via ActualForum NNTP Server 1.4

8 авг 10, 22:46    [9231380]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

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


Gluk (Kazan)



Ты сделал 8 постов подряд. Нельзя было ответить в одном? Хочешь чтобы и
другие отвечали 1 постом на каждую твою фразу?



По делу есть что сказать?
9 авг 10, 08:51    [9232030]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
И все равно, я лублу Пг. А вы фсе дауны (да простят меня модераторы).

Вот вам больше нечем заняться, кроме как кидаться содержимым своих ночных горшков?
9 авг 10, 08:55    [9232036]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
eBase
Member

Откуда: Ukraine, Kharkiv
Сообщений: 142
Gluk (Kazan)
Dimitry Sibiryakov

artemana
проблемы, вызваные мутацией, неизбежны.

Единственная проблема, вызываемая мутацией, это невозможность обратиться к таблицам из
триггеров. И никакие order by эту проблему обойти не помогут.


Ой, да ну бросьте. Можно к ним обращаться. И писать можно (геморойно правда).
Вот намедни заказчик осчастливил.

1. Имеется таблица, все действия с которой, записывают копию строки в таблицу журнал
2. Записи собираются из основной таблицы и журнальной по union all
3. Выясняется, что записи в журнале тоже можно редактировать (такой вот хитрый заказчик)
4. Куда бы вы думали журналируются изменения журнальных записей ???

Правильно, в ту же журнальную таблицу. Что вы, серьезно думаете, что мутация кого-то остановила ???
И что Вы там говорили про бомбу замедленного действия у kdv? Или Вы думаете что Ваша никогда не рванет?
9 авг 10, 08:59    [9232050]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Dimitry Sibiryakov

protector
Нельзя было ответить в одном?

Ну, ты же знаешь, когда понос подпирает...

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


Вы возможно не в курсе дела :)

1. Тригеры в Oracle нынче писать не принято. Помимо озвученных и неозвученных их ограничений, это еще и удар по производительности
2. Голые DML (а для чего еще триггеры ) из приложений тоже вызывать не принято
3. Все что можно сделать триггерами, еще лучше можно сделать грамотно спроектировав API на ХП (как правило в пакетах, но в данном случае не суть)
4. Проблема с мутациями (как и некоторые другие проблемы) в этом случае не возникает
5. Если кому то (мне например) повезло с тяжким Legacy на триггерах, способ обхода таки известен со времен 7 Oracle (желающие могут погуглить на тему обход мутаций в триггере)

А теперь хотелось бы таки услышать ответ на мегаволнительный вопрос:

Если в FB одна транзакция инсертит-комиттит ровно по 100 записей, а другая считает количество записей при помощи count(*), может ли случиться, что она подсчитает некратное 100 число.
Ответ да меня устроит без объяснений, к ответу нет хотелось бы видеть минимальные комментарии
9 авг 10, 09:00    [9232052]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
eBase
Gluk (Kazan)
Dimitry Sibiryakov

artemana
проблемы, вызваные мутацией, неизбежны.

Единственная проблема, вызываемая мутацией, это невозможность обратиться к таблицам из
триггеров. И никакие order by эту проблему обойти не помогут.


Ой, да ну бросьте. Можно к ним обращаться. И писать можно (геморойно правда).
Вот намедни заказчик осчастливил.

1. Имеется таблица, все действия с которой, записывают копию строки в таблицу журнал
2. Записи собираются из основной таблицы и журнальной по union all
3. Выясняется, что записи в журнале тоже можно редактировать (такой вот хитрый заказчик)
4. Куда бы вы думали журналируются изменения журнальных записей ???

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


С чего-б ей рвать-та?
Кто Вам с kdv вообще сказал, что я против записи в таблицу из ее-же триггера???
9 авг 10, 09:01    [9232055]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

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


Dimitry Sibiryakov

Ну, ты же знаешь, когда понос подпирает...

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


Какой ты всё таки злой. Будь добрее и люди к тебе потянутся. Я кстати
не знаю что там за лазейка, хотя работал с оракулом 2 года. Мне и в голову
не приходило даже думать о том, чтобы писать в ту-же таблицу в триггере в
оракуле.



Ну шо я могу сказать ... фигово ты знаешь Oracle. Этому финту первым делом студентов учат
9 авг 10, 09:02    [9232062]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Gluk (Kazan)
А теперь хотелось бы таки услышать ответ на мегаволнительный вопрос:
А чего это он такой мегаволнительный ?
У вас проблемы ? Хотите поговорить об этом ? (ц)


Gluk (Kazan)
Если в FB одна транзакция инсертит-комиттит ровно по 100 записей, а другая считает количество записей при помощи count(*), может ли случиться, что она подсчитает некратное 100 число.
Ответ да меня устроит без объяснений, к ответу нет хотелось бы видеть минимальные комментарии
Read-committed - да
Concurrency (оно-же snapshot, оно-же умолчательное) - нет

Волнение снято ? Ну, хотя-бы мега- ? :)
9 авг 10, 10:05    [9232323]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Gluk (Kazan)
1. Тригеры в Oracle нынче писать не принято. Помимо озвученных и неозвученных их ограничений, это еще и удар по производительности
2. Голые DML (а для чего еще триггеры ) из приложений тоже вызывать не принято
3. Все что можно сделать триггерами, еще лучше можно сделать грамотно спроектировав API на ХП (как правило в пакетах, но в данном случае не суть)
Мгм... наверное я таки не в курсе... но
Почему PL\SQL в случае (1) есть удар по производительности, а в случае (3) - не удар ?

PS Я тоже сторонник работы только через процедуры
PPS (3) в общем случае неверно, но не хотелось бы устраивать очередной спор ещё и по этому поводу
9 авг 10, 10:09    [9232342]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
vadiminfo
Member

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

PS Я тоже сторонник работы только через процедуры

Но триггера тоже типа процедуры. И если нужно, чтобы процедура вызывалась на события в БД, то что делают сторонники процедур?
9 авг 10, 10:36    [9232560]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
vadiminfo
hvlad

PS Я тоже сторонник работы только через процедуры

Но триггера тоже типа процедуры. И если нужно, чтобы процедура вызывалась на события в БД, то что делают сторонники процедур?
Задайте тот вопрос, который вы хотели задать.
Ибо отвечать сразу на несколько вариантов вашего истинного вопроса мне как-то лень...
9 авг 10, 10:38    [9232577]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
hvlad
Gluk (Kazan)
1. Тригеры в Oracle нынче писать не принято. Помимо озвученных и неозвученных их ограничений, это еще и удар по производительности
2. Голые DML (а для чего еще триггеры ) из приложений тоже вызывать не принято
3. Все что можно сделать триггерами, еще лучше можно сделать грамотно спроектировав API на ХП (как правило в пакетах, но в данном случае не суть)
Мгм... наверное я таки не в курсе... но
Почему PL\SQL в случае (1) есть удар по производительности, а в случае (3) - не удар ?

PS Я тоже сторонник работы только через процедуры
PPS (3) в общем случае неверно, но не хотелось бы устраивать очередной спор ещё и по этому поводу


Ну к примеру возьмем журналирование изменений по update-у (пример чисто иллюстративный)

1 вариант (традиционный):

Из приложения update-им много строк, каждая из которых активирует триггер, переключая SQL в PL/SQL. В триггере, в свою очередь идет insert, переключая PL/SQL в SQL

2 вариант:

Из хранимки дергаем два DML-я. Первым update-им строки, вторым вставляем изменения в лог.
Всего имеем два переключения PL/SQL в SQL. Независимо от количества изменяемых строк.

Менее умозрительный пример:

Выносим нафих все триггеры, генерирующие PK в те места в ХП, в которых собственно выполняем вставку. В случае если insert-ится большое количество записей, получаем нефиговый выхлоп по производительности :)
9 авг 10, 10:46    [9232636]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

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

Concurrency (оно-же snapshot, оно-же умолчательное) - нет

Волнение снято ? Ну, хотя-бы мега- ? :)


Честно говоря не очень :(
Т.е. в случае snapshot мы можем видеть изменения сторонних транзакций не атомарными ??? o O
Т.е. в принципе в примере с переводом денег (из букваря) теоретически есть возможность увидеть переводимую сумму сразу на двух счетах или ни на одном ???
9 авг 10, 10:48    [9232650]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Gluk (Kazan)
hvlad

Concurrency (оно-же snapshot, оно-же умолчательное) - нет

Волнение снято ? Ну, хотя-бы мега- ? :)


Честно говоря не очень :(
Т.е. в случае snapshot мы можем видеть изменения сторонних транзакций не атомарными ??? o O
Т.е. в принципе в примере с переводом денег (из букваря) теоретически есть возможность увидеть переводимую сумму сразу на двух счетах или ни на одном ???


Sorry, в Read Committed конечно
9 авг 10, 10:52    [9232681]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
vadiminfo
hvlad

PS Я тоже сторонник работы только через процедуры

Но триггера тоже типа процедуры. И если нужно, чтобы процедура вызывалась на события в БД, то что делают сторонники процедур?


Сторонники процедур не открывают DML напрямую.
Некоторые сторонники не открывают даже select (но я к ним не отношусь)
9 авг 10, 10:56    [9232714]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Gluk (Kazan)
Ну к примеру возьмем журналирование изменений по update-у (пример чисто иллюстративный)

1 вариант (традиционный):

Из приложения update-им много строк, каждая из которых активирует триггер, переключая SQL в PL/SQL. В триггере, в свою очередь идет insert, переключая PL/SQL в SQL

2 вариант:

Из хранимки дергаем два DML-я. Первым update-им строки, вторым вставляем изменения в лог.
Всего имеем два переключения PL/SQL в SQL. Независимо от количества изменяемых строк.
Примеры не совсем равноценны. В первом варианте row-level триггеры, во-втором statement-level, так сказать.
Если бы в ORACLE были аналоги таблиц inserted\deleted из T-SQL (а может уже есть ?), то первый вариант можно было бы переписать с их использованием,
чтобы добиться более полной аналогии со-вторым.


Gluk (Kazan)
Менее умозрительный пример:

Выносим нафих все триггеры, генерирующие PK в те места в ХП, в которых собственно выполняем вставку. В случае если insert-ится большое количество записей, получаем нефиговый выхлоп по производительности :)
Спасибо.

Для себя я вижу тут два основных вывода:
а) переключение PL\SQL <-> SQL имеет место быть и стоит не дёшево, поэтому принято экономить на таких переключениях
б) в Firebird эта проблема стоит гораздо менее остро, т.к. нет таких переключений. Есть только обычные затраты на вызов PSQL процедуры\тригера
(передача параметров и т.п.)
9 авг 10, 10:59    [9232735]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
hvlad
Задайте тот вопрос, который вы хотели задать.
Ибо отвечать сразу на несколько вариантов вашего истинного вопроса мне как-то лень...

Ну судя по этому ответу, я думау, что не зря скетически относился к идеям быть сторонником чего-либо подобного типа процедурам: наверное, от этого должно ломать.
9 авг 10, 11:14    [9232860]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Gluk (Kazan)
Сторонники процедур не открывают DML напрямую.
Некоторые сторонники не открывают даже select (но я к ним не отношусь)

Не совсем понял. Я думал из контекста предыдущего процедуры противопоставляются триггерам. Но мож я не все прочитал? А как стронники процедур получают доступ к данным, и как их модифицируют?
9 авг 10, 11:22    [9232920]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Gluk (Kazan)
Gluk (Kazan)
hvlad

Concurrency (оно-же snapshot, оно-же умолчательное) - нет

Волнение снято ? Ну, хотя-бы мега- ? :)


Честно говоря не очень :(
Т.е. в случае snapshot мы можем видеть изменения сторонних транзакций не атомарными ??? o O
Т.е. в принципе в примере с переводом денег (из букваря) теоретически есть возможность увидеть переводимую сумму сразу на двух счетах или ни на одном ???


Sorry, в Read Committed конечно
А кто же переводит деньги в read-committed ? Это из того-же букваря :)

Слово "атомарность" выше было употреблено не по назначению. Правильнее говорить о statement-level consistency.
Кстати, в стандарте я этого термина не нашёл. Но, так как он уже неоднократно употреблялся здесь, я надеюсь у нас не будет разночтений в его интерпретации.

Так вот, statement-level consistency, насколько я помню, не диктуется стандартом, а оставляется на усмотрение производителя.
Я говорю о такой характеристике курсора, как sensitivity, которая, если не указано явно, является ASENSITIVE (секция 4.32 Cursors).
Если есть другие ссылки на стандарт - буду рад ознакомиться.

Так что формально read-committed в Firebird работает правильно, ибо речь в его определении идёт только о допустимых феноменах.

Другой вопрос, что вы привыкли к оракловому пониманию statement-level consistency для RC :)
9 авг 10, 11:24    [9232938]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
vadiminfo
hvlad
Задайте тот вопрос, который вы хотели задать.
Ибо отвечать сразу на несколько вариантов вашего истинного вопроса мне как-то лень...

Ну судя по этому ответу, я думау, что не зря скетически относился к идеям быть сторонником чего-либо подобного типа процедурам: наверное, от этого должно ломать.
Если вы не в состоянии понять, о чём идёт посторонний диалог, может не стоит в него встревать ?

PS А давайте я сейчас тоже расскажу что с вами должно происходить и в каком случае ?
9 авг 10, 11:26    [9232958]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
hvlad
Если вы не в состоянии понять, о чём идёт посторонний диалог, может не стоит в него встревать ?

Ну а что Вы хотели? - здесь же всех на форум допускают. Я не понимаю что Вы говорите, Вы не понимаете что Вас спрашуют. Это по философски все получается.
Впрочем, кое-что то я понял для себя: сторонником только процедур быть хуже, чем сторонником только Оракла. Так что я не зря встрял: инфу нужную получил.
9 авг 10, 11:38    [9233064]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
vadiminfo
hvlad
Если вы не в состоянии понять, о чём идёт посторонний диалог, может не стоит в него встревать ?

Ну а что Вы хотели? - здесь же всех на форум допускают. Я не понимаю что Вы говорите, Вы не понимаете что Вас спрашуют. Это по философски все получается.
Согласен.

Но особенно "по философски" выглядят ценные фразы вроде этой:
vadiminfo
наверное, от этого должно ломать.


vadiminfo
Впрочем, кое-что то я понял для себя: сторонником только процедур быть хуже, чем сторонником только Оракла. Так что я не зря встрял: инфу нужную получил.
Вот этого вы не понимаете - вы выискиваете, чем бы померяться, а суть не в этом.
9 авг 10, 11:46    [9233125]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 [9] 10 11 12   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить