Имя: Пароль:
1C
1С v8
Старая КА 1.0 начала зависать при запросе к регистру ценАТТ.
,
0 citrus
 
17.04.24
22:10
Всем доброй ночи.
База 800 гб КА 1.0 релиз от 2010 года. Пиленая.
Проблема при массовой проведении ООрП начала зависать на простом запросе к регистру цен АТТ, это один из запросов в модуле проведения документа. Модуль типовой.
Причем виснет не стабильно, то нормально запрос проходит то зависает.
В SQL  нашел отчетом "Самые продолжительные транзакции" вот такой запрос https://disk.yandex.ru/d/ZuuajG4eW-p4nw
Вижу что таблица InfoRg19056 как Р/С Цены АТТ.
В чем может быть дело как продиагностировать проблему?
1 breezee
 
18.04.24
04:27
(0) Попробуйте трассировку. Возможно надо кэш запросов почистить. Попробуйте удалить позиции которые не нужные уже и цены по ним
2 rphosts
 
18.04.24
06:01
>от 2010 года. Пиленая.... Проблема при массовой проведении

СУБД предлагается угадать? База обслуживается?
Чарли, что с блокировками, что с длительными запросами согласно ТЖ?
3 StarPer
 
18.04.24
06:03
(0) Размер таблицы регистра и его фрагментация?
4 rphosts
 
18.04.24
07:01
(3) фрагментация индексов ничем не лучше... и это всё про обслуживание
5 citrus
 
18.04.24
10:59
(1) как почистить КЭШ запросов? это же не пользовательский и не серверный кэш?
6 citrus
 
18.04.24
11:03
(2) СУБД MS SQL 2012  https://disk.yandex.ru/d/ieG5oQJRyQ3mbQ

"База обслуживается?" - да, админ делает планы по обновлению статистики, дефрагментации (вроде ) и т.д.
база без свертки работает с 2019 года. и проблемы начались года 2 назад и шли по нарастающей. сейчас сильно начали проявляться.
ТЖ еще не настроил.
Но блокировки идут по регистру Цены АТТ скрин с отчетом из СУБД в первом скрине.
7 citrus
 
18.04.24
11:04
(3)  размер: строк  16 364 961
размер 4,9 гб  данные 1,6 гб индексы 3.2 гб
8 Altone
 
18.04.24
12:51
база растёт, тормоза будут накапливаться, сейчас 800GБ , скоро станет пара терабайт, всё встанет колом. а какой выход?

свёртка базы и переход на КА2 , либо пустую КА1.
не может база расти бесконечно, и при этом летать. особенно это касается старой платформы, либо новой с установленной совместимостью со старой версией.
9 StarPer
 
18.04.24
13:13
(7) 16 млн строк многовато. Обрезать регистр надо, ИМХО.
10 citrus
 
18.04.24
13:19
(9) это не самый большой регистр
Например
РегистрНакопления.ТоварыВРознице    AccumRg20853    
строк 131 007 957    
объем 31 916 мб

РегистрНакопления.Продажи    AccumRgTn20583    
строк 115 264 130    
объем 196 505 мб

надо сворачивать
11 StarPer
 
18.04.24
13:22
(10) Как посмотреть. В (7) Гб, а в (10) Мб.
Вот может это для Вас: https://infostart.ru/marketplace/292573/
12 StarPer
 
18.04.24
13:23
(10) Ну и степень фрагментации таблицы не озвучена.
13 citrus
 
18.04.24
13:47
(12) новая вводная . Админ сказал что дефрагментация не делается и реиндексация тоже, только обновление статистики. И я понял это уже давно так.
А не делается потому что это занимает несколько часов, а техокна такого нет.
На сколько это может влиять на мою проблему?
14 citrus
 
18.04.24
13:50
(11) это давно решено. У нас в ПТиУ есть механизм авторасчета наценок для всех форматов магазинов+ автоматическое формирование Установки цен и переоценок по всем магазинам и складам.
Отчасти этот механизм добавил объема в этот регистр.
15 arsik
 
гуру
18.04.24
13:56
Ой, нахрена вам цены с 10 года. Сделайте срез на начало года. Внесите в регистр, а все остальное отдайте сирым и убогим.
(12) и для каких целей техноокно нужно. Ну будет у вас пару раз в месяц ночью чуть медленнее работать 1с.
Ну и для ускорения можно же только эту таблицу обработать, а не всю базу
16 citrus
 
18.04.24
14:04
(15)я выше написал что "база без свертки работает с 2019 года"
мы ее резали 2 раза уже в 2014 и в 2019
сейчас уже 5.5 лет без свертки летим.
17 StarPer
 
18.04.24
14:07
(13) Попросите сисадмина выполнить запрос на сервере:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// запрос для определения степени фрагментации индексов текущей базы (быстрый), первые 100 по степени фрагментации (убывание)

