powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / non-default группа tempdb-ей.
3 сообщений из 3, страница 1 из 1
non-default группа tempdb-ей.
    #37454173
blzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано
Adaptive Server Enterprise/12.5.3/EBF 13339 ESD#7/P/x86_64/Enterprise Linux/ase1253/1951/64-bit/OPT/Fri Mar 24 00:39:11 2006

С вебсервера на SQL наваливается нагрузка и резко начинает дергать много разных хранимых процедур, которые делают временные таблички с решеткой. Которые потом не всегда хорошо удаляются. в частности удаление табличек вызывает дедлоки по системным таблицам:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
03:00000:00461:2011/09/23 15:37:22.52 server  Deadlock Id 9518 detected
Deadlock Id 9518: detected. 1 deadlock chain(s) involved.
Deadlock Id 9518: Process (Familyid 0, Spid 1421, Suid 9) was executing a DROP TABLE command in the procedure 'storedprocedure1' at line 109 at nested level 1.
Deadlock Id 9518: Process 1421 was involved in application '<none>'.
Deadlock Id 9518: Process 1421 was involved on host name '<none>'.
Deadlock Id 9518: Process 1421 was involved in multi-database transaction 'SelectCCYRate'. 
SQL Text: execute userdb.dbo.storedprocedure1
Deadlock Id 9518: Process (Familyid 0, Spid 461, Suid 9) was executing a DROP TABLE command in the procedure 'storedprocedure2' at line 22 at nested level 1.
Deadlock Id 9518: Process 461 was involved in application '<none>'.
Deadlock Id 9518: Process 461 was involved on host name '<none>'.
Deadlock Id 9518: Process 461 was involved in transaction '$DROP TABLE ID=1293844484 #portal_temp execution time'.
SQL Text: exec userdb..storedprocedure2
Deadlock Id 9518: Process (Familyid 0, Spid 461) was waiting for a 'exclusive table' lock on the 'syscolumns' table in database 10 but process (Familyid 0, Spid 1421) already held a 'exclusive table' lock on it.
Deadlock Id 9518: Process (Familyid 0, Spid 1421) was waiting for a 'exclusive table' lock on the 'sysconstraints' table in database 10 but process (Familyid 0, Spid 461) already held a 'exclusive table' lock on it.
Deadlock Id 9518: Process (Familyid 0, Spid 461) was chosen as the victim. End of deadlock information.
Причем таких дедлоков шквал: несколько сотен за пару минут штук.
и с сообщениями
Код: plaintext
1.
2.
3.
4.
00:00000:01029:2011/09/23 15:44:49.80 server  Error: 216, Severity: 20, State: 3
00:00000:01029:2011/09/23 15:44:49.80 server  Attempt to automatically drop temporary table failed.
00:00000:01029:2011/09/23 15:44:49.80 server  Error: 216, Severity: 20, State: 3
00:00000:01029:2011/09/23 15:44:49.80 server  Attempt to automatically drop temporary table failed.
и соответсвующими stack trace сервер начинает сильно задумаваться.

т.к. ASE 12.5.x и системные объекты таблицы там не DOL, то снизить появление таких дедлоков решил воспользоваться фичей "группа tempdb" и забиндить логины на группу.


Оказывается в качестве группы можно использовать только "default", и биндить логины на неё. Именованные группы использовать нельзя:
Код: plaintext
1.
2.
3.
4.
5.
6.
> exec sp_tempdb "create", "nondefaultgroup"
> go 
Server Message:  Number   18941 , Severity   16 
Server 'WebPortal', Procedure 'sp_multdb_creategroup', Line  67 :
Only the 'default' group is currently supported.
( 1  row affected)
(return status =  1 )
...
Рейтинг: 0 / 0
non-default группа tempdb-ей.
    #37459107
Фотография shut-up-and-skate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blzzКоторые потом не всегда хорошо удаляются
давно это у вас?
...
Рейтинг: 0 / 0
non-default группа tempdb-ей.
    #37459238
SAV4SAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blzz
Код: plaintext
1.
2.
3.
4.
00:00000:01029:2011/09/23 15:44:49.80 server  Error: 216, Severity: 20, State: 3
00:00000:01029:2011/09/23 15:44:49.80 server  Attempt to automatically drop temporary table failed.
00:00000:01029:2011/09/23 15:44:49.80 server  Error: 216, Severity: 20, State: 3
00:00000:01029:2011/09/23 15:44:49.80 server  Attempt to automatically drop temporary table failed.

Если остаются "потерянные" временные таблицы, то можно удалить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
dbcc traceon( 3604 )
dbcc orphantables('list')
dbcc traceoff( 3604 )


dbcc traceon( 3604 )
dbcc orphantables('drop')
dbcc traceoff( 3604 )
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / non-default группа tempdb-ей.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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