Как проанализировать захват таблиц в 1С 7.7 SQL? #348072


#0 by PR
Порядка 20 пользователей, конфа на базе типовой бухгалтерии, постоянное ожидание захвата таблиц. Требуется понять, что так мордует базу, то есть что и на сколько времени и какие таблицы захватывает. То есть примерно список записей типа: Таблица такая-то была захвачена с такого-то по такое-то время таким-то объектом с такого-то компьютера.
#1 by vde69
совсем недавно давал крипт именно на эту тему, правда там не конкретно какие таблици а причины длительности блокировок!!! у нас после тестированич админы уменьшели скорость проведения документов почти в 4 раза (правда чего делали - не знаю) вот пользуйся: создаешь ХП в мастес После создания вызываешь EXEC track_waitstats 300, 1 300 - минуты скока мерить CREATE proc get_waitstats AS SET nocount ON DECLARE @now datetime,@totalwait numeric(20,1)   ,@endtime datetime,@begintime datetime   ,@hr int,@min int,@sec int SELECT  @now=max(now),@begintime=min(now),@endtime=max(now) FROM waitstats WHERE [wait type] = 'Total' -- Subtract waitfor, sleep, and resource_queue from total. SELECT @totalwait = sum([wait time]) + 1 FROM waitstats WHERE [wait type] NOT IN ('WAITFOR','SLEEP','RESOURCE_QUEUE', 'Total', DELETE waitstats WHERE [wait type] = '***total***' AND now = @now INSERT INTO waitstats SELECT '***total***',0,@totalwait,@totalwait,@now SELECT [wait type],[wait time],percentage=cast (100*[wait time]/@totalwait FROM waitstats WHERE [wait type] NOT IN ('WAITFOR','SLEEP','RESOURCE_QUEUE','Total') AND now = @now ORDER BY percentage desc GO CREATE proc track_waitstats (@num_samples int=10,@delaynum int=1,@delaytype  nvarchar='minutes') AS SET nocount ON IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'waitstats')   CREATE table waitstats ([wait type] varchar,      [signal wait time] numeric(20,1),      now datetime default getdate) ELSE    truncate table waitstats dbcc sqlperf (waitstats,clear)                            -- Clear out waitstats. DECLARE @i int,@delay varchar,@dt varchar,@now datetime,   @totalwait numeric(20,1),@endtime datetime,@begintime datetime,@hr int,   @min int,@sec int END IF @dt NOT IN ('s','m') BEGIN   PRINT 'please supply delay type e.g. seconds or minutes'   RETURN END IF @dt = 's' IF @hr > 23 or @min > 59 or @sec > 59 BEGIN   SELECT 'hh:mm:ss delay time cannot > 23:59:59'   SELECT 'delay interval and type: ' + convert (varchar,@delaynum) + ',' +   RETURN BEGIN             INSERT INTO waitstats ([wait type], requests, [wait time],[signal wait time]) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
#2 by PR
Спасибо. Несколько вопросов :)) Что есть "причины длительности блокировок"? Пример причины можно? :)) Что есть "ХП", хранимая процедура? Что это такое, просто временный запрос, который я могу выполнить? Что есть "мастес", таблица "Мастер"? Ну, как вызвать "EXEC track_waitstats 300, 1" я думаю сам разберусь :)) И главный вопрос, как результат сохранить в таблицу Excel? :))
#3 by vde69
1. - например - "ожидание клиента для получения данных", то есть SQL все сделал и ждет когда клиент получит данные и закроет транкзацию... пока клиент это не сделает на SQL сервере висят блокировки 3. это системная база SQL - называеться master, хранимку создаешь вызывая текст начиная со строки CREATE proc get_waitstats  и дальше весь текст целиком, выполнить нужно для базы master 4. ... 5. результат скопируешь и вставишь куда хочешь
#4 by Ковычки
я нафик вырубил блокировки и не парюсь уже 3 года, почти стокаже скока адинесю правдо в базе бордак )) но это другая песня, не из-за совместного проведения недостачи )))
#5 by vde69
LOL кроме того интересно как ты это сделал??? неужели сгенерированые хранимки правил? ИХМО - не советую так поступать никому
#6 by Ковычки
да при начале работы системы, но только избранным... ну и ни советуй, а оно работает, если копать глубже, то свои блокировки в проведении накропать и все... (мене этого не надо было, обошелся некоторыми проверками)
#7 by Ю
Объясните поподробней как запустить ХП на выполнение.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С