powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Что лучше FireBird 2.1 или MS SQL 2000?
83 сообщений из 83, показаны все 4 страниц
Что лучше FireBird 2.1 или MS SQL 2000?
    #37983525
greg_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Мне предстоит разработать один проект (небольшой web-интерфейс). Выбор СУБД остается за мной (главное, чтобы не надо было дополнительные деньги тратить на покупку СУБД).
Есть неплохой опыт использования FireBird 2.1. У заказчика имеется купленный MS SQL 2000. Какое СУБД лучше использовать?
Объем данных небольшой - 20-30 таблиц, размер бд планируется около 1-2 Гб.
Или лучше для web-а использовать mySQL?

Заранее спасибо!
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37983537
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greg_123Есть неплохой опыт использования FireBird 2.1. У заказчика имеется
купленный MS SQL 2000. Какое СУБД лучше использовать?

MS SQL. Именно потому, что он есть у заказчика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37984436
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greg_123,

Extended Support MS SQL 2000 уже скоро закончится. Поэтому использовать его в новых проекта неразумно и недальновидно. При Ваших требований к размерам бд подойдет современная экспресс редакция любой "взрослой" СУБД, которую можно использовать и "для WEB-а", и "не для WEB-а". Так Вы хоть оставите заказчику шансы мигрировать на старшые редакции. Вдруг бизнес пойдет в гору. Да и себе опыта добавите.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37984447
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinоставите заказчику шансы мигрировать на старшые редакции
А назачем заказчику эти шансы? Если бы он хотел куда-то мигрировать с 2000-го - давно бы
это сделал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37984453
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА назачем заказчику эти шансы? Если бы он хотел куда-то мигрировать с 2000-го - давно бы
это сделал.

Ну, пока нам только известно, что 2000 у закзчика "куплен". Крутится на нем что-нибудь или нет не сказано. А мигрировать пора... Давно уже...
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37984842
greg_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас выяснилось, что в бд нужно будет хранить копии документов (pdf, jpg), так что наверно MS SQL Express - не подходит (там вроде ограничение 10Гб). На MS SQL 2000 ничего у заказчика "не крутится".
Имеет ли смысл на таком объеме рассматривать firebird 2.1 или сразу переключаться в сторону mySQL?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37984902
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greg_123в бд нужно будет хранить копии документов (pdf, jpg), так что наверно MS SQL Express - не подходит (там вроде ограничение 10Гб)про filestream не читали?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37984955
greg_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, сейчас буду изучать!
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37985100
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greg_123На MS SQL 2000 ничего у заказчика "не крутится".
Ага, чую, что там как в анекдоте не "крутится", не "MS SQL", не "2000" и не "куплен".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37986554
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovgreg_123Есть неплохой опыт использования FireBird 2.1. У заказчика имеется
купленный MS SQL 2000. Какое СУБД лучше использовать?

MS SQL. Именно потому, что он есть у заказчика.


Уровни изоляции и блокировки в 2000 вызывают желание плакать навзрыд.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37986558
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVУровни изоляции и блокировки в 2000 вызывают желание плакать навзрыд.

Пох. Лучше потерять время, разбираясь с блокировками, чем всю базу, отсутствующий админ
которой не делал бэкапы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37986562
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovFreemanZAVУровни изоляции и блокировки в 2000 вызывают желание плакать навзрыд.

Пох. Лучше потерять время, разбираясь с блокировками, чем всю базу, отсутствующий админ
которой не делал бэкапы.


Дмитрий, когда читатель блокирует писателя, то это звучит как диагноз, можно сказать - приговор.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37986601
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV, не умеете работать с блокировками - прямите руки.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37986650
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_oldFreemanZAV, не умеете работать с блокировками - прямите руки.
Не люблю работать с тем, что противоречит здравому смыслу, да и не за чем это. Блокировки на чтение - это маразм (ну и это моё конечно)
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37987538
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV, всякому инструменту - своё предназначение...
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37988505
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovчем всю базу, отсутствующий админ которой не делал бэкапы.
с отсутствующим админом результат везде будет одинаков.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37989344
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greg_123Добрый день!

Мне предстоит разработать один проект (небольшой web-интерфейс). Выбор СУБД остается за мной (главное, чтобы не надо было дополнительные деньги тратить на покупку СУБД).
Есть неплохой опыт использования FireBird 2.1. У заказчика имеется купленный MS SQL 2000. Какое СУБД лучше использовать?
Объем данных небольшой - 20-30 таблиц, размер бд планируется около 1-2 Гб.
Или лучше для web-а использовать mySQL?

Заранее спасибо!

Пиши под Firebird.
MySQL лучше не использовать, т.к. некоторых вещей там нет, а другие работают немного странно.
Я бы понял если бы FireBird vs PostgreSQL, но MySQL единственное приемущество скорость выборки по 1-ключу. :-)

MS SQL 2000 так же лучше не брать, т.к. преимуществ ни при администрировании, ни при программировании перед современным FireBird нет (по моему).
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37989475
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FreemanZAVБлокировки на чтение - это маразм (ну и это моё конечно)
блокировки ерунда, по сравнению с той неконсистентной кашей, что дает блокировочник на уровне RC. хотя firebird то же порно на RC выдает. эти субд стоят друг-друга.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37990883
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!хотя firebird то же порно на RC выдаетНу так мусолилось же это всё... Обходится простыми манёврами, да и в трёшке не будет этого.
ЗЫ. Зато у ФБ рестартов нету при натыкании во время апдейтов на заблокированную запись (которая позже разблокируется и там окажется другое значение поля, причем не относящегося к критерию отбора ;))
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991143
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидНу так мусолилось же это всё... Обходится простыми манёврами, да и в трёшке не будет этого.

видимо мало мусолили. единственный обходной маневр - повышать уровень IL
ТаблоидЗЫ. Зато у ФБ рестартов нету при натыкании во время апдейтов на заблокированную запись (которая позже разблокируется и там окажется другое значение поля, причем не относящегося к критерию отбора ;))
конечно нету, он же неконсистентную кашу выдает. кcтати, если в трешке обещают починить RC, что там будет вместо оракловых рестартов ? неконсистентная хрень как я понимаю ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991374
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!единственный обходной маневр - повышать уровень IL
Наоборот: не "повышать", а "не понижать безмозгло". Поскольку умолчательный TIL -
concurrency, а кто его понижает до read committed - ССЗБ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991407
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovНаоборот: не "повышать", а "не понижать безмозгло". Поскольку умолчательный TIL -
concurrency, а кто его понижает до read committed - ССЗБ.

ну такой RC, как firebird, конечно по дефолту не поставишь. а вот в оракле RC вполне полезный IL, без всякого головняка обеспечивающий констистентность стейтмента, в том числе и с помощью тех самых рестартов. потому то именно он и стоит по дефолту.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991431
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!а вот в оракле RC вполне полезный IL
Лучше будет сказать - единственный полезный TIL. Остальные ни на что не годятся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991441
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЛучше будет сказать - единственный полезный TIL. Остальные ни на что не годятся.

ну тебе то лучше вообще жувать, а не говорить.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991452
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!ну тебе то лучше вообще жувать, а не говорить.
Да конечно, когда видишь, что сервер не в состоянии тривиально развести вставку и удаление
разных записей, только и остаётся что пойти чего-нибудь пожевать с горя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991482
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovДа конечно, когда видишь, что сервер не в состоянии тривиально развести вставку и удаление
разных записей, только и остаётся что пойти чего-нибудь пожевать с горя.

не, такую тупость лучше убивать. я же лично тебя мокал носом в ROWDEPENDENCIES ...
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991495
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!я же лично тебя мокал носом
Которое нельзя указать в alter table, да-да...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991557
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovКоторое нельзя указать в alter table, да-да...


да, тут мне крыть нечем. alter table - большой минус к IL serializable
может пойдешь все таки пожувать, вроде и время обеденное ...
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991616
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!да, тут мне крыть нечем. alter table - большой минус к IL serializable

А с другой стороны, да, чего его менять-то?.. Вопрос "в этой таблицей можно работать в
serializable, а с этой - нет" всегда решается ещё на этапе создания БД. Для этого и нужны
укуренные пифии. Исторически сложилось, что кроме них никто с Оракулам общаться не может.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991621
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!он же неконсистентную кашу выдает.На чём конкретно (кашу выдаёт) ?
Yo.!если в трешке обещают починить RC, что там будет вместо оракловых рестартов ? неконсистентная хрень как я понимаю ?Что касается "вместо рестартов", то коннект, добравшийся до залоченной записи, после получения её в свое пользование (для апдейта или делита) будет сравнивать, не изменилась ли она в каком-нить поле. И если изменилась, то он получит исключение lock conflict. И не перетрёт при этом чужое закоммиченное изменение иначе, чем через рестарт.
Если же коннект-1 начал длительный апдейт в TIL = RC, а коннект-2 быстро успел добавить и закоммитить новую запись, то коннект-1, конечно же, увидит её, когда доберётся до соотв. места в базе. Но только в RC, в snapshot'e - ни в жизнь :-)
PS. И это не в трёшке будет, а так вообще с нуля заложено было. В трёшке обещают починить другое: стейтмент, меняющий поля, входящие в критерий отбора (во where-предикат, например), не должен видеть новые значения этих полей. Но по моей практике, таких запросов всё-таки очень мало встречается. Изменение суррогатных ключей - bad practice.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991767
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидНа чём конкретно (кашу выдаёт) ?
а вы спросите на форуме FB. там ребята все как на подбор, добрые, отзывчивые ...


ТаблоидЧто касается "вместо рестартов", то коннект, добравшийся до залоченной записи, после получения её в свое пользование (для апдейта или делита) будет сравнивать, не изменилась ли она в каком-нить поле. И если изменилась, то он получит исключение lock conflict. И не перетрёт при этом чужое закоммиченное изменение иначе, чем через рестарт.

вы начали козырять термином не вьехав в его суть.

