powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос про тип блокировок
8 сообщений из 8, страница 1 из 1
Вопрос про тип блокировок
    #32287969
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.
Есть ASE 11.9.2.5 под NT
Подскажите, пожалуйста, есть ли смысл перейти на datarow lock с datapage lock? Чем это чревато (тормоза, память отгрызает...)?
Народу на сервере не очень много, но постоянно одни добавляют данные, а другие пытаются посмотреть... Подтормаживает... Юзеры скоро начнут ногами бить... 8(

ПС Админю Sybase примерно полгода, вопросов куча по оптимизации производительности... Буду постепенно вываливать... 8)
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32288337
Alex Romanovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты наверно хотел сказать наоборот?
перейти можно, но сам сайбэйз не рекомендует это дело.
вообще на блокировках я уже собаку съел, в большинсве случаем - это проблема кривонаписанного клиентского софта, поэткрывают курсоры на всю базу - а потом удивляются.

так что переход с пагы на роу не поможет в 90% случаев
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32288635
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не... Есть datapage lock. Если я переведу все таблицы на datarow lock, то что это даст? Или не дасть, а только заберет? 8)
Как я понял, при переходе на датароу надо будет увеличивать число процессов...
Курсоры открываются редко, но не на всю таблицу....
Просто часто бывает ситуация - кто-то пишет в таблицу (добавляет), а остальные в это время пытаются селектить из этой же таблицы, причем некоторое число последних страниц. В итоге, пока первый не добавит - все сибят и курят бамбук... А добавляет юзер долго, т.к. там идет еще по куче таблиц добавление... В итоге пинают меня - "Не, ты глянь, как все тормозит, что там на сервере происходит!" Я гляжу - загрузка процентов 20, смотрю блокировки - юзер блокировал пару страниц и все...
Вот я и думаю - если перейти на датароу лок, то юзер будет блокировать только добавляемые (изменяемые) записи, а остальные записи будут свободными... Так ли это на самом деле и какие грабли тут могут быть?
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32290561
Alex Romanovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переход на блокировку по строке сущетвенно увеличит загрузку сервера.
думай как это обойти.

потом можно сделать так
select * from table at isolation level uncommitted
и никаких блокировок.
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32291234
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дык, придется штук 100 процедур разгребать... 8(((
Не-е-е... Не пойдеть...
А в чем возрастает нагрузка на сервер? По большому счету не все равно, что блокировать? Разумеется, увеличивается число блокировок. Соответственно нужно будет увеличить number of lock, что приведет к некоторому уменьшению размера доступной для кэша памяти. Или я неправ?
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32292024
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не с тем пытаешься бороться. У тебя длинные транзакции, переход с паге на роу практически ничего не даст. Ну выгребет он у тебя не 80 а 90 процентов, а потом все равно на последних строках ждать будет.

Это не способ...

Смотри план запросов на изменение БД и время блокировок. Попытайся уменьшить транзакции. Ну специфики твоей БД не знаю, но пример простой. У нас БД была, там идентити генерилось через одну системную таблицу. Блокировки были на весь инсерт, посему часто блокировалась системная таблица (узкое место). Поставили генератор на СП и внутри СП - свой уровень блокировок. Что убрало тормоза и довольно сильно.

2-й способ. Если у сервака много памяти и он не дай бог многопроцессорный - смотри планы на предмет распараллелиности работы... Создавай больше именных кэшей на тяжелых запросах. Если возможно - включай грязное чтение (но с умом). Частенько помогает.

Ну и последнее, не получается что выше грил - ставь второй сервак, водружай репликайшн сервер и всю аналитику туда вешай. Разгрузишь хорошо обе системы сразу проверено. Правда дороговато это. Но в крайнем случае ставь off-line и на 3 минуты...
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32292739
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дык систему-то не я писал... 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(((
Мож я чего-то недопонимаю?
...
Рейтинг: 0 / 0
Вопрос про тип блокировок
    #32293604
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала скачай это и почитай... думаю полезно будет. \r
\r
|> \r
\r
Далее, попробуй убедить начальство на курсы Sybase, есть 2 пользительных. Насколько помню 511 и 512. \r
\r
Насчет кэшей смотри главу 15. Грубо - вся память делится на несколько сегментов, пару из них кэши данных и процедур. Так вот ты можешь увеличивать общий кэш данных, можешь создавать именные кэши и привязывать их к конкретным объектам СУБД (БД, таблице... ) Ну а дальше, если видишь, что у тебя активно юзается одна таблица, и из-за нее тормоза (так как она периодически вымещается из кэша на диск), тогда создаешь для нее свой именной кэш - она останется в памяти (никто выкидывать не будет) и к ней доступ будет наиболее быстрый.\r
\r
То что у тебя под сервак всего гиг - плохо... Я с НТ не работал, но насколько помню - есть документ на сайбез ком, в котором описываются тонкости настройки памяти под НТ и линух. Думаю увеличить доступную память до 1.5 - 2 гигов сможешь. При большей памяти у тебя создаются большие кэши данных и эффективнее работают именные кэши. Данные из таблиц лежат в памяти и запросы работают быстрее. Хотя конечно это только общие слова, для проверки затыков сервера запускай sp_sysmon - собирай статистику и смотри на "плохие" параметры. Там они практически все видны - и вот тогда целенаправленно крутить их надо. Плохо конечно, что тестовый на боевом лежит и нет другого сервака. Тогда экспериментируй после бэкапа и по вечерам-ночам, другого выхода не вижу. Хотя статистику можно и днем собирать.\r
\r
Теперь по поводу репликации. Для тебя действительно может быть спасением, особенно если определишь основную нагрузку на сервер. У нас самым главным грузиловом были отчеты, а ввод данных (если только ввод) - копейки и без особых взаимных блокировок. Тогда проще купить 1-2 проц. сервак, туда слить кописю БД, поставить ее для ввода. Поставить репликэйшн сервак (лучше на отдельный комп - обычной рабочей станции хватит, либо на 4-х проц.) и сливать из продакшн сервера данные. Все отчеты повесить именно на него.\r
\r
У сайбеса есть 2 вида репликации - online и offline. Для тебя более предпочтителен онлайн: ставить проще гораздо - он изначально предназначен для работы 2-х и более ASE, данные на втором серваке появляются практически мгновенно. Но он дороже существенно офлайна. В общем звони в представительство сайбеса, читай бумажки и покупай...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос про тип блокировок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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