Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Блокировки MSSQL, Oracle, IB / 25 сообщений из 47, страница 1 из 2
07.05.2003, 10:20
    #32154898
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Тут знакомый грит что у него на мсскл при удалении нескольких записей регулярно блокируется гораздо больше записей. Точно знаю, что оракл блокирует только на уровне записи и по дефолту реадеры не блокируют, неужели у мс другой подход ? А что у ИБ ?
...
Рейтинг: 0 / 0
07.05.2003, 10:38
    #32154922
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
НАсколько знаю, в MSSQL выше 6.5 возможно установить параметр для блокировки отдельной записи.
У IB нет блокировок, версионная структура. При желании, конечно, блокировать можно - установить запрет другим транзакциям на запись в таблицу, но в обычном режиме такого не делается.
...
Рейтинг: 0 / 0
07.05.2003, 11:21
    #32154974
Zaxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
2 Roman Ignatiev

>У IB нет блокировок, версионная структура.

Что совсем нет блокировок ??? Две сессии будут одну запись одновременно редактировать ? Может всё-таки по чтению блокировок нет?
...
Рейтинг: 0 / 0
07.05.2003, 11:39
    #32155004
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Совсем нет :-))
Две транзакции как правило спокойно могут изменить одну запись, не говоря уже о чтении. И если одна из них сделает rollback - все будет в порядке,
Разбор начинается при commit...
http://www.ibase.ru/devinfo/ibtrans.htm
...
Рейтинг: 0 / 0
07.05.2003, 12:04
    #32155044
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
У MSSQL как и у его родного брата сайбэйза проблемы с блокировкой на уровне строк пожизни.
...
Рейтинг: 0 / 0
07.05.2003, 13:37
    #32155135
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
заглянул на мсдн ... там грится что есть хинт rowlock который в принципе может, но типа по одной блокировать дорого и по дефолту сервер сам решает ! Т.е. майкрософт умный и сам решает и когда захочет может по пол таблицы заблокировать. Так что теперь я должен каждый раз приписывать rowlock ??? и чем мне это грозит на 10 млн записях ?
Да еще забавный пример там был, блокировка по диапозону индекса, типа мне не дадут вставить запись если кто-то в данный момент просматривает (залочел) этот дипазон индекса.
Это я что то недопонял или как раз за это ораклу и платят ?
...
Рейтинг: 0 / 0
07.05.2003, 15:00
    #32155217
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
2 Gt
Вообще-то в хелпе написано так:

The Microsoft® SQL Server™ 2000 dynamic locking strategy automatically chooses the best locking granularity for queries in most cases. In cases where access patterns are well understood and consistent, limiting the locking levels available for an index can be beneficial.

For example, a database application uses a lookup table that is refreshed weekly in a batch process. The most efficient locking strategy is to turn off page and row locking and allow all concurrent readers to get a shared (S) lock on the table, reducing overhead. During the weekly batch update, the update process can take an exclusive (X) lock, and then update the entire table.

The granularity of locking used on an index can be set using the sp_indexoption system stored procedure. To display the current locking option for a given index, use the INDEXPROPERTY function. Page-level locks, row-level locks, or a combination of page-level and row-level locks can be disallowed for a given index.

И чё-то я не понял вашего удивления Так что теперь я должен каждый раз приписывать rowlock ??? и чем мне это грозит на 10 млн записях ?
Вы что пишите select для каждой записи? В любом случае согласитесь, что если Вы собрались делать нечто не совсем стандартным способом, надо как-то это серверу указать.

Да еще забавный пример там был, блокировка по диапозону индекса, типа мне не дадут вставить запись если кто-то в данный момент просматривает (залочел) этот дипазон индекса.
Наверное лучше сказать так: вставка будет произведена после того, как кто-то просмотрит тот диапазон. Не факт что это медленнее, чем создание новой версии диапазона, как это делается в Оракле или Интербейзе.
...
Рейтинг: 0 / 0
07.05.2003, 15:25
    #32155254
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
теперь я понимаю почему разные весовые категории ...

Код: plaintext
1.
Вы что пишите select для каждой записи? В любом случае согласитесь, что если Вы собрались делать нечто не совсем стандартным способом, надо как-то это серверу указать. 


допустим мне нужен read commeted уровень (совершено стандартно), т.е. про селекты забыли. апдейчу пару сотен записей - в результате неизвестно сколько у меня заблокируется ... как то не серьезно получается ...

Код: plaintext
1.
Наверное лучше сказать так: вставка будет произведена после того, как кто-то просмотрит тот диапазон. Не факт что это медленнее, чем создание новой версии диапазона, как это делается в Оракле или Интербейзе.


ну во первых вы похоже даже не пытались посмотреть как это сделанно в оракле, но грубить пока не буду :) ... а факты ... ну надеюсь вы не хотите сказать, что оракловая реализация медленее ?
http://www.eweek.com/slideshow/0,3018,sid=0&s=1590&a=23120,00.asp
...
Рейтинг: 0 / 0
07.05.2003, 17:07
    #32155369
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Я не стал бы утверждать категорично, однако приведенные Вами факты довольно наглядно свидетельствуют, что оракловая реализация медленнее.
...
Рейтинг: 0 / 0
07.05.2003, 17:30
    #32155392
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Поясню, что я имею в виду. Представленные Вами результаты обсуждались здесь еще в марте прошлого года. На 1-м и 2-м графиках рассматривается подключение через JDBC. Обращаю Ваше внимание, что в то время родного JDBC-драйвера к SQL Server еще не существовало, поэтому скорее всего в случае SQL Server использовался JDBC-ODBC bridge. Отсюда - вполне логичные потери в производительности. Однако стоит с SQL Server начать работать не через жопу, а по-людски (графики 3, 4 - all MS-software stack), он показывает свои обычные результаты, т.е. легко делает Oracle по throughput (Oracle - 600 Web pages per sec, MS SQL - 800 на 1000 юзерах) и, соответственно, по времени отклика (Oracle > 30 c, MS SQL < 25).
...
Рейтинг: 0 / 0
07.05.2003, 17:47
    #32155411
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
урл ? неверю (С) Станиславский :)

на самом деле мне как-то все равно как в той непонятной апликации они получили такие цифры. речь не о скорости, но если интересно могу накидать еще пару десятков линков различных "независимых" тестирований.

так вот может ли кто сдесь аргументировано опровергнуть:
мсскл получает близкие результаты с ораклом и дб2 за счет того что блокирует не на уровне записей, а на уровне целых страниц и таблиц.
...
Рейтинг: 0 / 0
07.05.2003, 17:55
    #32155423
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
... добалю:
а если поставить в равные условия (hint ROWLOCK), то большая вероятность, что мсскл загнется от недостатка памяти.
...
Рейтинг: 0 / 0
07.05.2003, 18:21
    #32155469
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Вы сами себе противоречите. Если бы в условиях 1000 одновременных пользователей менеджер блокировок SQL Server выбирал крупную гранулярность блокировок, то это было бы сразу заметно по возрастанию response time. Кроме того, в декабре мы здесь обсуждали потребные затраты на блокирование ресурса в разных СУБД и пришли к выводу, что в SQL Server они, мягко говоря, не превышают аналогичные показатели в Oracle. Поэтому "загнется от недостатка памяти" - это просто бред какой-то.
...
Рейтинг: 0 / 0
07.05.2003, 19:16
    #32155531
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Не понял про респонс тайм ... если я заблокировал пол таблицы то мне наверно всетаки проще с ней манипулировать, или нет ? ну да ладно речь не о том
урл ! где урл ? в декабре по слову блокировка ничего нет. ну и раз уж пошла такая пьянка тыкните в мсдн, а то я пока увидел 2-3 левых кента, настоятельно не рекомендующих таким заниматся из-за "эскалация блокировок". к стате, чо это такое ?
и еще где параметер который нужно выставить, чтоб каждый раз не писать хинт ?
...
Рейтинг: 0 / 0
07.05.2003, 19:31
    #32155546
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Ну вот в чем главное различие:

Oracle never escalates locks. Lock escalation greatly increases the likelihood of deadlocks. Imagine the situation where the system is trying to escalate locks on behalf of transaction T1 but cannot because of the locks held by transaction T2. A deadlock is created if transaction T2 also requires lock escalation of the same data before it can proceed.
...
Рейтинг: 0 / 0
07.05.2003, 21:27
    #32155579
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
1. Обсуждение приведенных Вами результатов тестов здесь: /topic/5003\r
2. Обсуждение того, где сколько стоит каждая блокировка, здесь:\r
http://www.sql.ru/forum/actualthread.aspx??bid=10&tid=12853 \r
Там же я, кстати, высказывался, почему на мой взгляд, адаптивный подход к масштабу блокирования предпочтительнее тупого блокирования уровня записи. \r
3. Видите ли, response time здесь при том, что если бы SQL Server проврался и стал блокировать постранично, поэкстентно, потаблично, податабейзно там, где в данных конкретных условиях предпочтителен масштаб уровня записи, мы с Вами бы немедленно получили на тысячe конкурентных пользователей жуткий contention с неизбежными lock timeouts, deadlocks и всеми прочими неприятностями, о которых Вы пишете. Что, естественно, немедленно посадило бы response time. А здесь мы наблюдаем очевидное замедление производительности только за счет кривого доступа. Как только берется native API, все сразу встает на свои места. Не знаю, насколько скажется поддержка CLR-типов в Юконе, но я глубоко убежден, что изо всех СУБД на сегодня реляционный движок SQL Server 2000 - самый шустрый.
...
Рейтинг: 0 / 0
08.05.2003, 12:32
    #32155972
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Что ж вас так задел этот тест ??? я его привел только для того чтоб показать что многие "независимые" считают, что оракл гораздо быстрее, похоже у вас другое мнение ... но как-то я больше доверяю сылкам :)
на шустрости :) так фокс и mysql думаю делают на порядок ... дело не в скоростях а способности решения задач.

Итак скорсть не важна, давай мерять архитектуры, из того треда выяснил, что похоже глвное отличие - мультиверсионность оракла. дальше идет эсколация, мнение оракла на эту тему я привел. а вот что увидел у мс:

Note The SQL Server query optimizer automatically makes the correct determination. It is recommended that table-level locking hints be used to change the default locking behavior only when necessary. Disallowing a locking level can affect concurrency adversely.

т.е. эскалация приводит к простою и дедлокам, а хинт мне использовать не советуют ? пока больше похоже на минус, чем на оптимизацию.

на счет мультиверсионости: каким образом тогда в мс можно получить какой либо отчет по таблице если в ней работает пара сотен юзеров (апдейтят записи), я так понимаю, что в этом случае ставятся блокировки и считать эти записи совсем нельзя ?
...
Рейтинг: 0 / 0
08.05.2003, 13:37
    #32156095
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
все похоже нашел все различия:
http://dbforums.com/arch/48/2002/5/392828" TARGET="_blank">http://dbforums.com/arch/48/2002/5/392828
...
Рейтинг: 0 / 0
08.05.2003, 14:01
    #32156136
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
И что это? Очередной вопль фаната Oracle? На сравнение СУБД это совсем не похоже , не говоря уже про достоверность фактов приведенных в постинге.
Я вполне понимаю людей с недоверием относящихся к продуктам от MS, но это не повод разводить бессмысленную демагогию...
...
Рейтинг: 0 / 0
08.05.2003, 14:40
    #32156200
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
незнаю чо это, но по поводу оракле вроде все так и есть. ну а что на счет мсскл ? это правда (я про мультиверсионность и эсколацию) ?

просто стандартная ситуация:
каким образом тогда в мс можно получить какой либо отчет по таблице если в ней работает пара сотен юзеров (апдейтят записи), я так понимаю, что в этом случае ставятся блокировки и считать эти записи совсем нельзя ?
...
Рейтинг: 0 / 0
08.05.2003, 14:41
    #32156201
killed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
>И что это? Очередной вопль фаната Oracle? На сравнение СУБД это совсем не похоже , не говоря уже про достоверность фактов приведенных в постинге.

Прочел статью. Там достаточно много интересных и справедливых мыслей.
Что касается достоверности данных (могу оценить только одну сторону - Оракл) - я не увидел откровенных ляпов и сплошной демагогии. Покажите конкретные выдержки из статьи. Их можно обсудить.
...
Рейтинг: 0 / 0
08.05.2003, 15:14
    #32156244
Zaxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
2Crip

>И что это? Очередной вопль фаната Oracle? На сравнение СУБД это совсем не похоже , не говоря уже про достоверность фактов приведенных в постинге

Очень грамотная и объективная статья. Покажите недостоверные факты в статье?

Возможно там есть лишние эмоции типа "SQL Server is clearly positioned between MS-ACCESS and ORACLE in terms of functionality, performance, and scalability (It makes a work group level solution (small number of users with small amount of data), perhaps at the departmental level." это конечно противоречит мелкософтовкой рекламе, но это учитывая проблемы с блокировками и изоляциями это так и есть.
...
Рейтинг: 0 / 0
08.05.2003, 15:54
    #32156307
vov
vov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
Ну а что тут скрывать - есть проблемы с блокировками в MSSQL.
И не от хорошей жизни на многих длинных отчетах ставят хинты NOLOCK (read uncommited). И если бы в MSSQL была версионность, жить было бы легче.

Что есть - то есть

P.S.: Тем не менее мне больше нравится MSSQL - наверно я мазохист...
...
Рейтинг: 0 / 0
08.05.2003, 21:57
    #32156514
Gt
Gt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
OK, с блокировками ясно, но тут еще услышал мнение, что у блокировочных и версионных бд свои достоинства и недостатки. траблы с блокировками - ясно, а в чем минус версионных ? жрут память ? скорость ? мсскл щас вроде на tcp.org и в нонкластеред лидирует.
...
Рейтинг: 0 / 0
09.05.2003, 09:24
    #32156554
SiDen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки MSSQL, Oracle, IB
При одинаковой реализации (предпологая что дураков нет в командах реализующих)теоретически версионки уступают в скорости.
Ну не надо неверсионкам лазить в редологи на селектах. Вопрос открыт при возникших блокировках, имхо тут от реализации задуманного девелопером зависит.
ЗЫ: и скока мона их сравнивать...
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Блокировки MSSQL, Oracle, IB / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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