Последние комментарии
Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.
Ololo
Ну а чё моё сообщение с профуми о разных СУБД не публикуешь?
Михаил Фленов
Версионность решает проблему блокировки данных. Если кто-то заблокировал данные, то ты можешь продолжать читать их, но будешь все время видеть данные, которые были до начала изменений. Для случаев, где есть обновление данных, блокировать приходиться вручную. В Oracle это делаешь с помощью SELECT FOR UPDATE.
Илья
Одно не понятно. Каким образом версионность решает озвученную в статье проблему? Проблему логической целостности. Получить версию о наличии товара на складе это, конечно, здорово. Но где гарантия, что этот товар все еще будет на складе по окончании вашей транзакции, которая, в свою очередь, будет списывать его с того же склада?
Lt
С блокировками SQL Server работает быстрее и расходует меньше ресурсов, поэтому по умолчанию до сих пор используется он. Когда программисты не умеют оптимизировать свой код, то им проще использовать nolock или перейти на версионность, потому что при большем расходе ресурсов, она работает с SQL Server.
Михаил Фленов
Oracle изначально был версионником и не сравнивайте его архитектуру с MS SQL Server. Версионность - один из возможных способов решения проблемы блокировок.
Ololo
Все современные СУБД кроме SQL Server используют многоверсионность по-умолчанию, неужто все тупые, а одни Microsoft умней всех? Думаю, они не меняют дефолтное поведение чтобы привыкших к блокировкам не кидать в ступор, что всё работает хорошо даже без лишних действий. Более того, слышал что SQL Server в Azure использует многоверсионность по-умолчанию. По блокировкам вечно слышишь вот такие проблемы что всё тупит, лочится, часто бывают дедлоки. Был я на одном проекте с базой около 400Гб там был блокировочный режим и некоторые запросы выдавали дедлок при множесте пользователей, конечно скорее всего те запросы были кривые, но тем немнее простой перевод на версионность решил проблемы с дедлоками, потом спецы по базам тестировали на проде пришли к выводу что многоверсионность повысила общую производительность и убрала дедлоки. Так что не вижу никаких причин использовать этот устаравший режим явно минусов у него больше.
Илья
Ololo, Oracle в твоем списке явно лишний. Это СУБД-версионник.
Михаил Фленов
Версионность не бесплатна. У нее тоже есть недостатки, почитай о них, прежде чем включать ее. Один из них - на update и delete создаются версии строк в tempdb и это увеличивает на нее нагрузку. Если бы у этого уровня чтения были бы только преимущества, его бы использовали по умолчанию и MS всех насильно перевела бы на него.
Ololo
Нормальные люди уже давно включают версинность вместо блокировок. Наверное, пользователи SQL Server самые отсталые из всех потому, что по дефолту эти опции выключены, хотя такая возможность появилась ещё в 2005й версии, в отличии от всех других СУБД (Firebird, Oracle, PostgreSQL, MySQL), а людям не хватает ума почитать документации что в мире есть не только блокировки.

Михаил Фленов
Ели в сообщении были линки, то оно скорей всего не сохранилось. Я не знаю, что такое "профуми", я так понимаю, ты хотел что-то доказать про разные базы данных. Хочешь использовать версионность, используй даже на SQL Server, в ней ничего плохого нет. Хочешь доказать, что MS не правы, что по умолчанию нет версионности, то надо написать им, а не мне.