11.09.2008, 15:46 | #1 |
MCTS
|
MS SQL Processes Viewer
Всем привет.
После очередных изысканий в области блокировок Аксапты с MS SQL решил сделать маленькую фичу, облегчающую эти самые изыскания. Поскольку фича получилась довольно удобной, решил поделится ей с общественностью . Основные возможности фичи:
Разрабатывалось и тестировалось для AX3.0SP6 + MS SQL Server 2005. Поскольку фича маленькая, перед запуском ее необходимо слегка доработать напильником в некоторых местах (места отмечены TODO в коде, там же и небольшие коменты ). Для демонстрации работы фичи необходимо в Аксе "сделать" блокировку и из независшей сессии запустить <\Menu Items\Display\SQLProcessesViewer> из прилагаемого проекта. Далее методом тыка изучить то, что откроется . В случае возникновения проблем или благодарностей, просьбо писать в этой теме . |
|
|
За это сообщение автора поблагодарили: Косых Артём (3), alex55 (1), fedka (1). |
15.09.2008, 11:22 | #2 |
MCTS
|
146 просмотров, 125 скачиваний... Ни замечаний, ни благодарностей
Кто-нить пробовал запускать фичу для кластера аосов? |
|
15.09.2008, 11:28 | #3 |
Участник
|
Я все держу тему открытой, но так и не скачал.
Думаю, пара скриншотов должна подогреть интерес к тулзе. |
|
15.09.2008, 16:14 | #4 |
Участник
|
На Axapta 3.0 SP3, MS SQL 2000 - ругается Invalid object name 'sys.sysprocesses'.
Если закомментировать - то форма открывается, очень похоже на форму "Активные пользователи" На заблокированные русурсы кстати тож ругается.. Походе нет такого представления в SQL Server-e
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
15.09.2008, 17:11 | #5 |
MCTS
|
Попробуйте заменить "sys.sysprocesses" на "master.dbo.sysprocesses", должно помочь для процессов. Длязаблокированных ресурсов надо посмотреть в хелпе.
|
|
|
За это сообщение автора поблагодарили: Weez (1). |
16.09.2008, 10:07 | #6 |
Участник
|
Угу, помогло
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
17.09.2008, 18:39 | #7 |
Участник
|
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a JOIN master.dbo.partitions as b в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions). Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м). |
|
18.09.2008, 09:47 | #8 |
Участник
|
Цитата:
Сообщение от Sergey Petrov
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a JOIN master.dbo.partitions as b в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions). Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м). Маленькая тулза, может кто писал... К сожалению, сейчас проверить не могу... |
|
17.03.2010, 12:39 | #9 |
MCTS
|
Цитата:
Сообщение от Sergey Petrov
Всё чудесно, но одно большое НО - где бы найти информацию по аналогу комбинации
FROM master.dbo.dm_tran_locks as a JOIN master.dbo.partitions as b в SQL Server 2000? Что-то я нашёл про табличку syslockinfo, но там есть поле такое rsc_objid, по которому никак не получается у меня получить имя объекта (в предложенном решении эта инфориация как раз и получается за счёт связки с partitions). Без этой части совсем не интересно получается (для меня, с моим старичком 2000-м). X++: select a.req_spid As SPID, a.rsc_objid As ObjId, b.name As ObjName, substring (v.name, 1, 4) As Type, substring (u.name, 1, 8) As Mode, substring (x.name, 1, 5) As Status from master.dbo.spt_values v, master.dbo.spt_values x, master.dbo.spt_values u, master.dbo.syslockinfo a, <DBNAME>.dbo.sysobjects b where a.req_spid = <SPID> and a.rsc_objid = b.id and a.rsc_type = v.number and v.type = 'LR' and a.req_status = x.number and x.type = 'LS' and a.req_mode + 1 = u.number and u.type = 'L'
__________________
Dynamics AX Experience |
|
|
За это сообщение автора поблагодарили: Logger (3). |
17.03.2010, 12:46 | #10 |
Участник
|
Для быстрого поиска виновника блокировок (когда они раньше у нас были) для MS SQL Server, использую следующий запрос.
Он отбражает только виновника, который является корнем всех остальных блокировок. PHP код:
|
|
17.03.2010, 12:56 | #11 |
Участник
|
Цитата:
Сообщение от Ace of Database
Для быстрого поиска виновника блокировок (когда они раньше у нас были) для MS SQL Server, использую следующий запрос.
Он отбражает только виновника, который является корнем всех остальных блокировок. PHP код:
|
|
17.03.2010, 12:58 | #12 |
Участник
|
Эх! опять зря написал
|
|
17.01.2013, 12:18 | #13 |
Участник
|
Для 4ки бы кто запилил =)
|
|
Теги |
download, sql, sql 2005, sql 2008, sql server, администрирование, блокировки, законченный пример, инструменты, разработка |
|
|