powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / out of locks (помогите разложить по полкам)
10 сообщений из 10, страница 1 из 1
out of locks (помогите разложить по полкам)
    #37310462
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Adaptive Server Enterprise/ 12 . 5 . 4 /EBF  14065  ESD# 3 /P/Sun_svr4/OS  5 . 8 /ase1254/ 2030 / 64 -bit/FBO/Sat Oct  14   07 : 19 : 31   2006 

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
sp_configure 'number of locks'
Parameter Name                	Default    	Memory Used	Config Value	Run Value  	Unit                	Type      
------------------------------	-----------	-----------	------------	-----------	--------------------	----------
number of locks               	        5000 	      469232 	     1000000  	     1000000 	number              	dynamic   	

sp_configure 'page lock promotion%'
Configuration option is not unique.	
                                   	

Parameter Name                	Default    	Memory Used	Config Value	Run Value  	Unit                	Type      
------------------------------	-----------	-----------	------------	-----------	--------------------	----------
page lock promotion HWM       	         200 	           0 	         200  	         200 	number              	dynamic   	
page lock promotion LWM       	         200 	           0 	         200  	         200 	number              	dynamic   	
page lock promotion PCT       	         100 	           0 	         100  	         100 	percent             	dynamic   

sp_configure 'row lock promotion%'
Configuration option is not unique.	
                                   	

Parameter Name                	Default    	Memory Used	Config Value	Run Value  	Unit                	Type      
------------------------------	-----------	-----------	------------	-----------	--------------------	----------
row lock promotion HWM        	         200 	           0 	         200  	         200 	number              	dynamic   	
row lock promotion LWM        	         200 	           0 	         200  	         200 	number              	dynamic   	
row lock promotion PCT        	         100 	           0 	         100  	         100 	percent             	dynamic   	


В логах сервера стала часто появляться ошибка "Error 1204, Severity 17" с вытекающими последствиями на приложении
в виде сообщения "ASE has run out of LOCKS".

Правильно ли я понимаю что эскалация блокировок тут работает следующим образом.
1) При блокировке более 200 строк в одной таблице и в одной сессии происходит эскалация до блокировки страниц.

2) После блокировки более 200 страниц в одной таблице и в одной сессии происходит эскалация до блокирования таблицы.

3) Ошибка "ASE has run out of LOCKS" является следствием превышения количества блокировок всех типов числа 1000000 на момент ошибки.


Так?
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37310563
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLMantis,

для таблиц с построчной блокировкой
1. если у вас локов меньше row lock promotion LWM - построчная блокировка
2. если у вас локов больше page lock promotion HWM - эскалирует до блокировки таблицы
3. если у вас локов больше row lock promotion LWM , но меньше page lock promotion HWM, тогда считается row lock promotion PCT(на сколько процентов у вас залочена таблица), если больше чем этот процент, тогда эскалирует до блокировки таблицы

Теже правила для таблиц с постраничной блокировкой, только параметры page lock promotion ... итд.
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37310584
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLMantis 3) Ошибка "ASE has run out of LOCKS" является следствием превышения количества блокировок всех типов числа 1000000 на момент ошибки.

Да вы превысили значение number of locks.

Ну и не забывайте что управление блокировками осуществляется как на уровне сервера, так и на уровне таблице.
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37311286
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЯSQLMantis,

для таблиц с построчной блокировкой
1. если у вас локов меньше row lock promotion LWM - построчная блокировка
2. если у вас локов больше page lock promotion HWM - эскалирует до блокировки таблицы
3. если у вас локов больше row lock promotion LWM , но меньше page lock promotion HWM, тогда считается row lock promotion PCT(на сколько процентов у вас залочена таблица), если больше чем этот процент, тогда эскалирует до блокировки таблицы

Теже правила для таблиц с постраничной блокировкой, только параметры page lock promotion ... итд.

