Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 10 17:53
    EvilBeaver commented #3
  • Aug 10 17:34

    EvilBeaver on v2-adaptation

    Проект конвертирован под Core (compare)

  • Aug 10 16:09

    EvilBeaver on master

    Добавлена опция распаковки несж… Merge pull request #14 from osc… bump 1.0.5 and 1 more (compare)

  • Aug 09 12:21
    militarymax commented #3
  • Aug 09 12:19
    EvilBeaver commented #3
  • Aug 09 11:57
    militarymax opened #3
  • Aug 04 10:52
    asosnoviy synchronize #290
  • Jul 20 11:09
    ivankexko closed #52
  • Jul 20 11:09
    ivankexko commented #52
  • Jul 20 02:14
    ivankexko opened #52
  • Jul 11 10:58

    EvilBeaver on master

    Исправил неточности (compare)

  • Jul 11 09:36

    EvilBeaver on master

    Добавлены примеры конфигурирова… (compare)

  • Jul 04 13:49

    nixel2007 on 3.5.2

    (compare)

  • Jul 04 13:49
    nixel2007 closed #295
  • Jul 04 13:49

    nixel2007 on master

    Update packagedef Update build_packagedef Update ПараметрыСистемы.os and 1 more (compare)

  • Jul 04 13:49
    nixel2007 opened #295
  • Jul 04 13:48

    nixel2007 on develop

    Update ПараметрыСистемы.os (compare)

  • Jul 04 13:48

    nixel2007 on develop

    Update build_packagedef (compare)

  • Jul 04 13:48

    nixel2007 on develop

    Update packagedef (compare)

  • Jul 04 12:54

    nixel2007 on 3.5.1

    (compare)