ТаблоидPS. И это не в трёшке будет, а так вообще с нуля заложено было. В трёшке обещают починить другое: стейтмент, меняющий поля, входящие в критерий отбора (во where-предикат, например), не должен видеть новые значения этих полей. Но по моей практике, таких запросов всё-таки очень мало встречается. Изменение суррогатных ключей - bad practice.
у пишушего стейтмента взрослой субд не прокатит видеть базу на момент старта стейтмента, такую хрень могут себе позволить субд третьего эшелона. собственно в этом и есть суть рестарта, на изменяемые записи и оракл ставит блокировки, но что делать если изменились предикаты ? майкрософт на READ_COMMITTED_SNAPSHOT просто лочит предикаты и стопорит всю активность в базе, оракл делает миниоткат и рестат стейтмента, ну а могучий firebird не замарачивается по пустикам.
интересно, если в трешке не планируют чинить RC, в чем же смысл волноваться о каких-то предикатах ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991842
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!у пишушего стейтмента взрослой субд не прокатит видеть базу на момент старта
стейтмента
Поэтому в нормальных СУБД он видит нужные данные по состоянию на начало транзакции. Но
взрослым СУБД это не понять, они с трудом понимают что такое транзакции вообще, когда те
начинаются и когда заканчиваются.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991858
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПоэтому в нормальных СУБД он видит нужные данные по состоянию на начало транзакции.

список "нормальных субд", которые на IL Read Committed видят данные по состоянию на начало транзакции в студию !
а может все таки жевать ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991889
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!у пишушего стейтмента взрослой субд не прокатит видеть базу на момент старта
стейтмента, такую хрень могут себе позволить субд третьего эшелона. собственно в этом и
есть суть рестарта, на изменяемые записи и оракл ставит блокировки, но что делать если
изменились предикаты ? майкрософт на READ_COMMITTED_SNAPSHOT просто лочит предикаты и
стопорит всю активность в базе, оракл делает миниоткат и рестат стейтмента, ну а могучий
firebird не замарачивается по пустикам.
.....
список "нормальных субд", которые на IL Read Committed видят данные по состоянию на начало
транзакции в студию !
О как внезапно SNAPSHOT превращается в Read Committed... Придерживаться уровня изоляции,
заданного пользователем это, видимо, ещё одна вещь, которая во взрослых субд не прокатит...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991914
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovО как внезапно SNAPSHOT превращается в Read Committed... Придерживаться уровня изоляции,
заданного пользователем это, видимо, ещё одна вещь, которая во взрослых субд не прокатит...

обезьянка в READ_COMMITTED_SNAPSHOT увидела знакомое слово снепшот и решила еще раз поразить нас своей тупостью ? я угадал ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991919
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!а вы спросите на форуме FB. там ребята все как на подбор, добрые, отзывчивые ...я там постоянно отираюсь, надоел уже им всем
Yo.!вы начали козырять термином не вьехав в его суть.и какая у него суть, можно узнать ? (про рестарт запущенного оператора)
Вот есть таблица в 100500 млн строк, поля: id int pk, f01 int.
Вот есть коннект_1, стартующий в режиме RC апдейт этой таблицы, меняет в ней поле f01 на 111 (без всякого where-условия; ну, или с where id>0 :)).
Вот есть коннект_2, он успел стартовать и быстро закоммитить вставку записи в эту таблицу с каким-то там "своим" f01. В новой строке появилось id=1234567891234, f01=-222.
Через 5 минут коннект_1 добрался до вставленной коннектом_2 записи. И делает рестарт.
Простой вопрос: зачем ? чтобы изменилось, если бы коннект_1 просто сразу переписал изменения "своим" значением для f01 ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37991998
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!я угадал ?
Ага, угадал. Я всё время забываю, что если на клетке взрослых субд написано "Слон" - не
верь глазам своим...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992009
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоидя там постоянно отираюсь, надоел уже им всем
я знал, что ты оценишь шутку о чуткости фб-гайз
если не прикидываешься - почитай вокруг этого поста
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=173455&msg=1460385

ТаблоидПростой вопрос: зачем ? чтобы изменилось, если бы коннект_1 просто сразу переписал изменения "своим" значением для f01 ?
произошла бы порча данных. представь, что там еще был коннект_1.5 который вставил данные в начало таблицы. выходит твой апдейт "заметил" записи коннект_2 и не заметил записи коннект_1.5, который закомитил вставку после начала работы коннект_1, но до коннект_2. т.е. переписав коннект_1 бы увидел базу в таком состоянии, в котором она не была ни в какой момент времени (если были данные коннект_2, значит уже были и коннект_1 данные). оракл же гарантирует консистентность стейтмента и соответсвенно такой хери допустить не может.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992082
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!произошла бы порча данных. представь, что там еще был коннект_1.5 который вставил данные в начало таблицы. выходит твой апдейт "заметил" записи коннект_2 и не заметил записи коннект_1.5, который закомитил вставку после начала работы коннект_1 Правильно ли я понимаю, что описывается следующая хронология событий:
timesess #1sess #1.5sess #2T1insert into t values(1, 111); -- БЕЗ commit`a!T2insert into t values(99999999999, 999); -- БЕЗ commit`a!T3update t set f01 = 0 where id >=0;
Если правильно, и при этом в момент Т1 для добавленной строки была выделена страница (блок) базы номер <самый_наименьший>, то апдейт (Т3) тут же упрётся в эту запись - она же залочена.
А если апдейт в sess #1 уже начался, то sess #1.5 не закоммитится до тех пор, пока апдейт не сделает commit/rollback.

Где я ошибаюсь ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992166
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид,

неправильно. у вас понятно, что update стопорнет уже на ID=1
я говорил сначала запускается update .. where id>0 (T0), он пошел менять строки и пока он работает параллельные коннекты вставляют строку в начало таблицы + коммит (T1), потом в конец таблицы + коммит (T3).
firebird запись в конце проапдейтит, а ту что в начале нет, хотя такого состояния в БД ни в один момент времени не было.
в оракле я посмотрел, в столь простой ситуации рестарта не будет. оракл проапдейтит как и полагается только те записи, что были на момент старта апдета. имхо для рестарта более сложный предикат с участием другой таблицы быть обязан.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992237
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!коннекты вставляют строку в начало таблицы + коммит (T1), потом в конец таблицы + коммит (T3).
firebird запись в конце проапдейтитЕсли под "началом таблицы" понимать физический номер страницы, куда шлёпнется добавленная коннектом_1.5 запись, то такая вставка обломится. Ибо эта страница будет к тому времени уже заблокирована апдейтом.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992240
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидЕсли под "началом таблицы" понимать физический номер страницы, куда шлёпнется добавленная коннектом_1.5 запись, то такая вставка обломится. Ибо эта страница будет к тому времени уже заблокирована апдейтом.
брехня. оракл блокирует исключительно на уровне строк.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992275
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!,

я не про оракл сейчас говорю. ФБ заблокирует перед изменением те строки, которые подпадают под критерий отбора. Он *не* будет, разумеется, лочить всю таблицу.
Меня заинтересовал ваш пример с коннект_1.5, который вставляет в "начало таблицы", но я не уверен, что правильно его понял.
Вы можете "на языке" Oracle его показать ? (я пойму и попробую аналогичное сделать в ФБ)
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992310
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаем IOT таблицу (что бы гарантировать, что пишем в начало и конец)
create table shit (id int primary key, a varchar2(20)) organization index;

загоняем туда млн записей начина с ID=2
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare
i int;
begin
for i in 2..1000000
loop
	insert into shit values (i, 'shit-shit-shit-shit') ;
end loop;
end;



сессия1:
update shit set a='updated' where id>0 ;
пока там шуршит

сессия2:
insert into shit values (1,'new') ;
commit;
insert into shit values (1000001,'new') ;
commit;

сколько записей проапдейтит FB ? практически наверняка, проапдейтит 1000001, а 1 оставит нетронутой.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992434
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!делаем IOT таблицу (что бы гарантировать, что пишем в начало и конец)
create table shit (id int primary key, a varchar2(20)) organization index;в ФБ, к сож-ю, нет такого вида таблиц, на сегодня - только heap.
Но для проверки того, где сидит запись, в "начале" или в "конце" таблицы, можно юзать системное поле с именем rdb$db_key. Чем оно меньше, тем ближе запись к "началу" таблицы. Что я далее и сделаю.

Yo.!сколько записей проапдейтит FB ? практически наверняка, проапдейтит 1000001, а 1 оставит нетронутой.А вот и проверим. Создаём новую базу, наталкиваем в неё 999999 строк:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
 session #1 
C:\MIX\firebird\fb25>isql T0.FDB
Database:  T0.FDB
SQL> create table t(id int, f01 int); commit;
SQL> set term ^;
SQL> execute block as
CON> declare i int=2;
CON> begin
CON> while (i<=1000000) do insert into t values(:i, :i/2) returning :i+1 into i;
CON> end^
SQL> set term ;^
SQL> commit;
SQL> select first 5 rdb$db_key,id,f01 from t;

DB_KEY                     ID          F01
================ ============ ============
8000000001000000            2            1
8000000002000000            3            1
8000000003000000            4            2
8000000004000000            5            2
8000000005000000            6            3

SQL> select first 5 rdb$db_key,id,f01 from t where id>=999995;

DB_KEY                     ID          F01
================ ============ ============
800000009DA03000       999995       499997
800000009EA03000       999996       499998
800000009FA03000       999997       499998
80000000A0A03000       999998       499999
80000000A1A03000       999999       499999
-- как видно, младшим значениям поля ID соотв-вуют меньшие значения RDB$DB_KEY, т.е. записи легли в натуральном порядке.
-- Теперь удаляем первые 10 строк, делаем commit:
SQL> delete from t where id<=10; commit;

Далее запускаем второе isql-окно, и вводим там команду вставки + коммит, но БЕЗ нажатия Enter'a:
Код: plaintext
1.
2.
3.
 session #2 
C:\MIX\firebird\fb25>isql T0.FDB
Database:  T0.FDB
SQL> insert into t values(-1,  1000 ); commit; -- Enter пока НЕ нажимаем!

Идём снова в первое окно:
Код: plaintext
1.
2.
 session #1 
SQL> set transaction read committed record_version no wait;
SQL> update t set f01= null  where id>-999999; -- и жамкаем ENTER

Переключаемся во второе окно и жамкаем там тоже Enter:
Код: plaintext
1.
2.
 session #2 
[Enter]
SQL> _ -- выполнилось ОК.

Ждём окончания выполнения в первом окне, затем вводим там:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 session #1 
SQL> select rdb$db_key,id,f01 from t where id>=999995;

DB_KEY                     ID          F01
================ ============ ============
800000009DA03000       999995       <null>
800000009EA03000       999996       <null>
800000009FA03000       999997       <null>
80000000A0A03000       999998       <null>
80000000A1A03000       999999       <null>
80000000A2A03000      1000000       <null>

