Имя: Пароль:
1C
1С v8
Зависает база
,
0 Лиза777
 
22.11.12
07:17
1с8.2. Комплексная автоматизация 1.1.25.2. SQL.
При проведении документов зависает на долго. Запускаю тестирование с переиндексацией и проверкой ссылочной целостности. Переиндексацию делает, а на проверке целостности в какой-то момент экран становится белым и зависает всё.
Не знаю что делать, подскажите?
1 Андрюха
 
22.11.12
07:18
Сколько пользователей в базе?
2 marty0701
 
22.11.12
07:23
Белый экран - нормальное поведение системы, винда 7 ка одорила нас белыми экранами, которые так запугивают пользователей. Сотрите процесс, он там шевелится или нет вообще? Если жрет память и проц, может стоит дать шанс завершить проверку?
3 golden-pack
 
22.11.12
07:30
Переиндексацию делает, а на проверке целостности в какой-то момент экран становится белым и зависает всё.  - там задача как бы монопольная. Из чего вывод что именно зависает ?
4 golden-pack
 
22.11.12
07:31
Сколько база весит гигов ?
5 marty0701
 
22.11.12
07:32
(3)Секретничает ТС) Выводы, основаны на опыте видения зависающих программ видимо)
6 Лиза777
 
22.11.12
07:40
(1) 4 пользователя
7 Лиза777
 
22.11.12
07:41
(2) процесс смотрела - признаков жизни не видно
8 Лиза777
 
22.11.12
07:41
(2) за ночь не заканчивается, хотя в другом филиале за полночи делается
9 marty0701
 
22.11.12
07:46
На (4) ответьте.
10 marty0701
 
22.11.12
07:47
И стандартно, выгрузите в ДТ, сделайте то же самое в файловом варианте, получиться, вариант?
11 Лиза777
 
22.11.12
12:53
(4) она у меня в  sql, около 10 гигов
12 ICWiner
 
22.11.12
13:40
Маленькая... Партионка, небось, стоит? Замер производительности вас спасет и покажет тонкие места, если что-то самописное. Если нет - переходите на рауз.
13 Лиза777
 
23.11.12
04:16
выгрузила в файловую, сделала ТИИ - ошибки исправились, загрузила обратно в sql - тестирование опять висит на регистре "списанные товары".
14 Лиза777
 
23.11.12
04:44
(13) висит так как процесс не шевелится как видно в диспетчере задач, да и в строке состояния когда регистры проверяются пишется же процент выполнения, а тут просто написано, что по регистру "списанные товары", а процент выполнения так и не появляется
15 Лиза777
 
23.11.12
04:53
при проведении документов в базе всё висит и не проводится
16 Alex6890
 
23.11.12
05:53
Как вариант перенести SQL базу на отдельный сервер
17 Лиза777
 
23.11.12
08:00
(16) нет такой возможности
18 Лиза777
 
24.11.12
04:54
Интересно, выгрузила в файловую сделала chdbfl - ошибок не обнаружено, но после этого в файловой стали проводиться доки. А вот после её выгрузи в sql всё равно не проводятся :(
19 Лиза777
 
02.12.12
19:28
Люди!! подскажите есть ещё варианты кроме (16)? Все проблемы в этом регистре сведений "списанные товары" и тестирование на нём зависает и в обрабоке проведения зависает на строке ...СписанныеТовары.Выгрузить()...
Какой есть кардинальный метод?
20 zak555
 
02.12.12
19:31
(19) больше кода покажи
21 vde69
 
02.12.12
19:37
(19) скорее всего или отбор не полный или какие-то поля неиндексированы
22 Лиза777
 
02.12.12
19:53
(20) стандартный код в модуле "реализации товаров и услуг":

УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить()); ///!!! Вот здесь всё заканчивается :(

   ДвиженияПоРегистрамРегл(РежимПроведения, СтруктураШапкиДокумента,
   ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоВзаиморасчетам, Отказ, Заголовок);
   
   ДвиженияПоРегистрамУСНРегл(РежимПроведения, СтруктураШапкиДокумента, Отказ, Заголовок);
   
   Если ТаблицаПоКомплектам.Найти(Перечисления.ТипыНоменклатуры.Комплект, "ТипНоменклатуры") <> Неопределено Тогда
       ДополнительныеСвойства.СтруктураТабличныхЧастей.Вставить("ТаблицаПоКомплектам",ТаблицаПоКомплектам);
   КонецЕсли;    
   
КонецПроцедуры // ДвиженияПоРегистрам()
23 Лиза777
 
