Имя: Пароль:
1C
 
Растет темп дб
,
0 mishaPH
 
модератор
19.11.18
14:41
База 1с ТИС переделанный на 7.7 , скуль 2005.

неожиданно при работе одного отчета ( универсальный по докам выбирает разные доки по продажам с фильтрами по ка, манагерам, собирает суммы и кг отгрузки. В общем а ля олап) стал расти на скуле темп дб, да так, что при базе 120 гиг становится 140 и более..

от чего место на дисках заканчивается и все нафик валится.

Что с этим можно сделать?
очищать как-то темп дб. или настроить скуль чтобы этого не делал. от чего все это?
1 rs_trade
 
19.11.18
14:44
(0) очевидно исправить отчет
2 palsergeich
 
19.11.18
14:46
(0) Не знаю как в 77, но думаю так же как и в 8:
- Переписать запрос - где то слишком большая выборка во ВТ.
- Запретить запуск отчета без отборов
- Убедится что отборы накладываются туда куда надо
3 palsergeich
 
19.11.18
14:49
(2) Как показала практика пока этого было достаточно при подобной проблеме в 8
4 mishaPH
 
модератор
19.11.18
14:49
(2) ВТ?
- какие обороты в запросе по докам? отчет по полям доков
5 mishaPH
 
модератор
19.11.18
14:50
(1) так он 8 лет работал а счас стал работать непоймикак
6 palsergeich
 
19.11.18
14:50
(4) Я про обороты ничего не говорил.
ВТ - временная таблица.
7 palsergeich
 
19.11.18
14:51
(5) В какой то момент при накоплении данных такие вещи происходят, отчет который работал годами ломается.
Пока помогала только переписка.
Но я не спец по 7.7
8 palsergeich
 
19.11.18
14:53
Боюсь надо лезть в профайлер и смотреть что реально творится в SQL
9 Мандалай
 
19.11.18
14:54
Да здравствует ОЛАП на 77
10 bodri
 
19.11.18
14:58
реиндексация была? Регистры используются или операции? Может выборка с начала времен?
11 ADirks
 
19.11.18
15:00
для начала общую статистику глянуть, когда начинает пухнуть (а лучше в лог писать, каждые n минут)
типа
SELECT
    (SUM(unallocated_extent_page_count)*1.0/128) FreeSpace ,
        
    sum(user_object_reserved_page_count) * 8 / 1024 UserObjects,
    sum(internal_object_reserved_page_count) * 8 / 1024 InternalObjects,
    sum(version_store_reserved_page_count) * 8 / 1024 VersionStore,
    sum(mixed_extent_page_count) * 8 / 1024 MixedExtent
FROM
    tempdb.sys.dm_db_file_space_usage


Если 99% - InternalObjects, то я не знаю что делать :)
Боролись тут не так давно... как появилось, так и пропало, ничо не поняли...
Разве что версию SQL повысить.
12 H A D G E H O G s
 
19.11.18
15:00
lazy table spool приветствует вас, идущие на бой.
13 mishaPH
 
модератор
19.11.18
15:00
гм. тут разбор показал, что один прог в запрос подсчет суммы вставил внешнюю функцию из кода 1с. Из за этого такой финт может быть?
14 mishaPH
 
модератор
19.11.18
15:02
Сумма(ПолучитьСуммуПродаж(СуммаЗаяв,СуммаВклНДС,НДСЗаяв)) Когда (ФлагСписания <> 1)
15 palsergeich
 
19.11.18
15:02
(12) Не исключено.
(13) Попробуйте удалите этот код и проверьте, возможно оно
16 mishaPH
 
модератор
19.11.18
15:09
ну да
17 d4rkmesa
 
19.11.18
15:49
(14) Любопытства ради, можно код функции?
18 rphosts
 
19.11.18
15:56
(4) все временные данные что не поместились в память могут быть сброшены в темпы.
19 rphosts
 
19.11.18
15:58
(12) гы-гы-гы, ага
20 rphosts
 