USE NAME_DB
GO
SELECT TOP 100
       DatbaseName = DB_NAME(),
       TableName = OBJECT_NAME(s.[object_id]),
       IndexName = i.name,
       i.type_desc,
       [Fragmentation %] = ROUND(avg_fragmentation_in_percent,2),
       page_count,
       partition_number,
       'alter index [' + i.name + '] on [' + sh.name + '].['+ OBJECT_NAME(s.[object_id]) + '] REBUILD' + case
                                                                                                           when p.data_space_id is not null then ' PARTITION = '+convert(varchar(100),partition_number)
                                                                                                           else ''
                                                                                                         end + ' with(maxdop = 4,  SORT_IN_TEMPDB = on)' [sql]
  FROM sys.dm_db_index_physical_stats(db_id(),null, null, null, null) s
  INNER JOIN sys.indexes as i ON s.[object_id] = i.[object_id] AND
                                 s.index_id = i.index_id
  left join sys.partition_schemes as p on i.data_space_id = p.data_space_id
  left join sys.objects o on  s.[object_id] = o.[object_id]
  left join sys.schemas as sh on sh.[schema_id] = o.[schema_id]
  WHERE s.database_id = DB_ID() AND
        i.name IS NOT NULL AND
        OBJECTPROPERTY(s.[object_id], 'IsMsShipped') = 0 and
        page_count > 100 and
        avg_fragmentation_in_percent > 10
  ORDER BY avg_fragmentation_in_percent desc
18 arsik
 
гуру
18.04.24
14:25
(16) Так не обязательно всю базу сворачивать. Можно только регистр цены резануть.
19 citrus
 
18.04.24
14:41
(18) согласен, но у нас и партии уже моросят и Р/С списанные товары.
20 citrus
 
18.04.24
14:41
так же отключил версионирование, чтобы поднять скорость.
просится общая свертка
21 citrus
 
18.04.24
14:43
(17) запустил. SQL задумался. сколько может висеть?
22 citrus
 
18.04.24
14:53
(17) Спасибо. запрос показал большое количество дефрагментированных таблиц.
https://disk.yandex.ru/d/iZI-4Sv6cciH7A
23 StarPer
 
18.04.24
14:53
(21) можно
SELECT TOP 50
или
SELECT TOP 20
попробовать, если быстро хочется.
24 citrus
 
18.04.24
14:58
спасибо всем.
будем делать свертку. и админу тоже на подумать почву дали.
25 StarPer
 
18.04.24
14:59
Среди "лидеров" по фрагментации Вашей таблицы не вижу.
Скорее всего в данном случае размер имеет значение.
Обрезание, однозначно.
Но дефрагментацию и реорганизацию надо однозначно настраивать. База-то не маленькая, обслуживание для нее жизненно необходимо.
26 MaximSh
 
18.04.24
15:00
(22) это ерунда, таблицы маленькие и индексы маленькие. Количество страниц page_count мало, 1 страница 8 Kb. Поставь  page_count > 10000
27 MaximSh
 
18.04.24
15:01
(0) покажи этот "простой запрос" в виде запроса 1С
28 citrus
 
18.04.24
15:46
(27)

Функция СформироватьЗапросПоПродажнымЦенам(ДатаЦен, СписокСкладов, СписокНоменклатуры) Экспорт

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Дата", ДатаЦен);
    Запрос.УстановитьПараметр("СписокСкладов", СписокСкладов);
    Запрос.УстановитьПараметр("СписокНоменклатуры", СписокНоменклатуры);

    ТекстЗапроса = "
    |ВЫБРАТЬ
    |    ЦеныПродажные.Склад КАК Склад,
    |    ЦеныПродажные.Номенклатура КАК Номенклатура,
    |    ЦеныПродажные.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    ЦеныПродажные.Цена КАК Цена
    |ИЗ
    |    РегистрСведений.ЦеныАТТ.СрезПоследних(&Дата, Склад В (&СписокСкладов)
    |       И Номенклатура В (&СписокНоменклатуры)) КАК ЦеныПродажные
    |";

    Запрос.Текст = ТекстЗапроса;

    Возврат Запрос.Выполнить();

КонецФункции // СформироватьЗапросПоПродажнымЦенам()
29 citrus
 
18.04.24
15:47
(25) согласен. спасибо, коллеги!
30 Maestro2020
 
18.04.24
15:55
Сталкивался на практике -база примерно терабайт. MS SQL стал "резко" тормозить запросах к регистрам, где был составной тип данных.
31 rphosts
 
19.04.24
07:19
(6) вроде... хочешь что-то сделать хорошо - сделай сам! сделай для начала принудительную реиндексацию всей базы + собери полностью статистику (по 100% данных), сбрось процедурный кэш (первые полчаса будет слегка притормаживать но потом стабилизируется).
32 rphosts
 
19.04.24
07:21
(30) зависит о того сколько типов в составе... ну и да, от запроса зависит
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан