Имя: Пароль:
1C
Админ
v7: 1С 7.7 SQL база то тормозит, то не тормозит
0 Холст
 
15.09.11
17:11
база по меркам зубров наверное небольшая 5гигов, 20 юзеров по сети к серверу SQL 2005 (т.е. не в терминале), стоит патч Ромикса
чем можно пытаться отловить тормоза ?
а, особенно, как сделать чтобы когда начались тормоза - юзер запустил какой нибудь у себя скрипт и чтобы пособиралась в это время статистика по наиболее вероятным уязвимым местам ?
1 andrewks
 
15.09.11
17:12
почему 27.1 не хочешь попробовать?
2 Mikeware
 
15.09.11
17:12
мониторинг от софтпойнта
3 Холст
 
15.09.11
17:14
(1) видел, но не пробовал... сильно помогает ?
(2) для софтпойнта нет сотен нефти
4 andrewks
 
15.09.11
17:15
(3) 1. да вроде особо не жалуются.
там только есть некоторые проблемы, если прямые запросы используются. а так - всё тихо
5 Холст
 
15.09.11
17:20
(4) начал читать,
благодаря 27.1 можно перейти в режим совместимости с 2005 и должна повыситься скорость ?
стремновато как то
http://infostart.ru/public/82018/ если кто из читающих вдруг не найдет
6 Patrio_
O_Muerte
 
15.09.11
17:21
Поищи в модулях ВыбратьПодчиненныеДокументы(,,) без дат - мне очень сильно жизнь портил в свое время.
7 Холст
 
15.09.11
17:26
(6) спасибо
8 andrewks
 
15.09.11
17:29
а чё не хотите её в терминальник файловой загнать? летать будет
9 Холст
 
15.09.11
17:32
(8) жмут бабло
10 Холст
 
15.09.11
17:34
да и небыстро это переехать на новый сервак
11 Холст
 
21.09.11
11:58
подниму веточку... пока мы на релизе 1С 7.7 27платформа.  может быть можно посмотреть обновление статистики SQL сервера ? как узнать состояние статистики (давно ли обновлялась) ?
12 VladZ
 
21.09.11
11:59
(0) Для начала посмотри загрузку самого сервака: проц/память/диски.
13 VladZ
 
21.09.11
11:59
+12 Потом уже SQL ковыряй.
14 VladZ
 
21.09.11
12:01
Я бы начал с диска.
15 Mikeware
 
21.09.11
12:02
Есть замечательный скрипт анализа от vde69. Лежит на инфостарте.
16 chief accountant
 
21.09.11
12:12
(11) У таблиц в статистике и посмотри
17 vde69
 
21.09.11
12:54
Скрипт выполнить в Мастерс, потом вызвать созданую ХП

расшифровки результатов
http://www.sqldev.net/misc/waittypes.htm
расшифровку результатов на русском и в более полном варианте
http://msdn.microsoft.com/ru-ru/library/ms179984.aspx

сам скрипт

// тестирование SQL сервера
//
// После создания вызываешь EXEC track_waitstats 300, 1
//
// 300 - минуты скока мерить
// 1 - интервал в минутах


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',
 '***total***') AND now = now

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
 AS numeric(20,1))
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(10)='minutes')
AS

SET nocount ON
IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'waitstats')
  CREATE table waitstats ([wait type] varchar(80),
     requests numeric(20,1),
     [wait time] numeric (20,1),
     [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(8),@dt varchar(3),now datetime,
  @totalwait numeric(20,1),@endtime datetime,@begintime datetime,hr int,
  @min int,@sec int
SELECT i = 1
SELECT @dt = case lower(@delaytype)
  WHEN 'minutes' THEN 'm'
  WHEN 'minute' THEN 'm'
  WHEN 'min' THEN 'm'
  WHEN 'mm' THEN 'm'
  WHEN 'mi' THEN 'm'
  WHEN 'm' THEN 'm'
  WHEN 'seconds' THEN 's'
  WHEN 'second' THEN 's'
  WHEN 'sec' THEN 's'
  WHEN 'ss' THEN 's'
  WHEN 's' THEN 's'
  ELSE @delaytype
END
IF @dt NOT IN ('s','m')
BEGIN
  PRINT 'please supply delay type e.g. seconds or minutes'
  RETURN
END
IF @dt = 's'
BEGIN
  SELECT @sec = @delaynum % 60
  SELECT @min = cast((@delaynum / 60) AS int)
  SELECT hr = cast((@min / 60) AS int)
  SELECT @min = @min % 60
END
IF @dt = 'm'
BEGIN
  SELECT @sec = 0
  SELECT @min = @delaynum % 60
  SELECT hr = cast((@delaynum / 60) AS int) END SELECT @delay= right('0'+ convert(varchar(2),hr),2) + ':' +
  + right('0'+convert(varchar(2),@min),2) + ':' +
  + right('0'+convert(varchar(2),@sec),2)
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(10),@delaynum) + ',' +
    @delaytype + ' converts to ' + @delay
  RETURN
END
WHILE (i <= @num_samples)
BEGIN
            INSERT INTO waitstats ([wait type], requests, [wait time],[signal wait time])
  EXEC ('dbcc sqlperf(waitstats)')
  SELECT i = i + 1
  waitfor delay @delay
END
-- Create report.
EXECUTE get_waitstats

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
18 chief accountant
 
21.09.11
12:57
(17) 404 - Page Not Found
19 Кириллка
 
21.09.11
13:28
(0)а версию скуля поточнее?
20 МихаилМ
 
21.09.11
15:45
скорее всего у Вас проблема
"Setting database option RECOVERY to SIMPLE for database"
21 МихаилМ
 
21.09.11
15:47