Выполняю запрос такого типа
ВЫБРАТЬ
ДислокацияСрезПоследних.Вагон,
ДислокацияСрезПоследних.НомерДокумента,
ДислокацияСрезПоследних.ПоследняяСтанция,
ДислокацияСрезПоследних.ДатаОперации
ИЗ
РегистрСведений.Дислокация.СрезПоследних(
,
Вагон В (&Вагон)
И НомерДокумента В (&НомерДокумента)
И ПоследняяСтанция В (&Станция)) КАК ДислокацияСрезПоследних
ПоказатьНе выполняется. Весит 40 Минут дальше не ждал.
Выполняю такой запрос.
ВЫБРАТЬ
ДислокацияСрезПоследних.Вагон,
//ДислокацияСрезПоследних.НомерДокумента,
//ДислокацияСрезПоследних.ПоследняяСтанция,
//ДислокацияСрезПоследних.ДатаОперации
ИЗ
РегистрСведений.Дислокация.СрезПоследних(
,
) КАК ДислокацияСрезПоследних
ПоказатьВыполняется минут 10 но выполнился. В чем может быть причина такого поведения?
По теме из базы знаний
- Веб-сервер многопоточный с обработкой запросов в коде 1С (1C.Net:Предприятие)
- Консоль запросов (управляемые формы) + возможность работы в толстом клиенте
- Консоль и функция рекурсивного запроса
- Настройка PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012, объём БД более 200 Гб
- Что делает "В ИЕРАРХИИ" в запросе?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Видимо очень большой регистр. Необходимо смотреть план запроса и заниматься оптимизацией, вполне возможно что сканиурется вся таблица регистра, поэтому и долго.
Посмотрите по измерениям, стоит ли индексирование.
Посмотрите порядок измерений, в таком же порядке делаете запрос.
Посмотрите по измерениям, стоит ли индексирование.
Посмотрите порядок измерений, в таком же порядке делаете запрос.
ВЫБРАТЬ
Дислокация.Вагон КАК Вагон,
Дислокация.ДатаОперации КАК ДатаОперации,
МАКСИМУМ(Дислокация.Период) КАК Период
ПОМЕСТИТЬ ВТМаксДаты
ИЗ
РегистрСведений.Дислокация КАК Дислокация
ГДЕ
Дислокация.Вагон В(&Вагон)
СГРУППИРОВАТЬ ПО
Дислокация.Вагон,
Дислокация.ДатаОперации
ИНДЕКСИРОВАТЬ ПО
Вагон,
ДатаОперации
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТМаксДаты.Вагон,
ВТМаксДаты.ДатаОперации,
Дислокация.НомерДокумента КАК НомерДокумента1,
Дислокация.ПоследняяСтанция КАК ПоследняяСтанция1,
ВТМаксДаты.Период
ИЗ
ВТМаксДаты КАК ВТМаксДаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Дислокация КАК Дислокация
ПО ВТМаксДаты.Вагон = Дислокация.Вагон
И ВТМаксДаты.Период = Дислокация.Период
ГДЕ
Дислокация.НомерДокумента В(&НомерДокумента)
И Дислокация.ПоследняяСтанция В(&ПоследняяСтанция)
ПоказатьЗапрос вида.
Параметры получаю так
Дислокация = Документы.Дислокация.НайтиПоНомеру("30297");
ВагМС = Дислокация.Вагоны.ВыгрузитьКолонку("Вагон");
НомерДокументаМассив = Дислокация.Вагоны.ВыгрузитьКолонку("НомерДокумента");
СтанцияМассив = Дислокация.Вагоны.ВыгрузитьКолонку("ПоследняяСтанция");
Количество элементов в запросе 28 942. Количество в массивах параметро 2220
(37) В архитектуре регистра, он слишком громозкий и в него засунули все что только можно, даже не сгруппировав.
Есть несколько вариантов, в зависимости от требований.
1) Самый простой, сделать справочник, в который перенести часть ресурсов. Получится что то вроде "КлючАналитики". ТАким образом можно сгруппировав различные ресурсы и уменьшить значительно виртуальную таблицу.
2) Переосмыслить регистр, возможно сделать не регистр сведений, а регистр накоплений остатки. По максимум вытащить все данные в документ, а только самую важную в регистр накопления.
Если надо будет смотреть движение вагона, то это будут обороты.
Если надо посмотреть текущее состояние, то это будет остатки.
Есть несколько вариантов, в зависимости от требований.
1) Самый простой, сделать справочник, в который перенести часть ресурсов. Получится что то вроде "КлючАналитики". ТАким образом можно сгруппировав различные ресурсы и уменьшить значительно виртуальную таблицу.
2) Переосмыслить регистр, возможно сделать не регистр сведений, а регистр накоплений остатки. По максимум вытащить все данные в документ, а только самую важную в регистр накопления.
Если надо будет смотреть движение вагона, то это будут обороты.
Если надо посмотреть текущее состояние, то это будет остатки.
(38)
Регистр еще делался до Меня, но тогда встают сразу пару вопросов.
1) Разве регистр не нужен чтобы засунуть туда все? Это нужная информация. Поля регистра используются но не все. Они тут с расчетом а вдруг пригодятся когда нибудь. Ну и так же по ним идет анализ
2) Что если взять регистр проанализировать поля которые используются сейчас и оставить их. Ну а как быть если вдруг потребуется отчет в котором нужно будет использовать недостаюзие поля?
Регистр еще делался до Меня, но тогда встают сразу пару вопросов.
1) Разве регистр не нужен чтобы засунуть туда все? Это нужная информация. Поля регистра используются но не все. Они тут с расчетом а вдруг пригодятся когда нибудь. Ну и так же по ним идет анализ
2) Что если взять регистр проанализировать поля которые используются сейчас и оставить их. Ну а как быть если вдруг потребуется отчет в котором нужно будет использовать недостаюзие поля?
(42) Это всегда боль, кто то до Вас сделал и не задумывался о будущем, видимо работало, пока объем данных не возрос.
Не грузить все поля не поможет, срез по ним все равно строится будет. Я бы переделал полностью этот регистр.
Ну еще можно очистить устаревшие данные, я полагаю все они не нужны. Если для истории, то сделал бы какой нить дублирующий регистр или вообще в другой базе.
Не грузить все поля не поможет, срез по ним все равно строится будет. Я бы переделал полностью этот регистр.
Ну еще можно очистить устаревшие данные, я полагаю все они не нужны. Если для истории, то сделал бы какой нить дублирующий регистр или вообще в другой базе.
(42)Вы сначала разберитесь из-за чего запрос к регистру работает медленно, потом уже видно будет: стОит ли что-то вообще делать с его структурой или нет.
Обслуживание базы средствами СУБД выполняется или нет?
Какие типы значений у измерений регистра?
Как выглядит план запроса к регистру?
Обслуживание базы средствами СУБД выполняется или нет?
Какие типы значений у измерений регистра?
Как выглядит план запроса к регистру?
(47)1. С какой периодичностью?
2. У каких именно измерений строковый тип?
3. В СУБД есть так называемый профайлер(Profiler). С помощью него можно увидеть запрос в терминах СУБД. Этот запрос можно взять и выполнить вручную, в MSSMS. При выполнении вручную, можно посмотреть действующий план запроса - то, какие действия с таблицами производит СУБД для формирования результата запроса. Исходя из этого плана запроса уже можно делать определенные выводы.
2. У каких именно измерений строковый тип?
3. В СУБД есть так называемый профайлер(Profiler). С помощью него можно увидеть запрос в терминах СУБД. Этот запрос можно взять и выполнить вручную, в MSSMS. При выполнении вручную, можно посмотреть действующий план запроса - то, какие действия с таблицами производит СУБД для формирования результата запроса. Исходя из этого плана запроса уже можно делать определенные выводы.
(52)
Одно без другова может обойтись спокойно. Потому что операция Может быть погрузка разгрузка да и еще куча всяких, А номер документа это накладная с которой вагон идет до пункта назначения. Операция у НомераДокумента может сменится раза 4 а номер быть прежним
Одно без другова может обойтись спокойно. Потому что операция Может быть погрузка разгрузка да и еще куча всяких, А номер документа это накладная с которой вагон идет до пункта назначения. Операция у НомераДокумента может сменится раза 4 а номер быть прежним
(57)Да. Если значений фиксированное количество, то лучше делать перечисление.
Установить в новое измерение элементы справочника/перечисления, в соответствии текущего строкового значения. После установки значений ссылочного типа измерение строкового типа удалить совсем.
Во всех местах, где происходит изменение регистра учесть, что теперь значение ссылочного типа.
По аналогии поступить с НомерДокумента, если делать его ссылочным типом.
В случае фиксированной длины, такие манипуляции не нужны.
Установить в новое измерение элементы справочника/перечисления, в соответствии текущего строкового значения. После установки значений ссылочного типа измерение строкового типа удалить совсем.
Во всех местах, где происходит изменение регистра учесть, что теперь значение ссылочного типа.
По аналогии поступить с НомерДокумента, если делать его ссылочным типом.
В случае фиксированной длины, такие манипуляции не нужны.
Проблема такая, каждые пол часа загружается 2200 -2500 записей и все они проводится. Полей там куча 20+.
Как правильно решить данную задачу.
Не грузить все оставить нужные поля?
тогда появляются еще вопросы.
ПОдскажите кто как справлялся с такой ситуацией?
Как правильно решить данную задачу.
Не грузить все оставить нужные поля?
тогда появляются еще вопросы.
ПОдскажите кто как справлялся с такой ситуацией?
Ребята ничего не получилось то чего бы Я хотел.
Решил создать новый регистр сведений для хранения данных.
Но Я не понимаю некоторых моментов.
1) если не добавлять все поля на только самые нужные что делать если потребуются другие?
2)Как правильно выбрать ресурсы и измерения?
Решил создать новый регистр сведений для хранения данных.
Но Я не понимаю некоторых моментов.
1) если не добавлять все поля на только самые нужные что делать если потребуются другие?
2)Как правильно выбрать ресурсы и измерения?
На данный момент пришел к выводу. Что вот сейчас для решения этой задачи МНе требуется.
Вагон,
ПоследняяСтанция,
НомерДокумента,
Операция,
ДатаОперации,
ВремяНахождения,
ВремяНахожденияНаПоследнейСтанции,
Ссылка.Дата
Могу ли Я Сделать вагон измерением а все остальное ресурсом? Будет ли это правильно?
И как быть собственно к 1) вопросу пришли. Если вдруг нужна будет аналитика по данным которые Я не писал в регистр?
Вагон,
ПоследняяСтанция,
НомерДокумента,
Операция,
ДатаОперации,
ВремяНахождения,
ВремяНахожденияНаПоследнейСтанции,
Ссылка.Дата
Могу ли Я Сделать вагон измерением а все остальное ресурсом? Будет ли это правильно?
И как быть собственно к 1) вопросу пришли. Если вдруг нужна будет аналитика по данным которые Я не писал в регистр?
(63)
Уникальные данные только вагон, и собственник вагона. Все остальные данные изменяются.
Возможно по этим данным когда нибудь понадобиться аналитика по собраным скажем за год а возвожно и нет к чему Я больше всего склоняюсь. Для чего было делать такой огромный регистр Я не понимаю пока сам.
Сейчас Я пришел к выводу что:
МНе нужны только эти поля
Измерение сделал Вагон - число
Ресурсы
ПоследняяСтанция-Строка,
НомерДокумента-строка,
Операция-Строка,
ДатаОперации-Дата,
ВремяНахождения - Число,
ВремяНахожденияНаПоследнейСтанции Число,
Ссылка.Дата
Задача такая: Мне надо посчитать время нахождения на последней станции. То есть если станция не меняется то Я просто складываю даты загрузки эти документов если нет то расчитываю новую от разницы итих загрузок
Уникальные данные только вагон, и собственник вагона. Все остальные данные изменяются.
Возможно по этим данным когда нибудь понадобиться аналитика по собраным скажем за год а возвожно и нет к чему Я больше всего склоняюсь. Для чего было делать такой огромный регистр Я не понимаю пока сам.
Сейчас Я пришел к выводу что:
МНе нужны только эти поля
Измерение сделал Вагон - число
Ресурсы
ПоследняяСтанция-Строка,
НомерДокумента-строка,
Операция-Строка,
ДатаОперации-Дата,
ВремяНахождения - Число,
ВремяНахожденияНаПоследнейСтанции Число,
Ссылка.Дата
Задача такая: Мне надо посчитать время нахождения на последней станции. То есть если станция не меняется то Я просто складываю даты загрузки эти документов если нет то расчитываю новую от разницы итих загрузок
(67)
По операциям создал справочник.
Я правильно думаю поправте пожалуйста если нет.
Сделал справочник с операцимми а в документы это строка. Мне при проведении в регистр из документа по наименованию искать операцию в справочники и писать ссылку?
Или в документе сделать реквезит ссылку? Сейчас там строка в регистр пишет то что в строке.
По операциям создал справочник.
Я правильно думаю поправте пожалуйста если нет.
Сделал справочник с операцимми а в документы это строка. Мне при проведении в регистр из документа по наименованию искать операцию в справочники и писать ссылку?
Или в документе сделать реквезит ссылку? Сейчас там строка в регистр пишет то что в строке.
Прикрепленные файлы:
Измерение сделал Вагон - число
Ресурсы
ПоследняяСтанция-Строка,
НомерДокумента-строка,
Операция-Ссылка на справочник,
ДатаОперации-Дата,
ВремяНахождения - Число,
ВремяНахожденияНаПоследнейСтанции Число
Правильно будет если организую так регистр?
Ресурсы
ПоследняяСтанция-Строка,
НомерДокумента-строка,
Операция-Ссылка на справочник,
ДатаОперации-Дата,
ВремяНахождения - Число,
ВремяНахожденияНаПоследнейСтанции Число
Правильно будет если организую так регистр?
(73)
1) Справочник создал.
2)Операцию и вагон сделал измерением и Дату операции тоже измерением сделал.
3)Ссылка.Дата это Моя ошибка
Правильнее как теперь будет. Писать ссылку в документ уже то есть в документе поменять тип рекзвизита или при записи в регистр искать ссылку?
1) Справочник создал.
2)Операцию и вагон сделал измерением и Дату операции тоже измерением сделал.
3)Ссылка.Дата это Моя ошибка
Правильнее как теперь будет. Писать ссылку в документ уже то есть в документе поменять тип рекзвизита или при записи в регистр искать ссылку?
ТС, бросайте эти попытки кроить архитектуру по подсказкам на форумах. Есть квалификация для таких работ - решайте вопрос. Нет ее - пригласите специалиста. А то Вам народ, не понимая до конца реалий учета, такого понасоветует - потом гораздо сложнее/дороже встанет восстановление.
Нет возможности сейчас морочиться, и долго у вас выполняются какие-то запросы - значит уменьшайте порцию в одной итерации, пока не будет приемлемо.
Нет возможности сейчас морочиться, и долго у вас выполняются какие-то запросы - значит уменьшайте порцию в одной итерации, пока не будет приемлемо.
(79) А разве форум не собирает людей с разными квалификациями? Я же не могу все знать и понимать если этого не делал или всегда делал неправильно ну и продолжаю так делать.
1) вот пример: У Меня коллега всегда к регистру условием где цепляется он понятия не имеет как пользоваться срезом последним. Говорит ригитстр и так быстрый. Ну и почти как вы говорит Я лучше знаю чем дебилы на форуме.И не сидит на форуме.
2) Мне как понимать правильно Я делаю, правильно сделано или в правильном направлении иду?
1) вот пример: У Меня коллега всегда к регистру условием где цепляется он понятия не имеет как пользоваться срезом последним. Говорит ригитстр и так быстрый. Ну и почти как вы говорит Я лучше знаю чем дебилы на форуме.И не сидит на форуме.
2) Мне как понимать правильно Я делаю, правильно сделано или в правильном направлении иду?
(81) Форум собирает кого попало. Думаю, отдельно взятый совет не стоит сразу принимать на веру. Но можно составить свое мнение, получив множество советов и выведя что-то среднее. Коллегу своего в пример не приводите. Ему надо не на форумы бегать, а своим образованием заняться.
(83) критерии не подскажу - много букв писать придется. Работодатель, о котором пишете - прав.
(84) вообще, разбиение обработки на несколько итераций - классический подход к ресурсоемким операциям, но если для Вас это ковер на трещине - не смею убеждать и что-то навязывать.
В целом, не принимайте мой предыдущий пост как попытку выкрикнуть некую "истину в последней инстанции".
Я посоветовал, а Вы уж там поступайте, как знаете.
(83) критерии не подскажу - много букв писать придется. Работодатель, о котором пишете - прав.
(84) вообще, разбиение обработки на несколько итераций - классический подход к ресурсоемким операциям, но если для Вас это ковер на трещине - не смею убеждать и что-то навязывать.
В целом, не принимайте мой предыдущий пост как попытку выкрикнуть некую "истину в последней инстанции".
Я посоветовал, а Вы уж там поступайте, как знаете.
(88)
1) Из множества советов можно выбрать правильные ну или самому придли к логичесткому ответу.
2) Выбор специалиста это не выбор машины. Каждый специлист орет что он знает лучше всего. На деле бывается что вообще не знает. Чем ниже квалификация человека тем больше он придает важности своим знаниям.
3) Тут разбиением проблему не решит, потому что проблема в структуре регистра. РАзбить можно но опять проблема не удёт. Это как в дестве глаза закрыл если ты не видешь то и тебя не видят.
Извините если Моё сообщение показалось грубым. Я просто хотел выссказать по тезисам некоторые моменты.
1) Из множества советов можно выбрать правильные ну или самому придли к логичесткому ответу.
2) Выбор специалиста это не выбор машины. Каждый специлист орет что он знает лучше всего. На деле бывается что вообще не знает. Чем ниже квалификация человека тем больше он придает важности своим знаниям.
3) Тут разбиением проблему не решит, потому что проблема в структуре регистра. РАзбить можно но опять проблема не удёт. Это как в дестве глаза закрыл если ты не видешь то и тебя не видят.
Извините если Моё сообщение показалось грубым. Я просто хотел выссказать по тезисам некоторые моменты.
(79)
1) Подскажите критерии отбора специалистов. Тут до Меня их не мало побывало. За всеми приходится переделывать.
2) Вы напоминаете Мне работадателя к которому приходит человек без опыта а его не берут потому что опыта нет. А чтобы получить опыт надо где то работать.
3) Если не чем помочь и вы не специалист. У вас тут еше куча тем на сегодня на формуе будет. ТАм пишите что если знаний нет, валите специалиста искать а не на форумах ответы и знания искать
1) Подскажите критерии отбора специалистов. Тут до Меня их не мало побывало. За всеми приходится переделывать.
2) Вы напоминаете Мне работадателя к которому приходит человек без опыта а его не берут потому что опыта нет. А чтобы получить опыт надо где то работать.
3) Если не чем помочь и вы не специалист. У вас тут еше куча тем на сегодня на формуе будет. ТАм пишите что если знаний нет, валите специалиста искать а не на форумах ответы и знания искать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот