powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как бороться с блокировками в ASE 12.5.0.3
17 сообщений из 42, страница 2 из 2
Как бороться с блокировками в ASE 12.5.0.3
    #32520770
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, просьба - не могли бы Вы слишком большие скрипты кидать в txt-файлики и просто присоединять их к сообщению ? Мне кажется так будет удобней для прочтения топика, а то умучаешься листать и искать между скриптами сообщения авторов :)

P.S. Надо же морально поддержать Judge, а то он мучался мучался, сервис присоединения файлов делал, а мы все по старинке кидаем рулоны скриптов прямо в сообщения :)
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521191
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
Нужно отлаживаться на процедуре, на это нужно время, а на все 
подряд ставить индексы нет смысла. Но вечером этим займусь.
Обязательно. Да и вообще ХП посмотри на предмет сокращения числа инсертов/апдейтов...

Код: plaintext
И как включить и где посмотреть HyperTreading?
В биосе. Но у тебя 2003, поэтому не очень интересно. Был бы 2000 - это да - включаешь HT и в виндах видишь 4 проца - красота... 8))))

Код: plaintext
1.
2.
3.
4.
5.
6.
После всего проделанного, сервер работать стал медленнее.

Я вернул sp_configure 'max online engines', 2 
перезапустил, но ситуация не улучшилась
Вчера сложный запрос работал  35  сикунд, сейчас более 2х минут :(

Лучшее враг хорошего....
1. Убей 16К-пул.(сконфигури=0)
2. Перезагрузи ASE
3. Создай 4К-пул Мегов на 200
4. user log cache size увеличь минимум до 8192, а еще лучше до 12000
Затем опять посмотри sp_sysmon, секцию

Transaction.Management
----------------------

..ULC.Flushes.to.Xact.Log.........per.sec......per.xact.......count..%.of.total
..-------------------------..------------..------------..----------..----------
....by.Full.ULC.....................166.4.........118.0.......99813......87.9.%
Должно быть меньше!!!

..Max.ULC.Size.During.Sample..........n/a...........n/a........2048.......n/a
Посмотри, какое значение будет. если будет равно установленному значению - увеличивай еще.

5. deadlock checking period чему равен? Поставь 50000
6. Procedure cache percent чему равен?

Да и вообще, если на сервере кроме ASE никого нету, то дай ASE побольше памяти!
Если хочешь - оставь e-mail (или ICQ), могу сбросить настройки своего сервера... Хоть у меня и 12.0, но различий немного и они описаны в документации...
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521440
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делать отдельные девайсы для лога и default сегментов - стандартная рекомендация, в том числе и для tempdb, у меня например и system вынесен на отдельный девайс.

sp_addthreshold
1. Размер указывается в 2к страницах
2. Можно указать процедуру либо в текущей базе, либо sybsytemprocs (если имя начинается с sp_).
т.е. для 200Мб
sp_addthreshold tempdb, logsegment, 102400, sp_prc_dumptransaction

Увеличить User Log Cashe Size - хороший совет, sysmon так и написал
..-.Consider.increasing.the.'user.log.cache.size'
....configuration.parameter.

Процедурный кэш, аналогично
..-.Consider.increasing.the.'procedure.cache.size'
....configuration.parameter.

По поводу удаления 16к, обычно его очень любят операции типа select into и т.д. Из-за него может тормозить только в одном случае - 16к создан слишком маленьким, сервер начинает его активно использовать, а места не хватает - начинается ожидание освобождения пространства в кэше. 4кб кэш тоже можно создавать, его использует лог, но в tempdb лучше использовать нелоггируемые операции.

max online engines не должен быть больше числа процессоров в машине (или виртуальных процессоров в машине с HT).

Дополнительные рекомендации из sysmon-а

..-.Consider.decreasing.the.'runnable.process.search.count'
....configuration.parameter.if.you.require.the.CPU's.on
....the.machine.to.be.used.for.other.applications.
А что на машине что-то еще крутится? Обычно это говорит о конкуренции за процессор. В общем стоит вернуться к default.

..-.Consider.increasing.the.'deadlock.checking.period'.parameter
....by.50.ms.
Дедлоков действительно нет, а т.к. user-ов мало, смело можно увеличивать.

....Tuning.Recommendations.for.Data.cache.:.default.data.cache
....-------------------------------------
....-.Consider.using.'relaxed.LRU.replacement.policy'
......for.this.cache.
В принципе можно, но на одном выводе сисмона такое решение принимать не стоит, вобще лучше сделать пару отдельных кэше с такой политикой для наиболее активно используемых таблиц (правда нужно, чтобы кэш покрывал хотя бы на 80% таблицу и индексы).

....-.Consider.adding.a.large.I/O.pool.for.this.cache.
Это общая рекомедация, что бы советовать что-то надо знать какие операции в основном используются, можно добавить 4кб пул для лога или сделать для него отдельный кэш.
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521453
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> user log cache size увеличь минимум до 8192, а еще лучше до 12000
только не 12000, а 12288, должно быть кратно 4к.
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521475
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 _Sania
Код: plaintext
1.
2.
По поводу удаления 16к, обычно его очень любят операции типа select into и т.д. Из-за него может тормозить только в одном
 случае - 16к создан слишком маленьким, сервер начинает его активно использовать, а места не хватает - начинается ожидание
 освобождения пространства в кэше. 
Ну, не знаю, не знаю... Я в свое время поимел немало проблем из-за 16К-пула...
Причем баловался размерами до 300 Мб... Проявления одни и те же - активное шуршание винтами и резкое падение производительности...
В чем грабли, так и не понял...
Код: plaintext
4кб кэш тоже можно создавать, его использует лог, но в tempdb лучше использовать нелоггируемые операции.
Посмотри на рез-т sp_sysmon - по-моему, лог пишется активно...
ИМХО, 4к-пул - форевер... 8)