02.12.12
19:54
Причём я проверяла в таблице значений Движения.СписанныеТовары НОЛЬ строк
24 vde69
 
02.12.12
20:00
(22) сделай переиндексаю регистра средствами скуля и статистику обнови
25 Лиза777
 
02.12.12
20:03
(24) ух ты! я так не умею - надо будет почитать про это.
26 MrStomak
 
02.12.12
20:50
(25) Можно сделать неявно - измени порядок измерений, и сохрани базу данных, будет выполнена переиндексация. Статистика вообще тут не при чем.
27 hhhh
 
02.12.12
20:50
(25) ноль строк и должно быть - это они структуру таблицы передают.
28 vde69
 
02.12.12
23:28
(26) не скажи,скорость после реструктуризации без обновления статистики может быть в десятки раз хуже...
29 Sorm
 
02.12.12
23:51
(24) Смысл после реиндексации обновлять статистику?
(0)На вот тебе процедурину, по рекомендациям майкрософт перестраивает,реорганизует, обновляет индексы:
DECLARE @SQL varchar(256), @DB_ID int;
SET @DB_ID = (SELECT DB_ID());

DECLARE reindex CURSOR GLOBAL FAST_FORWARD READ_ONLY FOR
SELECT    'ALTER INDEX ALL ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REBUILD WITH (SORT_IN_TEMPDB = ON);' AS [Инструкция T-SQL]
FROM    sys.dm_db_index_physical_stats (@DB_ID, NULL, NULL, NULL, 'SAMPLED') AS afp
WHERE    afp.database_id = @DB_ID
AND    afp.index_type_desc IN ('CLUSTERED INDEX')
AND    (afp.avg_fragmentation_in_percent >= 15 OR afp.avg_page_space_used_in_percent <= 60)
AND    afp.page_count > 12
UNION ALL
SELECT    [Инструкция T-SQL] =
   CASE
       WHEN afp.avg_fragmentation_in_percent >= 15
       OR afp.avg_page_space_used_in_percent <= 60
       THEN 'ALTER INDEX [' + i.name + '] ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REBUILD WITH (SORT_IN_TEMPDB = ON);'
       WHEN (afp.avg_fragmentation_in_percent < 15 AND afp.avg_fragmentation_in_percent >= 10)
       OR (afp.avg_page_space_used_in_percent > 60 AND afp.avg_page_space_used_in_percent < 75)
       THEN 'ALTER INDEX [' + i.name + '] ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REORGANIZE;'
   END
FROM    sys.dm_db_index_physical_stats (@DB_ID, NULL, NULL, NULL, 'SAMPLED') AS afp
JOIN    sys.indexes AS i
ON    (afp.OBJECT_ID = i.OBJECT_ID AND afp.index_id = i.index_id)
AND    afp.database_id = @DB_ID
AND    afp.index_type_desc IN ('NONCLUSTERED INDEX')
AND    (
       (afp.avg_fragmentation_in_percent >= 10 AND    afp.avg_fragmentation_in_percent < 15)
   OR    (afp.avg_page_space_used_in_percent > 60 AND afp.avg_page_space_used_in_percent < 75)
   )
AND    afp.page_count > 12
AND    afp.OBJECT_ID NOT IN    (    
                   SELECT    OBJECT_ID
                   FROM    sys.dm_db_index_physical_stats (@DB_ID, NULL, NULL, NULL, 'SAMPLED')
                   WHERE    database_id = @DB_ID
                   AND    index_type_desc IN ('CLUSTERED INDEX')
                   AND    (avg_fragmentation_in_percent >= 15 OR avg_page_space_used_in_percent < 60)
                   AND    page_count > 1
               )
ORDER BY [Инструкция T-SQL]




OPEN GLOBAL reindex
WHILE 1 = 1
BEGIN
   FETCH reindex INTO @SQL
   IF @@fetch_status <> 0 BREAK
   --select @SQL
   EXEC(@SQL)
PRINT @SQL
END
CLOSE GLOBAL reindex
DEALLOCATE reindex
30 Sorm
 
02.12.12
23:55
Что характерно, однажды у нас база 850 ГБ зависла на 1,5 часа при запросе, содержащем джойн двух таблиц - 200 тыс строк и 10(!) строк. ВО второй таблице была не обновлена статистика.
31 Пеппи
 
03.12.12
00:07
(30) 850 Гб ?
32 Sorm
 
03.12.12
00:14
(31) Ну, сейчас она уже за 1.2 Тб. Не 1С.