Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 37 38 39 40 41 [42] 43 44 45 46 .. 54   вперед  Ctrl
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
kdv
sphinx_mv
подтверждающих достоинства сервера (firebird) включают фичи совершенно стороннего продукта (ibexpert).
Управление транзакциями, просмотр DDL - это настолько древние "новшества", что упоминать их Вам явно не стоило

вы не понимаете, о чем я пишу, и комментируете.
Вы действительно всерьез считаете, что упомянутые Вами управление транзакциями или манипулирование скриптами DDL - исключительная фича fireberd?!
kdv
Приводить примеры, наверное, бессмыслено.
Приводить примеры существования того, чего нет - бессмысленно. Кто ж с этим спорит?! :)
kdv
В самом FB нет отладки процедур. Но есть в сторонних инструментах.
Ну, и зачем обманывать-то?! :)
Ведь написано в ФАКе по firebird, что в любом из существующих сторонних инструментов процесс отладки хранимых процедур эмулируется за счет последовательного выполнения команд, входящих в тело процедуры... Напоминаю также, что в "ну, совершенно бесплатном" firebird эти инструменты с функциями "эмуляции отладки" хранимых процедур "слегка коммерческие"...
kdv
Ситуация со сторонними инструментами к ФБ совсем иная, чем с инструментами к другим серверам. Этих инструментов намного больше, как и всяких драйверов и компонент. Рассматривать все это богатство в отрыве от ФБ невозможно.
Инструментов "намного больше" по сравнению с чем?
Вы все еще не в курсе, что функционал базовой поставки оракла или mssql (в не менее стандартной "фичеколлекции" и практически сквозной интеграцией с любым продуктом ms) превышает любую Вашу фантазию - даже с учетом всего "многообразия" сторонних инструментов firebird? По поводу инструментов, способных работать (и работающих) с любым коммерческим сервером БД - Вы очень плохо себе представляете их многообразие и общее количество. Просто примите это как данность существующей реальности...
29 окт 13, 13:33    [15046249]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
sphinx_mv
процесс отладки хранимых процедур эмулируется за счет последовательного выполнения команд,

Отладчика нет конечно, однако в fb есть возможность сохранять в таблицах промежуточные значения переменных и т.п. по ходу выполнения процедур, которые не пропадут после ролбэка используя механизм автономных транзакций (которого нет кстати в MSSQL).
29 окт 13, 13:39    [15046291]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
FreemanZAV
Может эта бага и нужна конечно, но багу появления бесхозных записей в DEFERRABLE constraint foreign key (которая воспроизводится без хитрых манипуляций) я бы на месте Оракла исправил.

Боюсь, об этом не в курсе. Дайте ссылку поконкретнее, пожалуйста, по этим словам гуглится ну очень много ненужного :)
29 окт 13, 13:48    [15046348]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
softwarer
FreemanZAV
Может эта бага и нужна конечно, но багу появления бесхозных записей в DEFERRABLE constraint foreign key (которая воспроизводится без хитрых манипуляций) я бы на месте Оракла исправил.

Боюсь, об этом не в курсе. Дайте ссылку поконкретнее, пожалуйста, по этим словам гуглится ну очень много ненужного :)



Вот здесь об этом говориться, хотя мы воспроизводили немного по другому.
29 окт 13, 13:58    [15046425]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

sphinx_mv
Ведь написано в ФАКе по firebird, что в любом из существующих сторонних
инструментов процесс отладки хранимых процедур эмулируется за счет последовательного
выполнения команд, входящих в тело процедуры...

Учите уже матчасть, батенька, так работают все отладчики. Они тоже "эмулируют
процесс отладки", последовательно выполняя инструкции языка.

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 3683
FreemanZAV
механизм автономных транзакций (которого нет кстати в MSSQL).

"Из коробки" этого механизма нет, но всё реализуемо. Например:
— создать linked server, указывающий на себя самого, со свойством Enable Promotion of Distributed Transactions = false.
— создать CLR-процедуру, устанавливающую отдельный коннект к серверу БД, и выполняющую необходимые вставки.
— записывать необходимые значения в табличную переменную (на них не действует rollback), после окончания транзакции вставлять данные в постоянную таблицу.
29 окт 13, 14:00    [15046444]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
Отладчика нет конечно, однако в fb есть возможность сохранять в таблицах промежуточные значения переменных и т.п. по ходу выполнения процедур, которые не пропадут после ролбэка используя механизм автономных транзакций (которого нет кстати в MSSQL).