Код: plaintext
только не  12000 , а  12288 , должно быть кратно 4к.
Считать было лень уже... 8))))
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521487
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя в моих скриптах перед reorg rebuild'ом всегда создается 16К-пул. 8)))
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521494
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Убей 16К-пул.
Убил, стало лучше. :)

Отлаживался на процедуре:
60% времени занимает операция - DROP TABLE #f_deal_temp
все UPDATE всместе взятые не занимают этого времени !


№.... дата время...............время в миллисекундах....операция в процедуре ask_f_deal
1......18.05.2004 9:22:15.013............[NULL] - начало работы процедуры
2......18.05.2004 9:22:15.043............30....... - CREATE TABLE #f_deal_temp
3......18.05.2004 9:22:15.140............96....... - INSERT INTO #f_deal_temp
4......18.05.2004 9:22:52.043............36903.. - все UPDADTE #f_deal_temp
5......18.05.2004 9:22:57.467............5423... - SELECT * FROM #f_deal_temp
6......18.05.2004 9:23:47.060............49593.. - DROP TABLE #f_deal_temp

Я этого не понимаю.

> 5. deadlock checking period чему равен? Поставь 50000
у меня равен 500 - сейчас изменю.

>6. Procedure cache percent чему равен?
у меня равен 32000

E-mail budget открыл
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521611
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил:
user log cache size - 12288
deadlock checking period - 50000
Перезапустился:
На один и тот же запрос картина поменялась:

№.... дата время...............время в миллисекундах....операция в процедуре ask_f_deal
1...........18.05.2004 10:38:40.950.....[NULL] - начало работы процедуры
2...........18.05.2004 10:38:40.967.....16....... - CREATE TABLE #f_deal_temp
3...........18.05.2004 10:38:41.390.....423....... - INSERT INTO #f_deal_temp
4...........18.05.2004 10:40:06.717.....85326.. - все UPDADTE #f_deal_temp
5...........18.05.2004 10:40:10.437.....3720... - SELECT * FROM #f_deal_temp
6...........18.05.2004 10:40:14.500.....4063.. - DROP TABLE #f_deal_temp