Pavel Khodakov
@Berckk
@Kirill Если еще актуально. Нужен план запроса текстом весь или скрин той части где "cost" наибольшая. Предполагаю, что не обновлена статистика . Выполни последовательно DBCC UPDATEUSAGE (БазаБухгалтерии) WITH NO_INFOMSGS; use БазаБухгалтерии exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'
Kirill Krasnov
@Kirill
@Berckk еще как актуально... Уже две недели бьюсь с этим. Статистику обновлял дважды вот этим скриптом https://infostart.ru/public/61071/
image.png
Вот это DBCC UPDATEUSAGE ([exp-test-3]) WITH NO_INFOMSGS; еще не пробовал.
Kirill Krasnov
@Kirill
UPDATEUSAGE выполнилось, но скорость формирования отчета не изменилась. Пытался сравнить планы запроса и сам запрос сравнить в другой копии, но он формируется за 1 секунду, что даже не появляется в Active Monitor. Только если профайлером его ловить
Kirill Krasnov
@Kirill
Профайлером отловил нормальный запрос
SELECT
T1.AccountRRef,
T1.Fld489RRef,
T1.Fld492InitialBalanceDt_,
T1.Fld492InitialBalanceCt_,
T1.Fld492TurnoverDt_,
T1.Fld492TurnoverCt_,
T1.Fld492FinalBalanceDt_,
T1.Fld492FinalBalanceCt_,
T1.AccountRRef,
T4._Code,
T4._Kind,
T4._Fld480,
T4._OrderField
FROM (SELECT
T2._AccountRRef AS AccountRRef,
T2._Fld489RRef AS Fld489RRef,
CASE WHEN CAST(SUM(T2._TurnoverDt502) AS NUMERIC(27, 2)) IS NULL THEN 0.0 ELSE CAST(SUM(T2._TurnoverDt502) AS NUMERIC(27, 2)) END AS Fld492TurnoverDt_,
CASE WHEN CAST(SUM(T2._TurnoverCt503) AS NUMERIC(27, 2)) IS NULL THEN 0.0 ELSE CAST(SUM(T2._TurnoverCt503) AS NUMERIC(27, 2)) END AS Fld492TurnoverCt_,
CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 0.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) > 0.0 THEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) ELSE 0.0 END AS Fld492InitialBalanceDt_,
CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 1.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) < 0.0 THEN -(CAST(SUM(T2._Fld492) AS NUMERIC(27, 2))) ELSE 0.0 END AS Fld492InitialBalanceCt_,
CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 0.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2)) > 0.0 THEN CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2)) ELSE 0.0 END AS Fld492FinalBalanceDt_,
CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 1.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2)) < 0.0 THEN -(CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2))) ELSE 0.0 END AS Fld492FinalBalanceCt_,
MAX(T3._Kind) AS AccKind_
FROM dbo._AccRgAT0501 T2 WITH(NOLOCK)
INNER JOIN dbo._Acc19 T3 WITH(NOLOCK)
ON T3._IDRRef = T2._AccountRRef
WHERE T2._Period = @P1 AND (((T2._AccountRRef IN (@P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10)))) AND ((T2._Fld489RRef = @P11)) AND (T2._Fld492 <> @P12 OR T2._TurnoverDt502 <> @P13 OR T2._TurnoverCt503 <> @P14 OR T2._Turnover504 <> @P15)
GROUP BY T2._AccountRRef,
T2._Fld489RRef
HAVING (CASE WHEN CAST(SUM(T2._TurnoverDt502) AS NUMERIC(27, 2)) IS NULL THEN 0.0 ELSE CAST(SUM(T2._TurnoverDt502) AS NUMERIC(27, 2)) END) <> 0.0 OR (CASE WHEN CAST(SUM(T2._TurnoverCt503) AS NUMERIC(27, 2)) IS NULL THEN 0.0 ELSE CAST(SUM(T2._TurnoverCt503) AS NUMERIC(27, 2)) END) <> 0.0 OR (CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 0.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) > 0.0 THEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) ELSE 0.0 END) <> 0.0 OR (CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 1.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) < 0.0 THEN -(CAST(SUM(T2._Fld492) AS NUMERIC(27, 2))) ELSE 0.0 END) <> 0.0 OR (CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 0.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2)) > 0.0 THEN CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2)) ELSE 0.0 END) <> 0.0 OR (CASE WHEN CAST(SUM(T2._Fld492) AS NUMERIC(27, 2)) IS NULL THEN 0.0 WHEN MAX(T3._Kind) = 1.0 OR MAX(T3._Kind) = 2.0 AND CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2)) < 0.0 THEN -(CAST(SUM(T2._Fld492 + T2._Turnover504) AS NUMERIC(28, 2))) ELSE 0.0 END) <> 0.0) T1
LEFT OUTER JOIN dbo._Acc19 T4 WITH(NOLOCK)
ON T1.AccountRRef = T4._IDRRef
WHERE (T1.Fld489RRef = @P16)',N'@P1 datetime2(3),@P2 varbinary(16),@P3 varbinary(16),@P4 varbinary(16),@P5 varbinary(16),@P6 varbinary(16),@P7 varbinary(16),@P8 varbinary(16),@P9 varbinary(16),@P10 varbinary(16),@P11 varbinary(16),@P12 numeric(10),@P13 numeric(10),@P14 numeric(10),@P15 numeric(10),@P16 varbinary(16)','4011-04-01 00:00:00
гораздо компактнее и понятнее, не то, что в "кривой" копии
Andrei Ovsiankin
@EvilBeaver
Clustered Index Seek со стоимостью 48%
На инфостарте новая разработка по анализу плана запросов. Сам не пользовался, но консультировал автора
Советую взглянуть
Clustered Index Seek со стоимостью 48% - это скорее все большая выборка с отбором по дате в регистре AccRg488. По сути, это Table Scan с выбором дофига записей. Пересчет статистики не поможет
Kirill Krasnov
@Kirill
Там для УФ. А у меня БП2.0
Andrei Ovsiankin
@EvilBeaver
Ну а кто мешает запустить БП 2 в режиме УФ на короткое время?
Kirill Krasnov
@Kirill
Это могу... Понял.. Надо пробовать.
Andrei Ovsiankin
@EvilBeaver
Попробуйте и пришлите, пожалуйста отзывы или скриншоты от этого инструмента. Я держу связь с автором
А итоги точно пересчитаны?