SQL> select rdb$db_key,id,f01 from t where id=-1;

DB_KEY                     ID          F01
================ ============ ============
80000000 A7E83000            -1        <null> 

Таким обр., session #1 увидела запись, добавленную в session #2 с id=-1. Я так понимаю, что произошло это из-за добавления этой записи не в дырку, образованную от удаления первых 10 строк, а именно в конец таблицы (см её RDB$DB_KEY).
Я не знаю, всегда ли так происходит - это лучше у ФБ-разрабов спросить. Если строка будет добавлена действительно в начало таблицы, то апдейт уже не увидит её, конечно.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992443
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, получилось поймать этот момент... к сож-ю, в моей любимой СУБД действительно есть проблема с RC в вышеприведенном примере
Test: всё тоже самое, только увеличиваем число строк до 2 млн, затем удаляем 1 млн и сразу собираем мусор:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
 session #1 
C:\MIX\firebird\fb25>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 't0.fdb'; commit;
SQL> create table t(id int, f01 int); commit;
SQL> set term ^;
SQL> execute block as
CON> declare i int=2;
CON> begin
CON> while (i<=2000000) do insert into t values(:i, :i/2) returning :i+1 into i;
CON> end^
SQL> set term ;^
SQL> commit;
SQL> select first 5 rdb$db_key,id,f01 from t;

DB_KEY                     ID          F01
================ ============ ============
8000000001000000            2            1
8000000002000000            3            1
8000000003000000            4            2
8000000004000000            5            2
8000000005000000            6            3

SQL> delete from t where id<=1000000; commit;
SQL> select count(*) from t; commit;

       COUNT
============
      1000000 

 session #2 
C:\MIX\firebird\fb25>isql T0.FDB
Database:  T0.FDB
SQL> insert into t values(-1,  1000 ); commit; -- Enter пока НЕ жмём!

 session #1 
SQL> set transaction  read committe d record_version no wait;
SQL> update t set f01= null  where id > -999999;

 session #2  (быстро перескакиваем сюда по Alt-Tab):
[Enter]
SQL> _

 session #1 
SQL> select rdb$db_key,id,f01 from t where id < 0;

DB_KEY                     ID          F01
================ ============ ============
8000000076370000           -1          1000 

Трейс безжалостен: произошёл апдейт не 1'000'001 строки, а всё того же "старого" 1'000'000:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
update t set f01=null where id > -999999

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN (T NATURAL)

0 records fetched

  16617 ms, 13337 read(s), 12782 write(s), 9309604 fetch(es), 2136164 mark(s)



Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge

***************************************************************************************************************

T                                 1000000             1000000                                                  

PS. И еще непонятно вот что: судя по rdb$db_key, эта запись всё равно оказалась в "конце" таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select rdb$db_key,id,f01 from t where id >= 1999995;

DB_KEY                     ID          F01
================ ============ ============
8000000051406100      1999995       <null>
8000000052406100      1999996       <null>
8000000053406100      1999997       <null>
8000000054406100      1999998       <null>
8000000055406100      1999999       <null>
8000000056406100      2000000       <null>
- а конечный результат уже другой. Печалько... :(
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992466
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоиддействительно есть проблема с RC
Повторяю ещё раз, медленно: тот, кто понизил TIL с умолчания до RC - ССЗБ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992486
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоиддействительно есть проблема с RCПовторяю ещё раз, медленно: тот, кто понизил TIL с умолчания до RC - ССЗБ.Не, погодь!.. RC в SQL-стандарте есть или нет ? Есть. По стандарту стейтмент, стартовавший в RC, должен увидеть все изменения, зафиксированные другими транзакциями после своего старта ? Да, должен. Ну, и ?
ЗЫ. Я понимаю, что snapshot в IB/FB был гораздо раньше сделан, чем RC. Но на практике-то в OLTP-системах юзают именно RC, как более способствующий производительности.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992489
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидюзают именно RC, как более способствующий производительности.

С какого бы перепугу? Ты эту "разницу в производительности" мерял?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992497
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТы эту "разницу в производительности" мерял?нет. и на нашей горе-аппликухе, думаю, не решился бы никогда. не знаю, почему... суеверен, наверное :-)
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992502
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BTW, а зачем вообще Борланд сделал этот RC, если всё и так ладненько было с единственным snapshot'ом ? просто "шоб было как в стандарте" ?
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992504
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидПо стандарту стейтмент, стартовавший в RC, должен увидеть все изменения,
зафиксированные другими транзакциями после своего старта ? Да, должен. Ну, и ?
К слову о стандарте:
READ COMMITTED is the default isolation level for SQL Server. It prevents dirty
reads by specifying that statements cannot read data values that have been modified but
not yet committed by other transactions. Other transactions can still modify, insert, or
delete data between executions of individual statements within the current transaction,
resulting in non-repeatable reads, or "phantom" data.
То есть поведение FB вполне стандарту соответствует. Или Ё! опять будет кричать, что
"мартышка не понимает слова "фантом""?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992561
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нарыл я тут кое-что в 5CD2-02-Foundation-2006-01.pdf, страница 123 (видимая на "листе" PDF), она же 145 по Ctrl-G.
В тексте определено, что может происходить при каждом из уровней изолированности, но в нём нет явно выраженных требований к тому, что НЕ должно происходить (т.е. что запрещено). А главное, там всё упирается в ["добровольное"] перечитывание транзакцией Т1 данных. Но не указано, что она такое перечитывание непременно обязана делать.5CD2-02-Foundation-2006-01.pdf, pg 145The isolation level specifies the kind of phenomena that can occur during the execution of concurrent SQL-
transactions. The following phenomena are possible :
1) P1 (“Dirty read”): <... skipped ...>
2) P2 (“Non-repeatable read”): SQL-transaction T1 reads a row. SQL-transaction T2 then modifies or delete that row and performs a COMMIT. If T1 then attempts to reread the row, it may receive the modied value or discover that the row has been deleted.
3) P3 (“Phantom”): <... skipped ...>
Таким обр., Оракл в TIL = RC делает это перечитывание, а ФБ - не всегда (закономерность я не выявил, впрочем). Но повторюсь: не вижу в стандарте утверждения, что такая перечитка обязательна!
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992565
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

как обычно, ввечеру ты гонишь. Утром перечитай стандарт и свою писанину.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992568
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrкак обычно, ввечеру ты гонишь. Утром перечитай стандарт и свою писанину.до утра не дотерплю. Сна не будет, пощади!... Говори прямо сейчас, в чём именно бред ? :-)
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992586
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидОракл в TIL = RC делает это перечитывание, а ФБ - не всегда (закономерность я не выявил, впрочем).а, вижу... поправочку, конечно же, надо: ФБ его не делает. Но и не обязан, насколько я понимаю.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992616
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидГовори прямо сейчас, в чём именно бред ? :-)
нет уж, так воспитательного эффекта не будет
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992746
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид Но повторюсь: не вижу в стандарте утверждения, что такая перечитка обязательна!
и не увидишь, нет там этого требования. стандарт писали под блокировочники полностью проигнорировав версионные уровни и здравый смысл. в стандарте на IL RC требуеться считать лишь закомиченную запись, тот же мсскл на RC может вычитать миллион записей, хотя реальнео в таблице их всего пять, просто пока он читает эти пять записей другие транзакции меняют эту запись так, что она "переезжает" в конец таблицы и стейтмент его читает еще раз. и так миллион раз :-)
лажа ? однозначно, зато полностью в соответствии с ANSI стандартом.

а по примеру ты похоже еще путаешь рестарт, который оракл в таком простом примере не делает. в моем примере оракл по SCN видит, что последний блок таблицы изменился после старта стейтмента. никаких рестартов там не происходит, что бы произошел рестарт более сложный предикат нужно сочинить.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992770
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!в моем примере оракл по SCN видит, что последний блок таблицы изменился после
старта стейтмента. никаких рестартов там не происходит
Да-а-а?.. И если в этом изменившемся блоке лежит десять последних записей, включая
свежевставленную, что он будет делать? Неужели телепатически догадается какую из них не
трогать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992773
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovДа-а-а?.. И если в этом изменившемся блоке лежит десять последних записей, включая
свежевставленную, что он будет делать? Неужели телепатически догадается какую из них не
трогать?..

иди пожуй ! ИТ это совсем не твое.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992988
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!делаем IOT таблицу (что бы гарантировать, что пишем в начало и конец)
create table shit (id int primary key, a varchar2(20)) organization index;

загоняем туда млн записей начина с ID=2
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare
i int;
begin
for i in 2..1000000
loop
	insert into shit values (i, 'shit-shit-shit-shit') ;
end loop;
end;

сессия1:
update shit set a='updated' where id>0 ;
пока там шуршит

сессия2:
insert into shit values (1,'new') ;
commit;
insert into shit values (1000001,'new') ;
commit;

сколько записей проапдейтит FB ? практически наверняка, проапдейтит 1000001, а 1 оставит нетронутой .А это... как его... в общем, проверил я в Oracle 11.2.0.3.0 (EE). Результат: он тоже НЕ трогает запись, добавленную в начало таблицы.
DDL:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create table t(id int primary key, f01 number) organization index;
declare
  i number;
begin
  for i in 2..2000000 loop
    insert into t values(i, i/2);
  end loop;
end;
/
create or replace trigger t_bu before update on t 
begin
    dbms_output.put_line('update started at '||current_timestamp);
end;
/

select min(id) min_id, count(*) from t;

Код: plaintext
1.
2.
3.
4.
5.
table T created.
anonymous block completed
TRIGGER t_bu compiled
MIN_ID COUNT(*)
------ --------
     2  1999999 


Дальше открываю два sqlplus'a.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 session #1 
update t set f01=null where id>0; -- Жамкаем Enter, там будет 15-20 сек молотьба

 session #2  
insert into t values(1, 1000);

1 строка создана.

Затрач.время: 00:00:00.01
commit;

Фиксация обновлений завершена.

Затрач.время: 00:00:00.00

Через примерно 15-20 сек в session #1 :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
update started at 11.10.12 08:46:21.043752000 +04:00
 
1999999  строк обновлено.

Затрач.время: 00:00:16.59
select * from t where id=1;

        ID        F01
---------- ----------
         1       1000

Затрач.время: 00:00:00.01

select count(f01),count(*) from t;

COUNT(F01)   COUNT(*)
---------- ----------
         1    2000000

Затрач.время: 00:00:00.14

ЧЯДНТ ??
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992991
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид,
Конечно не тронул, оракл как и полагается увидел таблицу на момент старта стейтмента. Обе записи появились после
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992995
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, апдейт в Oracle также "не видит" и такую запись, которая будет добавлена и закоммичена в конец таблицы (в примере выше - с id=2000001).
Я уж забеспокоился, может в serializable работаю, но нет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
X@Y>;SELECT s.sid, s.serial#,
  2     CASE BITAND(t.flag, POWER(2, 28))
  3        WHEN 0 THEN 'READ COMMITTED'
  4        ELSE 'SERIALIZABLE'
  5     END AS isolation_level
  6  FROM v$transaction t
  7  JOIN v$session s ON t.addr = s.taddr AND s.sid = sys_context('USERENV', 'SID');

       SID    SERIAL# ISOLATION_LEVE
---------- ---------- --------------
         4        557 READ COMMITTED
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37992997
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!оракл как и полагается увидел таблицу на момент старта стейтмента.тьфу, не успел я :-)
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993018
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!оракл как и полагается увидел таблицу на момент старта стейтментаТак, хорошо.
А что тогда происходит у него при serializable ? (я понимаю, что это уже совсем не RC, просто интересно: почему ошибка лезет ?)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 session #1 
set transaction isolation level  serializable ;

 session #2 
insert into t values(1,1000);

 session #1 
update t set f01=null where id>0;

 session #2 
commit;

 session #1 
update started at 11.10.12 09:19:13.819510000 +04:00
update t set f01=null where id>0
*
ошибка в строке 1:
ORA-08177: не могу преобразовать в последов.доступ для этой транзакции
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993061
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТаблоидА что тогда происходит у него при serializable ?
это то о чем мы в контексте ROWDEPENDENCIES говорили, оракл заметив что последний блок меняли, перестраховывается. кляуза ROWDEPENDENCIES выставит SCN на каждую запись, тогда поводов перестраховыватся у оракла не будет
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993089
avp_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, решение для FB вполне очевидно - каждый оператор в RC транзакции при старте должен делать "снимок" TIP (как это делается для снапшотов), чтобы использовать этот снимок в процессе своего выполнения. Но это слишком дорого чтобы делать это с каждым оператором по умолчанию.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993520
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp_каждый оператор в RC транзакции при старте должен делать "снимок" TIP (как это
делается для снапшотов)
И тут во весь рост встаёт вопрос: а нахрена этот оператор вообще выполняется в RC, если
должен работать "как в снапшоте".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993540
avp_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИ тут во весь рост встаёт вопрос: а нахрена этот оператор вообще выполняется в RC, если
должен работать "как в снапшоте".


Очевидно чтобы в рамках одной транзации RC атомарно выполнить несколько операторов.
Зачем это может быть нужно - хз.
Возможно нужен костыль чтобы нормально работали клиенты которые не замарачиваются менеджементом транзакций.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993556
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp_Зачем это может быть нужно - хз.
Возможно нужен костыль чтобы нормально работали клиенты которые не замарачиваются
менеджементом транзакций.

Скорее потому, что "взрослые субд" - простые как горшок: у них транзакция или есть или её
сразу нет. А чтобы сразу было целых две транзакции или даже три - не помещается в их
маленькую головку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993791
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоидюзают именно RC, как более способствующий производительности.

С какого бы перепугу? Ты эту "разницу в производительности" мерял?

Мерял на тестовых серверах. На MS SQL Server 2008 разница в производительности между read committed и snapshot составляет примерно 7-10%, для системы с которым я работаю. При этом в случае использования snapshot количество транзакций которые долго выполнялись в несколько десятков раз выше по сравнению с read committed. Система занимается биржевой торговлей, характер нагрузки приложения близок к тестам TPC-E.
Snapshot и read_committed_snapshot у нас на всех OLTP серверах отключены, как раз из-за таких результатов тестов.
Думаю именно из-за того что в спецификации TPC-E прописано что количество долго выполняющихся транзакций не должно быть больше определенного уровня, Оракл не участвует в этих тестах. Вероятно не может обеспечить хорошую производительность так как там невозможно отключить версионность.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993856
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andsmМерял на тестовых серверах. На MS SQL Server 2008 разница в производительности между read committed и snapshot составляет примерно 7-10%, для системы с которым я работаю. При этом в случае использования snapshot количество транзакций которые долго выполнялись в несколько десятков раз выше по сравнению с read committed. Система занимается биржевой торговлей, характер нагрузки приложения близок к тестам TPC-E.
Snapshot и read_committed_snapshot у нас на всех OLTP серверах отключены, как раз из-за таких результатов тестов.
Думаю именно из-за того что в спецификации TPC-E прописано что количество долго выполняющихся транзакций не должно быть больше определенного уровня, Оракл не участвует в этих тестах. Вероятно не может обеспечить хорошую производительность так как там невозможно отключить версионность.
я смотрю у некоторых уже пятница наступила
в первом тесте TPC-E майкрософт пыталась без версионности пройти, но похоже нихера не вышло, пришлось майкрософту включать SNAPSHOT и все тесты в TPC-E сделаны с включенной версионностью.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993958
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!в первом тесте TPC-E майкрософт пыталась без версионности пройти, но похоже нихера не вышло, пришлось майкрософту включать SNAPSHOT и все тесты в TPC-E сделаны с включенной версионностью.
Проверил, действительно используется уровень snapshot. Вероятно не смогли решить проблему с консистентностью данных, у нас решение этой проблемы тоже заняло немало времени.
Но все же это не отменяет того, что при решении проблемы консистентности версионность в OLTP системах можно использовать только там, где нет требований к времени прохождения транзакций.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993979
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andsmНо все же это не отменяет того, что при решении проблемы консистентности версионность в OLTP системах можно использовать только там, где нет требований к времени прохождения транзакций.
вам бы проспаться. крупнейшие OLTP системы мира крутятся на версионном оракле. посмотрите TPC-C. уж тут то вроде блокировочным режимам все карты в руки, мелкие транзакции, транзакции не сталкиваются друг с другом. казалось бы идеальные условия для блокировочников и сплошные неудобства ораклу с его консистентным RC и расходами на UNDO. но в тестах, чего то стабильно заруливает версионный оракл, а не блокировочники
http://oraclemind.blogspot.com/2006/11/tpc-c-oracle-10-vs-mssql2k5.html
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37993981
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmэто не отменяет того, что при решении проблемы консистентности версионность в
OLTP системах можно использовать только там, где нет требований к времени прохождения
транзакций.
Не забывай добавлять "на MS SQL 2008". От их способа реализации версионности через
жопу tempdb ничего другого ожидать и не приходится.