Вопос:
А можно ли как - нибудь уменьшить приоритет вызываемой процедуры
перед другими, если я знаю, что этот пользователь в данный момент
запросил большое количество данных и может всех подвесить?
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521689
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
exec sp_setpsexe @@spid, 'priority', 'LOW'

но пользоваться стоит очень аккуратно.
На sybase.com была документация на русском.
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521699
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понижается уровень всего текущего процесса, а если пользователь не sa, то повысить обратно он его не сможет.
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32521880
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А жизнь то налаживается!

Код: plaintext
1.
2.
3.
4.
5.
6.
Увеличить User Log Cashe Size - хороший совет, sysmon так и написал
..-.Consider.increasing.the.'user.log.cache.size'
....configuration.parameter.

Процедурный кэш, аналогично
..-.Consider.increasing.the.'procedure.cache.size'
....configuration.parameter.

Увеличил, спасибо за настойчивые рекомендации.
user log cache size - 12288
Пооменял 'procedure.cache.size' c 32000 на 64000

!! блокировок стало меньше, очередь по tempdb появляется реже
но если постараться все равно самая долгая операция
при совместном доступе - DROP TABLE #f_deal_temp
все остальное (UPDATE INSERT) проходит очень быстро.
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32522009
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу всех поблагодарить за участие в этом обсуждение
Действительно сервер стал работать лучше а главное надежнее.

Большое всем спасибо.
И на последок.

sp_sysmon '00:10:00'
go

результат в присоедененном файле
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32523743
Mladov Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На здоровье! 8)))
Маленький совет - В рез-тах sp_sysmon видищь строчки

. Tuning Recommendations for <...>
. ----------------------------------------------
. - ..................................
... configuration parameter.

Открываешь Perfomance and Tuning guide и ищешь, что там написано про этот параметр. Смотришь, чему он равен у тебя, и смотришь, что рекомендуют.

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

И будет тебе щастье! 8)
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32800790
bantik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу текста процедуры. Замечания сразу

1) Create # table такого размера действительно может лочить серверную таблицу sysobjects. Кроме этого бывает что использование временной таблицы повлечет перекомпиляцию процедуры.

Как вариант - сделай таблицу постоянной, а чтобы пользователи не дрались с данными - введи столбец SPID , заполненный @@spid и во всех запросах добавь where SPID = @@spid

2) На # таблице нет индекса - вообще бред. Практика показала что # таблицы без явного unique индекса неправильно обрабатываются в FETCH, @@rowcount , особенно под нагрузкой.

3) Не увидел мыслей про FORCEPLAN ON и нет описания ключей таблиц fd_sum и пр. SELECT DISTINCT в таком режиме будет загружать CPU сильнее.

4) Есть смешные места про LIKE "%sssss%" - это чистый скан и их в нормальной системе быть не должно в принципе. Перепроектируй структуру (как я понял была попытка реализовать субконто в потрфеле).

5) Мало групповых операций - сплошные навигационные хождения по таблицам - SQL в таком режиме не особо эффективен.

p.s. По ощущению, если выполнить мои рекомендации - можно ускорить этот код минимум раз в 100 :-))

Удачи !
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32803360
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бороться с блокировками это всё равно, что бороться со светофорами для того чтобы быстрее ездить!!!!
Их(блокировки) нужно уважать.

Начать нужно с этого!!!
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32803390
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо сказано !
А что этот старый топик наверх вытащили, еще проблемы есть, или просто кто-то решил свое слово вставить спустя пол-года ?
...
Рейтинг: 0 / 0
Как бороться с блокировками в ASE 12.5.0.3
    #32803723
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничто так не улучшает производительность, как перепроектирование...)))
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как бороться с блокировками в ASE 12.5.0.3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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