на другой копии и рабочей базе этот же отчет за любой период формируется быстро.

Что-то мне кажется, что беда именно в этом. Копии - это точно копии? Кажется, что они разные

По окружению исполнения
Может вам базу вынесли на мега тормозной диск?
Kirill Krasnov
@Kirill
Не.. Диск быстрый и для чистоты эксперимента перенесли базу (вернее транзакционный лог) на тот же диск что и все остальные файлы.
Одна копия без свертки остатков, вторая со сверткой
Что-то мне кажется сбились какие-то данные, из-за которых теперь 1С некорректно строит SQL запрос
Pavel Khodakov
@Berckk
Я тоже так думаю. В компановщике запросы одинаковые, а в sql уже разные.
Стоит посмотреть что за таблица AccRg488
Kirill Krasnov
@Kirill
РБ. Хозрасчетный
Pavel Khodakov
@Berckk
А в _AccRgAT0501 данные за 2011 есть?
Kirill Krasnov
@Kirill
Хм... судя запросу
SELECT count(*) FROM [exp-test-3].[dbo].[_AccRgAT0501] where _Period < 5999-11-01
нет.
Pavel Khodakov
@Berckk
https://infostart.ru/public/197658/ тут про таблицы итогов, стоит все проверить
Kirill Krasnov
@Kirill
Спасибо за ссылку.. Сейчас проверю с консолью от Андрея, потом попробую сделать как в этой ссылке.. Как минимум вижу, что я не все таблицы очищал - только остатки.
Kirill Krasnov
@Kirill
С помощью консоли отчетов получил сам запрос и параметры запроса, но как мне кажется запрос в SQL явно избыточен
Pavel Khodakov
@Berckk
Так и есть.
Т.к. в таблице _AccRgAT0501 нет данных за 2011-2015 годы то 1С берет эти данные из AccRg488
Kirill Krasnov
@Kirill
Ок.. Тогда очищаю виртуальные таблицы РБ.Хозрасчетный и запускаю расчет итогов
Pavel Khodakov
@Berckk
т.е. надо заполнить данные в этой таблице на дату свертки
а потом итоги пересчитать
Kirill Krasnov
@Kirill
Большое всем спасибо. Павел, огромное спасибо за ссылку. Процесс расчета итогов еще не завершен, но уже пересчитаны итоги за проверяемый период - скорость формирования отчета - доли секунд. Если кому интересно - вот обработка - генерирует SQL скрипт для очистки таблиц. отдельно комментарием пишет таблицу хранения настроек итогов, в которой необходимо включить использование итогов. Теоретически можно написать команду обновления строки, но надо проверить на других базах поля и значения. А также рассчитывает поквартально итоги с 01.01.2010... Думаю можно это вынести в параметр.
ret-Phoenix
@ret-Phoenix
sample_winext_ordinary_forms.gif
Denis Kharchenko
@best-tech
Что это за магия? Через виртуальный X11 заработает?
ret-Phoenix
@ret-Phoenix
это Windows. Работа с экраном, мышкой и клавиатурой
На работе задача автоматизировать приемочное тестирование конфигурации на обычных формах
SikuliX, Selenium использовать не хочется. Слишком громоздко и нужно переучиваться для автоматизации сценариев
Сейчас накидываю материал на ИС. Сегодня/завтра будет
Антон Степанов
@Stepa86
Норм тема, не захотел использовать что-то - написал свое
ret-Phoenix
@ret-Phoenix
+ ты забыл правила на моей работе - если что-то нужно - пиши сам, скачивать левое НЕЛЬЗЯ.
Антон Степанов
@Stepa86
походу скоро будет много нового инструментария на оскрипте... А ты его на работу как пронес, кстати? Или по памяти написал с нуля?
ret-Phoenix
@ret-Phoenix
github и личный профиль спасли, это можно.
а так да, изначально по памяти и перепечаткой с телефона
Антон Степанов
@Stepa86
Там народ интересуется, чего тебя нет в телеге... А ты ее видимо еще не написал, просто
ret-Phoenix
@ret-Phoenix
а есть чат в телеге?