19.11.18
16:00
(14) жесть жёсткая... скорее всего 1с постоянно дёргает эту функцию... возможно там за кадром просто Содом и Гомора.... с темпами неявными...

может как-то можно выгрузить например в ТЗ а потом всё это обработать кодом?
21 mishaPH
 
модератор
19.11.18
16:17
(20) я не хочу лезть в этот отчем... это франями написанный инструмент для тиса еще 10 лет назад..
22 mishaPH
 
модератор
19.11.18
16:18
(20) она дергает эту функцию на каждой строке документа, которых 3000 в день, за период 2 месяца. при среднем числе строк в доке 30. вот посчитай.
23 mishaPH
 
модератор
19.11.18
16:18
но эту доработку без моего контроля сделал другой прог а я теперь этот караул разгребаю
24 rphosts
 
19.11.18
16:42
Если не дорабатывать... только если темпы на более емкий диск пересилить.
25 dmrjan
 
19.11.18
16:46
Во-первых размер tempdb нужно ограничивать, уменьшить стоимость запроса в mssql. Посмотреть - какой размер tempdb песле перезагрузки сервера. Бывает, что эта проблема появилась после некорректного перезапуска сервера и описание такой проблемы и ее решение есть на официальном сайте Microsoft.
26 dmrjan
 
19.11.18
16:49
27 dmrjan
 
19.11.18
16:50
28 mishaPH
 
модератор
19.11.18
16:55
(25) ограничение темп дб приводит к вылету 1с со скулевой ошибкой
29 rs_trade
 
19.11.18
17:05
(23) кросс-джойн какой-нить наверняка получился
30 rphosts
 
19.11.18
17:25
(29) запросы в клюшках - вещь в себе. Без трассировки ничего определенного сказать нельзя
31 mishaPH
 
модератор
22.11.18
11:16
чудеса продолжаются.
я гоняю этот несчастный отчет с настройками в тестовой базе ( копии основной) и ни вариант старый с функциями в запросе ни новый без них не вызывает рост темп дб.. все работат нормально.

замечено, что темп дб растет только если большая нагрузка на базу.
32 mishaPH
 
модератор
22.11.18
11:16
т.е. когда и сложные отчеты и текущая работа..


как-то модно понять, какие запросы в какое время эту базу разнесли?
33 xXeNoNx
 
22.11.18
11:26
В процессе работы 1С:Предприятия 8 возможно значительное увеличение размера базы данных TEMPDB.
Причина

Причиной увеличения размера базы данных TEMPDB, как правило, является невозможность автоматической очистки журнала транзакций и повторного использования свободного пространства в базе данных TEMPDB из-за наличия активных транзакций, использующих объекты этой базы данных. Основные причины, вызывающие длительную блокировку работы этих механизмов базы данных TEMPDB, заключаются в следующем:

    "Большие" транзакции, использующие TEMPDB, выполнение которых занимает большой промежуток времени.
    Сетевые ошибки, из-за которых Microsoft SQL Server не получает уведомление о потере сетевого подключения. Если клиентская рабочая станция зависает, перезагружается, или будет выключена во время исполнения определяемой пользователем транзакции, то Microsoft SQL Server будет считать, что клиент продолжает работу, и выполняющаяся клиентская транзакция будет по-прежнему активна. Время обнаружения подобной ситуации зависит от настроек параметров сетевого протокола, используемого Windows . Например, при использовании протокола TCP/IP это время составляет 2 часа.

Если для завершения активных транзакций не хватает места в базе данных, Microsoft SQL Server автоматически увеличивает размер TEMPDB на величину, заданную в параметрах этой базы данных (по умолчанию - 10% от текущего размера).

https://its.1c.ru/db/metod8dev#content:2374:hdoc
34 trdm
 
22.11.18
11:56
реконнект нативе?
35 mishaPH
 
модератор
22.11.18
12:25
(33) тут 7.7 (34) ??
36 xXeNoNx
 
22.11.18
12:43
(35) а там что-то про 8.Х?
37 Ник080808
 
22.11.18
13:23
(36) В процессе работы 1С:Предприятия 8 возможно