Имя: Пароль:
1C
1C 7.7
v7: как посмотреть, кто занял ресурс? в 7.7 sql
, ,
0 monsterZE
 
18.04.12
14:53
например блокировка журнала документов
как узнать кто?
1 ДенисЧ
 
18.04.12
14:54
sp_lock
sp_who
2 dk
 
18.04.12
14:57
тупо в ентерпрпайзе - менеджмент - каррент активити
3 dk
 
18.04.12
14:58
тока это будет spid, а его еще надо с юзером связать
либо через hostname там же, либо допиливать конфу чтобы связка spid - юзер 1с делалась на входе в конфу
4 monsterZE
 
18.04.12
15:16
(1) одни идишники тяжело анализировать =)
(2) терминал - хостнейм одинаковый
проще - узнать какой ид надо кильнуть, который держит блокировку?
5 Boroda
 
18.04.12
15:23
Там, в Current Activity, есть колонка LoginTime. Смотрим время когда зашел. Потом в из 1С смотрим наш журнал за этот день и видим пользователя... :)
6 monsterZE
 
18.04.12
15:31
(5) да хер с ним с пользователем - он сам позвонит при ошибке
главное других разблокировать, которые висят с ожиданием блокировки
7 Mikeware
 
18.04.12
16:05
При начале работы системы каждого делаешь
сначала:
Delete from [Users] Where ([Users].[User_1c]=:ВыбПользователь) or ([Users].PID =convert(varchar(10), @@SPID))
после:
insert into [Users] values(convert(varchar(10), @@SPID) , :ВыбПользователь,GetDate() )

Ну а потом, при блокировке, через sp_lock смотришь, кто заблокировал. Ну, и делаешь выводы. Или действия.
8 dk
 
19.04.12
07:50
(5) интересная идея, спасибо )
9 МуМу
 
19.04.12
08:21
http://www.perfexpert.ru/details/  
Есть еще такой продукт, но он платный.
10 trad
 
19.04.12
08:44
я смотрю таким скриптом

use yourDB
select
 rtrim(procs.hostname) as Хост,
 object_name(lock.rsc_objid) Объект,
 db_name(lock.rsc_dbid) БД,
 req_mode Режим,
 count(*) count
from master..syslockinfo lock (nolock)
join master..sysprocesses procs (nolock) on procs.spid = lock.req_spid
where
 lock.req_ownertype=1 and
 lock.rsc_dbid > 2
group by
 procs.hostname,
 lock.rsc_objid,lock.rsc_dbid,
 req_mode
order by Режим desc, Хост, Объект
11 Mikeware
 
19.04.12
09:49
(10) ну и у меня типа того:
   ТекстЗапроса="
   |select
   |  str(spid,4) as [Соединение],
   |  u.user_1c as [Пользователь1С],
   |   left(loginame,20) as [Логин],
   |   left(hostname,25) as [Компьютер],
   |   str(blocked,4) as [Заблокирован],
   |   str(max(waittime),15)  as [Время] ,
   |   str(sum(cpu),15) as [ЦПУ],
   |   str(sum(memusage),15) as [Память],  
   |   str(sum(physical_io),15) as [Диск]  
   |from
   |   master..sysprocesses
   |full join adm..users u
   |  on spid=u.pid
   |where
   |  hostname<>'"+Where+"'
   |group by
   |  str(spid,4),left(loginame,20), left(hostname,25), str(blocked,4), u.user_1c
12 ЧессМастер
 
19.04.12
10:04
(11) это в ЕМ запускать ?
13 ЧессМастер
 
19.04.12
10:04
(+12) вернее в КА
14 Mikeware
 
19.04.12
10:05
(12) Нет, это обработка "контроль блокировок". Собственно, оттуда же можно и "килять неугодных" :-)
15 пипец
 
19.04.12
10:06
DBArtisan 8.6.2
16 monsterZE
 
19.04.12
10:19
(10) а что в данном контексте значит
объект - null
count
режим?

зы. тоже хочу на 1с++ написать, чтобы прямо из базы смотреть.
17 Mikeware
 
19.04.12
10:20
(16) Ну и бери (7) и (11), код скопипащен прям из рабочей конфигурации
18 monsterZE
 
19.04.12
10:22
нашел в бол
19 monsterZE
 
19.04.12
10:24
(17) угу, пасиб =)
20 Mikeware
 
19.04.12
10:27
(19) не забывай только при начале работы проверять наличие, и создавать при необходимости эту табличку....
21 toypaul
 
гуру
19.04.12
10:29
22 trad
 
19.04.12
10:30
(16)
Объект - таблица БД текущего контекста. Если null, то объект из другой БД
Режим - режим блокирования. Значения можно посмотреть в BOL в описании таблицы syslockinfo
count - это мусор, можно убрать
23 monsterZE
 
19.04.12
10:33
(22) Благодарю. =)
Собсно спасибо всем ответившим, за такое количество вариантов.
24 Mikeware
 
19.04.12
10:38
(22) Вопрос - а можно ли собирать тексты запросов, и время их выполнения?
хочу аналог МуМушного профайлера, а денег не дают. Да и задачка по сути разовая (ну или по крайней мере, не долгосрочная).
25 toypaul
 
гуру
19.04.12
10:45
(24) вообще можно. в ToyAdmin нет такого функционала
26 Mikeware
 
19.04.12
10:47
(25) Я ж не прошу готового решения (хотя и не отказывюсь :-D). Ткни носом, где почитать...
27 trad
 
19.04.12
10:50
(24) вопрос не изучал
для разовых исследований хватало штатного профайлера
Обычно запустишь профайлер с фильтром по дюрейшн на день и глазами смотришь жирные запросы
28 toypaul
 
гуру
19.04.12
10:53
(26) почитать по перехват запросов :)
29 toypaul
 
гуру
19.04.12
10:54
а вообще в (27) правильно написано
30 ЧессМастер
 
19.04.12
11:17
(14) а где ее взять ? Яндекс что-то не находит
31 Mikeware
 
19.04.12
11:52
(27) Пытался. жирных запросов не так уж и много, а вот мелких куча, и они нагружают. поэтому хотел собрать статистику во внешней таблице/базе, и потом покрутить.
32 trad
 
19.04.12
13:18
(31) штатную трассировку можно запустить с опцией save to table
33 Mikeware
 
19.04.12
13:31
(32) Спасибо! настрою фильтры, и будет то, что надо!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший