#0
by Homer
Есть запрос. В нем необходимо пронумеровать строки во временной таблица для последующего поиска максимума номера. Пользуюсь стандартным методом: связь двух таблиц по условию ИсходнаяТаблица.Ссылка > ИсходнаяТаблица1.Ссылка. Все прекрасно отрабатывает при малом количестве строк в ИсходнаяТаблица. Проблема в том, что таблицы большого объема (>10 000 строк) начинает тормозить. Есть способ нумерации строк с учетом того, что в будущих виртуальных таблицах необходимо будет искать максимум номера строки.
#1
by Ildarovich
Вообще всегда интересно знать фактуру задачи (скрывая эту информацию, вы лишаете многих интереса к решению, поскольку неясно, насколько задача актуальна и правильно ли она сформулирована). Ответьте хотя бы на это: - Что за данные в временной таблице? - Есть ли другие поля для упорядочивания, кроме ссылки? - Нужно ли вообще нумеровать строки, если максимальный номер можно определить, сначала найдя максимальную ссылку, а затем посчитав число ссылок меньше нее?
#2
by Homer
Задача почитать какие поступления закрыт планом при условии план связан с поступлением только договором. Вычисляется только запросом. Легче стало?
#3
by Ildarovich
Конечно, стало. Намного, намного легче и понятней. То есть вы решаете задачу "ФИФО запросом". На самом деле я знаю как решить эту задачу для 10 000 строк (и больше) без существенного торможения. Нумерация - это ведь частный случай нарастающего итога, который по сути - интеграл. По стечению обстоятельств, как раз сейчас заканчиваю публикацию с готовым запросом на эту тему. Наброски можете посмотреть вот тут: и вот тут . Обязательно опубликую в этой теме ссылку на статью, когда она будет готова.
#5
by Homer
Данный метод смотрел 2 года назад. Как то геморно показалось)) Из "Для таких особенных задач и предназначен описываемый далее метод. Он не опирается ни на какие технологические ухищрения, а является чисто алгоритмическим. Метод требует, чтобы строки исходной таблицы были пронумерованы. " И в чем преимущество твоего алгоритма?? Пронумеровать я могу также внешне, я интересуюсь именно быстрой нумерацией в запросе!! В моем отчете нумерация занимает 90% времени при количестве строк > 25 тыс. В цифрах: 200 сек отчет 180 сек нумерация 19 сек таб с нарастающим и 1 сек вычисление
#6
by Ildarovich
Преимущества в том, что при НУМЕРАЦИИ В ЗАПРОСЕ нет квадратичной зависимости от числа строк. ...геморно показалось... - а более простых методов нет даже в теории. В SQL для этого оконные функции придумали. Поскольку в 1С их нет, приходится идти на достаточно серьезные усложнения. Мне нравятся такие цифры: они говорят о том, что метод, который я разрабатываю, нужен. А есть ли какая-либо возможность протестировать мой подход на ваших данных? Я бы переписал запрос на ваш случай, если дадите свой исходный запрос (можно в почту).
#7
by sapphire
В нем необходимо пронумеровать строки во временной таблица для последующего поиска максимума номера. Интересно, чем же максимум будет отличаться от количества записей?
#8
by Homer
Запрос коммерческая тайна)) Я же написал, что могу вынести нумерацию из запроса. просто не удобно для отладки. В вашем механизме все равно надо сначала обработать какую-то таблицу и только потом ее выгрузить, пронумеровать и передать вашему математическому алгоритму. В моем методе аналогичная последовательность, только все в одном запросе. Или я не вижу в каком месте вы нумеруете таб? Данный акцент был сделал для того что бы не писали про момент времени.
#10
by Homer
мне необходимо воспользоваться функцией Минимум. Прошу прощения кого ввел заблуждение про Максимум.
#11
by Ildarovich
Ну тайна так тайна. Тогда подождите статью - возьмете запрос оттуда. Там действительно решается эта или очень похожая проблема. Но довольно сложным способом. Для этого метод "баттерфляй", приведенный по ссылке, был улучшен. Теперь нумерации не требуется.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- ТЗ. Удаление строки сдвигает строки?
- Как в запросе пронумеровать строки?
- Условие в запросе, аналогичное условию в запросе 77
- Интересная фишка в запросе в 7-ке. Сумма из шапки и из ТЧ в запросе
- V8 - Как пронумеровать строки в запросе?
- Как пронумеровать записи в запросе?
- пронумеровать строки табличного документа
- Динамический список - выделенные строки - суммирование содержимого строки..
- "Несовместимые типы выразить в запросе 1с" ошибка в динамическом запросе списка документов
В этой группе 1С
- Запрос в СКД. Как периодичность передать через параметр?
- ЗУП 3.0 Внешняя печатная форма
- Вид Операции "Оплата от покупателя"
- Выгрузка на открытие счетов ЗУП 3.1
- 1С Розница 2.2 акт списания просит указать Справку 2 ?
- Анализ признания расходов по номенклатуре УСН
- Передача на сервер контекста формы
- ошибка при работе с сервисом
- v7: 1c 7.7. Работа с Ole объектом из "Таблицы"
- Поделитесь ссылкой на консоль СКД чуть более удобной чем типовая
- СКД: Промежуточные итоги в таблице
- Не работает фискальник. Ошибка 33h.
- 1C 8.3 + Soap запрос
- УТ11, Отчет по продажам в валюте взаиморасчетов
- ошибка при записи Физического лица в Бух 3.0.44.177
- v7: Программно создать реквизиты справочника.
- В Списании с расчетного счета поставить Субконто пп ст.255 НК РФ
- v7: Выбор реквизита составного поля в запросе 1с 7.7
- Получить значение реквизита одной формы из другой
- Сворачивание строк в ТОРГ12. УТ 11.2