Опечатался!!! Нужно так:
Ядля таблиц с построчной блокировкой
1. если у вас локов меньше row lock promotion LWM - построчная блокировка
2. если у вас локов больше row lock promotion HWM - эскалирует до блокировки таблицы
3. если у вас локов больше row lock promotion LWM , но меньше row lock promotion HWM, тогда считается row lock promotion PCT(на сколько процентов у вас залочена таблица), если больше чем этот процент, тогда эскалирует до блокировки таблицы

Теже правила для таблиц с постраничной блокировкой, только параметры page lock promotion ... итд.
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37311404
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_DenДа вы превысили значение number of locks.

Ну и не забывайте что управление блокировками осуществляется как на уровне сервера, так и на уровне таблице.

Это все понятно. Не понятно одно.
С учетом роста блокировок, по идее, они должны эскалироваться вплоть до табличной блокировки.
Если еще учесть тот факт что практически все таблицы созданы с блокировкой ALLPAGES, я бы расчитывал
получить в самом худшем случае базу вставшую "колом" из за блокировки всех таблиц.
Но при этом, насколько я понимаю, количество блокировок должно быть равно количеству таблиц.
У меня нет миллиона таблиц в базе.
Если же у меня абсолютно все таблицы будут иметь заблокированными 200 страниц (грань после которой будет заблокирована вся таблица) то получается я должен иметь в базе 5000 таблиц. У меня и этого количества нет.
Единственное что приходит в голову - есть некий таймаут между
превышением значения page lock promotion HWM и эскалацией до таблицы.
В этот таймаут я умудряюсь превысить количество блокировок указанное в number of locks.

Есть еще один непонятный момент. Что происходит с двумя разными сессиями, которые читают одну таблицу?
Предположим что обоим нужно заблокировать более 200 страниц. Одна достигает этого порога раньше
и должна произойти эскалация до блокировки таблицы. Но что делать с блокировками второй сессии?
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37311435
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLMantis,

Это сложный механизм: интентовые блокировки, блокировки ожидания, лачесы, курсорные....
Все что вы хотите знать очень хорошо описано в документации. Особено все понятно в русской доке, на sybase.ru ее можно скачать.
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37313761
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 06/16/2011 08:23 PM, cherrex_Den wrote:

> Все что вы хотите знать очень хорошо описано в документации. Особено все понятно
> в русской доке, на sybase.ru ее можно скачать.

Ещё есть в нашем FAQ.

Эскалация на уровне сервера у вас сконфигурена ужасно,
при превышении 200 локов на таблицу просходит эскалация.
Возможно, реально используется конфигурация эскалации на конкретных
таблицах, а глобальная настройка не используется.

В общем, локов вам не хватает по какой-то другой причине.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37313851
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 06/16/2011 08:23 PM, cherrex_Den wrote:

> Все что вы хотите знать очень хорошо описано в документации. Особено все понятно
> в русской доке, на sybase.ru ее можно скачать.

Ещё есть в нашем FAQ.

Эскалация на уровне сервера у вас сконфигурена ужасно,
при превышении 200 локов на таблицу просходит эскалация.
Возможно, реально используется конфигурация эскалации на конкретных
таблицах, а глобальная настройка не используется.

В общем, локов вам не хватает по какой-то другой причине.


Эскалация у нас вообще не настроена. Это дефолтовые значения. Настроек эскалации на таблицах тоже нет.
В общем пока вкуриваю еще раз документацию по блокировкам.
Если есть у кого умные мысли или предположения буду рад выслушать.
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37315510
forget pwd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLMantis,

1. If another task holds locks that conflict with the type of table lock needed, lock escalation does not occur.
2. Lock promotion occur on a per-scan session basis. Each scan of a table is a scan session. Multiple scan sessions can occur on a table for a
given transaction, particularly in the case of a parallel query with multiple worker processes scanning the same table.
...
Рейтинг: 0 / 0
out of locks (помогите разложить по полкам)
    #37315522
forget pwd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ещё.
Эскалация всегда выполняется сразу до уровня таблицы.

Are always from page locks to table locks or from row locks to table locks:
- Row locks are never promoted to page locks
- Occur on a per-scan session basis
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / out of locks (помогите разложить по полкам)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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