PS: Слова "консистентность" и "Read Committed" в одном предложении вообще звучат смешно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994044
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!andsmНо все же это не отменяет того, что при решении проблемы консистентности версионность в OLTP системах можно использовать только там, где нет требований к времени прохождения транзакций.
вам бы проспаться. крупнейшие OLTP системы мира крутятся на версионном оракле. посмотрите TPC-C. уж тут то вроде блокировочным режимам все карты в руки, мелкие транзакции, транзакции не сталкиваются друг с другом. казалось бы идеальные условия для блокировочников и сплошные неудобства ораклу с его консистентным RC и расходами на UNDO. но в тестах, чего то стабильно заруливает версионный оракл, а не блокировочники
http://oraclemind.blogspot.com/2006/11/tpc-c-oracle-10-vs-mssql2k5.html
Давно не читал спецификации TPC-C, но насколько помню там есть запросы где MSSQL использовал serializable IL. Соответственно наверняка это приводило к блокировкам.
Т.е. там опять таки не получилось менее ресурсоемкого решения для консистентности данных.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994054
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovandsmэто не отменяет того, что при решении проблемы консистентности версионность в
OLTP системах можно использовать только там, где нет требований к времени прохождения
транзакций.
Не забывай добавлять "на MS SQL 2008". От их способа реализации версионности через
жопу tempdb ничего другого ожидать и не приходится.

С другими серверами не сравнивал, но что-то сомневаюсь что в Firebird реализовано лучше или хотя бы на таком же уровне.
Dimitry SibiryakovPS: Слова "консистентность" и "Read Committed" в одном предложении вообще звучат смешно.

Да это непросто, но реализуемо.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994070
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmчто-то сомневаюсь что в Firebird реализовано лучше или хотя бы на таком же
уровне.
Не сомневайся. Версионность в птице появилась на двадцать лет раньше чем в MS SQL, так что
времени на её отладку и оптимизацию было гораздо больше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994126
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovandsmчто-то сомневаюсь что в Firebird реализовано лучше или хотя бы на таком же
уровне.
Не сомневайся. Версионность в птице появилась на двадцать лет раньше чем в MS SQL, так что
времени на её отладку и оптимизацию было гораздо больше.


Хочу отметить, что в fb тройке задумана очень неплохая оптимизация версионности, если не революционная, то близко к тому:) (если конечно получится, как задумано, ну и если тройка когда-нибудь выйдет:))
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994145
avp_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСкорее потому, что "взрослые субд" - простые как горшок: у них транзакция или есть или её
сразу нет. А чтобы сразу было целых две транзакции или даже три - не помещается в их
маленькую головку.


Да, если одна транзакции на коннект, то всё очень грустно и такое поведение необходимо.
Т.е. соломка чтобы юзеры не стреляли себе в ногу.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994175
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp_Да, если одна транзакции на коннект, то всё очень грустно и такое поведение необходимо.
Т.е. соломка чтобы юзеры не стреляли себе в ногу.
мусье на полном серьезе считает, что несколько snapshot транзакций в рамках одного коннекта могут эмулировать одну транзакцию в read_committed_snapshot !?
представляю какие откровения нас ждут в пятницу, если уже в четверг поперло такое !
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994224
avp_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!мусье на полном серьезе считает, что несколько snapshot транзакций в рамках одного коннекта могут эмулировать одну транзакцию в read_committed_snapshot !?

Не могут. Вопрос в том для чего такие транзакции могут быть нужны, и когда аналогичного поведения не достичь посредством композиции нескольких транзакций.
...
Рейтинг: 0 / 0
Что лучше FireBird 2.1 или MS SQL 2000?
    #37994481
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm,

Бесполезно... Ну что ты изливаешься тут перед "теоретиками"...
...
Рейтинг: 0 / 0
83 сообщений из 83, показаны все 4 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Что лучше FireBird 2.1 или MS SQL 2000?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]