|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
Привет всем. Есть ASE 11.9.2.5 под NT Подскажите, пожалуйста, есть ли смысл перейти на datarow lock с datapage lock? Чем это чревато (тормоза, память отгрызает...)? Народу на сервере не очень много, но постоянно одни добавляют данные, а другие пытаются посмотреть... Подтормаживает... Юзеры скоро начнут ногами бить... 8( ПС Админю Sybase примерно полгода, вопросов куча по оптимизации производительности... Буду постепенно вываливать... 8) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2003, 16:53 |
|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
ты наверно хотел сказать наоборот? перейти можно, но сам сайбэйз не рекомендует это дело. вообще на блокировках я уже собаку съел, в большинсве случаем - это проблема кривонаписанного клиентского софта, поэткрывают курсоры на всю базу - а потом удивляются. так что переход с пагы на роу не поможет в 90% случаев ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2003, 08:09 |
|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
Не... Есть datapage lock. Если я переведу все таблицы на datarow lock, то что это даст? Или не дасть, а только заберет? 8) Как я понял, при переходе на датароу надо будет увеличивать число процессов... Курсоры открываются редко, но не на всю таблицу.... Просто часто бывает ситуация - кто-то пишет в таблицу (добавляет), а остальные в это время пытаются селектить из этой же таблицы, причем некоторое число последних страниц. В итоге, пока первый не добавит - все сибят и курят бамбук... А добавляет юзер долго, т.к. там идет еще по куче таблиц добавление... В итоге пинают меня - "Не, ты глянь, как все тормозит, что там на сервере происходит!" Я гляжу - загрузка процентов 20, смотрю блокировки - юзер блокировал пару страниц и все... Вот я и думаю - если перейти на датароу лок, то юзер будет блокировать только добавляемые (изменяемые) записи, а остальные записи будут свободными... Так ли это на самом деле и какие грабли тут могут быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2003, 12:00 |
|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
переход на блокировку по строке сущетвенно увеличит загрузку сервера. думай как это обойти. потом можно сделать так select * from table at isolation level uncommitted и никаких блокировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2003, 07:12 |
|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
Дык, придется штук 100 процедур разгребать... 8((( Не-е-е... Не пойдеть... А в чем возрастает нагрузка на сервер? По большому счету не все равно, что блокировать? Разумеется, увеличивается число блокировок. Соответственно нужно будет увеличить number of lock, что приведет к некоторому уменьшению размера доступной для кэша памяти. Или я неправ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2003, 13:54 |
|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
не с тем пытаешься бороться. У тебя длинные транзакции, переход с паге на роу практически ничего не даст. Ну выгребет он у тебя не 80 а 90 процентов, а потом все равно на последних строках ждать будет. Это не способ... Смотри план запросов на изменение БД и время блокировок. Попытайся уменьшить транзакции. Ну специфики твоей БД не знаю, но пример простой. У нас БД была, там идентити генерилось через одну системную таблицу. Блокировки были на весь инсерт, посему часто блокировалась системная таблица (узкое место). Поставили генератор на СП и внутри СП - свой уровень блокировок. Что убрало тормоза и довольно сильно. 2-й способ. Если у сервака много памяти и он не дай бог многопроцессорный - смотри планы на предмет распараллелиности работы... Создавай больше именных кэшей на тяжелых запросах. Если возможно - включай грязное чтение (но с умом). Частенько помогает. Ну и последнее, не получается что выше грил - ставь второй сервак, водружай репликайшн сервер и всю аналитику туда вешай. Разгрузишь хорошо обе системы сразу проверено. Правда дороговато это. Но в крайнем случае ставь off-line и на 3 минуты... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2003, 23:31 |
|
Вопрос про тип блокировок
|
|||
---|---|---|---|
#18+
Дык систему-то не я писал... 8( Конечно, поковырять надо на досуге... Сервак 4-х процессорный, памяти 2 гига... База примерно такая же. Но! На этом же серваке висит еще тестовая база, по объему равная рабочей... 8( Выделил ASE гиг оперативки (Винды больше не дают). Распараллеливание, думаю, не сильно поможет, т.к. юзеры бывают апдейтят одни и те же таблицы, а это чревато дедлоками... 8( Хотя, давно хочу попробовать, но боязно на рабочем сервере... Какой, кстати, макс. уровень имеет смысл ставить на 4-процессорном серваке с ~15-20 юзерами? Создавай больше именных кэшей на тяжелых запросах. Если возможно - включай грязное чтение (но с умом). Э-э-э... кэши создавать в процедуре? Ну, в смысле, в начале процедуры создается, в конце убивается? Или создать кэши и прибиндить к ним таблицы/индексы/хп? А как грязное чтение включить? Понизив уровень блокировок или в настройках сервера? Ну и последнее, не получается что выше грил - ставь второй сервак, водружай репликайшн сервер и всю аналитику туда вешай. Разгрузишь хорошо обе системы сразу проверено. Правда дороговато это. Но в крайнем случае ставь off-line и на 3 минуты... А где его взять-то репликайшн сервер-то? он в состав ASE входит? Или его надо дополнительно добывать? Я просто уже задумывался над этим, а то в начале месяца просто висняк на сервере от пары юзеров, которые данные за месяц поднимают и всякие отчеты строят... Но в крайнем случае ставь off-line и на 3 минуты... Не понял... 8( Это к чему? Еще были идеи по поднятию производительности: - создать 4К пул мегов на 16 для транзакшн лога - создать 16К пул мегов на 8 для prefetch'а Стоит попробовать или лучше не надо? Правда, я как-то пробовал создать 16К пул на 8 метров, но через 10 минут телефон раскалился докрасна от звонков типа "Ничего не работает!" Посмотрел в диспечере задач - загруз процессоров ~80-90 процентов, из них загрузка ядра (ввод-вывод, как правило) 70-80 процентов... 8((( Мож я чего-то недопонимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2003, 14:40 |
|
|
start [/forum/topic.php?fid=55&fpage=132&tid=2014812]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 409ms |
0 / 0 |