Табличные переменные в MS SQL "не подвержены транзакциям" - так что хоть усохраняйтесь и ничего не пропадет после ROLLBACK. Реализаций автономных транзакций через CLR функции, как мне кажется, и готовых полно, и самому написАть не составит труда.
29 окт 13, 14:03    [15046476]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
Гость333
FreemanZAV
механизм автономных транзакций (которого нет кстати в MSSQL).

"Из коробки" этого механизма нет, но всё реализуемо. Например:
— создать linked server, указывающий на себя самого, со свойством Enable Promotion of Distributed Transactions = false.
— создать CLR-процедуру, устанавливающую отдельный коннект к серверу БД, и выполняющую необходимые вставки.
— записывать необходимые значения в табличную переменную (на них не действует rollback), после окончания транзакции вставлять данные в постоянную таблицу.


Хочу объективно сказать про эти способы без желания кого-либо задеть (ну по крайней мере я сам себе кажусь объективным :))

Первый способ проктологический
Второй проктологический и геморройный
Третий более-менее, но не дающий стопроцентного результата
29 окт 13, 14:05    [15046496]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
pkarklin
FreemanZAV
Отладчика нет конечно, однако в fb есть возможность сохранять в таблицах промежуточные значения переменных и т.п. по ходу выполнения процедур, которые не пропадут после ролбэка используя механизм автономных транзакций (которого нет кстати в MSSQL).


Табличные переменные в MS SQL "не подвержены транзакциям" - так что хоть усохраняйтесь и ничего не пропадет после ROLLBACK.


1. Всё пропадёт, если коннект оборвётся внезапно до заливки в постоянную таблицу
2. табличные переменные, насколько я знаю нельзя передавать между процедурами, поэтому имеем геморрой
29 окт 13, 14:08    [15046513]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
1. Всё пропадёт, если коннект оборвётся внезапно до заливки в постоянную таблицу


Коннект так же может оборваться и до коммита в автономной транзакцией.

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


В качестве входного параметра только для чтения - можно.
29 окт 13, 14:11    [15046535]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

pkarklin
Коннект так же может оборваться и до коммита в автономной транзакцией.

Но коммиту это не помешает.

Posted via ActualForum NNTP Server 1.5

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

Откуда: 127.0.0.1
Сообщений: 67487
Блог
FreemanZAV
Вот здесь об этом говориться, хотя мы воспроизводили немного по другому.

Спасибо, ковырну. Ну собственно Оракл согласен с Вами - это баг, который заведён и будет исправляться.
29 окт 13, 14:14    [15046556]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

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

Коннект так же может оборваться и до коммита в автономной транзакцией.


В этом случае потеряются данные только конкретного участка логирования, а в случае табличных переменных пропадёт всё.

pkarklin

В качестве входного параметра только для чтения - можно.


В результате при вызовах одной процедуры из другой получаем геморрой (особенно если вложеностей много)
29 окт 13, 14:16    [15046573]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
softwarer
FreemanZAV
Вот здесь об этом говориться, хотя мы воспроизводили немного по другому.

Спасибо, ковырну. Ну собственно Оракл согласен с Вами - это баг, который заведён и будет исправляться.


Не на чем) Кстати, Оракл хоть и согласен, но поддержка его ответила буквально следующее:
А зачем вы используете этот механизм?
29 окт 13, 14:18    [15046598]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
pkarklin
Коннект так же может оборваться и до коммита в автономной транзакцией.

Это не совсем то. Чтобы показать разницу, сконструирую экстремальный пример. Допустим, у нас есть плавающий баг, приводящий к тому, что иногда ХП падает вместе с сессией. Баг проявляется крайне редко, поэтому отладчик не поможет. Стандартное решение в такой ситуации - отладочная печать. В случае автономной транзакции мы пишем простенькую процедуру вида insert text into messages + commit и радуемся. Если же в результате падения лог теряется...
29 окт 13, 14:19    [15046599]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67487
Блог
FreemanZAV
Кстати, Оракл хоть и согласен, но поддержка его ответила буквально следующее:
А зачем вы используете этот механизм?

Возможно, они хотели предложить тот или иной альтернативный способ решения вашей задачи?

Впрочем, я вполне разделяю единодушное мнение своих коллег о крайне низком уровне индусов из первой линии оракловой техподдержки.
29 окт 13, 14:21    [15046612]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
В этом случае потеряются данные только конкретного участка логирования, а в случае табличных переменных пропадёт всё.


В следующей схематичной конструкции что будет записано в бд?
BEGIN TRAN

DML1
DML2
DML3

BEGIN AUTONOMUS TRAN

DML11
DML22
--отвал клиента
DML33

COMMIT AUTONOMUS

DML111
DML222
DML333

COMMIT


FreemanZAV
В результате при вызовах одной процедуры из другой получаем геморрой (особенно если вложеностей много)


Мы говорим о процедуре логирования? Почему вдруг процедур стало много?
29 окт 13, 14:24    [15046629]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

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


В следующей схематичной конструкции что будет записано в бд?
BEGIN TRAN

DML1
DML2
DML3

BEGIN AUTONOMUS TRAN

DML11
DML22
--отвал клиента
DML33

COMMIT AUTONOMUS

DML111
DML222
DML333

COMMIT




Можно так сделать:
BEGIN TRAN

DML1
DML2
DML3

BEGIN AUTONOMUS TRAN

DML11
COMMIT AUTONOMUS

BEGIN AUTONOMUS TRAN
DML22
COMMIT AUTONOMUS


BEGIN AUTONOMUS TRAN

--отвал клиента
--Но потеря только здесь
DML33

COMMIT AUTONOMUS

DML111
DML222
DML333

COMMIT


pkarklin
Мы говорим о процедуре логирования? Почему вдруг процедур стало много?

Я имел ввиду не процедуру логирования, а логирование во вложенных процедурах. В случае использования табличных переменных , их нужно будет объявлять в каждой процедуре и в каждой процедуре делать блок try finally (ну или что-то типа того). При использовании автономных транзакций нужно просто вставить строку в лог и это строка сохранится навечно, независимо от того, что будет дальше.
29 окт 13, 14:33    [15046694]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
При использовании автономных транзакций нужно просто вставить строку в лог и это строка сохранится навечно...


если сommit успел пройти, что Вы собственно и подтвердили.
29 окт 13, 14:36    [15046711]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
pkarklin
FreemanZAV
При использовании автономных транзакций нужно просто вставить строку в лог и это строка сохранится навечно...


если сommit успел пройти, что Вы собственно и подтвердили.


Может я как-то не так выражаюсь, но хотел я сказать совершенно другое, а в частности то, что при использовании табличных переменных, надо дождаться окончания выполнения процедуры, а потом сохранить данные в реальной таблице, в случае с автономными транзакциями ничего дожидаться не надо - данные можно сохранять в любом месте.
29 окт 13, 14:43    [15046746]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
Ещё минус табличных переменных (и большой) в том, что если транзакцию откатил клиент, то всё - капец. Никакие данные не сохраняться точно
29 окт 13, 14:47    [15046767]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

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

pkarklin
если сommit успел пройти

А почему, собственно, он может не пройти? То, что клиент отпал, сервером обнаруживается
далеко не сразу.

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 2434
FreemanZAV
Ещё минус табличных переменных (и большой) в том, что если транзакцию откатил клиент, то всё - капец. Никакие данные не сохраняться точно


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

Откуда:
Сообщений: 2434
Dimitry Sibiryakov
pkarklin
если сommit успел пройти

А почему, собственно, он может не пройти? То, что клиент отпал, сервером обнаруживается
далеко не сразу.


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

Откуда:
Сообщений: 2434
FreemanZAV
Dimitry Sibiryakov
пропущено...

А почему, собственно, он может не пройти? То, что клиент отпал, сервером обнаруживается
далеко не сразу.


Дим, гипотетически такое возможно


kill -9 никто не отменял )
29 окт 13, 14:50    [15046812]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 37 38 39 40 41 [42] 43 44 45 46 .. 54   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить