powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Работа с большим объемом информации в 1С УТ11 клиент-сервер
8 сообщений из 8, страница 1 из 1
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39089712
Есть база УТ 11.1, подключена по технологии Клиент-сервер
В ней большой справочник "Партнеры" - порядка 200000 записей.
Есть выгруженная из внешнего источника данных таблица телефонных звонков с графами
"Длительность звонка" и "Телефонный номер", количество строк может быть любым.
Требуется по телефонному номеру найти партнеров для всех строк из этой таблицы.
Я написал процедуру примерно такого вида:

&НаСервере
Процедура СопоставитьПартнеров()

//Операторы загрузки данных из внешней таблицы в таблицу значений ВнешТЗ
...

//Попытка найти партнеров по номеру телефона
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ *
|ПОМЕСТИТЬ ВнешТЗ
|ИЗ &ВнешТЗ КАК ВнешТЗ
|;
|ВнешТЗ.ДлительностьЗвонка КАК Длительность,
|ВнешТЗ.ТелефонныйНомер КАК ТелефонныйНомер,
|ПартнерыКИ.Ссылка КАК Партнер
|ИЗ
|ВнешТЗ КАК ВнешТЗ
|ЛЕВОЕ СОЕДИНЕНИЕ
|Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКИ
|ПО ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)";

Запрос.Параметры.Вставить("ВнешТЗ", ВнешТЗ);
Рез = Запрос.Выполнить();

//Дальнейшая обработка результата запроса
...
КонецПроцедуры


Проблема такая:
Если во внешней таблицы записей немного (в пределах 1000), то запрос отрабатывает нормально.
Но если их передано очень много (порядка 100000), то на выполнении запроса 1С мертво подвисает на
несколько часов, и вместе с ней подвисает и сервер, на котором она установлена, т.е. не могут работать
и другие пользователи этой базы, и даже пользователи других программ, установленных на этом сервере.
Подскажите, пожалуйста, как грамотно получить данные из справочника партнеров, чтобы запрос выполнялся быстрее, или хотя бы чтобы он не подвешивал сервер.
Заранее благодарен

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39089748
Титов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ярошенко Павел,

отбирайте по 1000 в стеке или в цикле с параметрой Партнер не в списке
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39089752
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разрешаю индексировать таблицы
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39089767
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Левое соединение по "подобно"? застрелись. Или сделай сперва запрос с отбором а потом уж соединяй.
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39089867
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ярошенко Павел,

Запрос.Текст = "ВЫБРАТЬ *
|ПОМЕСТИТЬ ВнешТЗ
|ИЗ &ВнешТЗ КАК ВнешТЗ
|ИНДЕКСИРОВАТЬ ПО
| ВнешТЗ.ТелефонныйНомер
|;

На справочнике Справочник.Партнеры.КонтактнаяИнформация на реквизите НомерТелефона сделай индекс.

Попробуй отказаться от ПОДОБНО т.к. в этом случае идет полный перебор и не используются индексы, что увеличивает время выполения запроса.
ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)";

Т.е. вместо ПОДОБНО использовать = , если это возможно.
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39089871
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewЯрошенко Павел,

Запрос.Текст = "ВЫБРАТЬ *
|ПОМЕСТИТЬ ВнешТЗ
|ИЗ &ВнешТЗ КАК ВнешТЗ
|ИНДЕКСИРОВАТЬ ПО
| ВнешТЗ.ТелефонныйНомер
|;

На справочнике Справочник.Партнеры.КонтактнаяИнформация на реквизите НомерТелефона сделай индекс.

Попробуй отказаться от ПОДОБНО т.к. в этом случае идет полный перебор и не используются индексы, что увеличивает время выполения запроса.
ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)";

Т.е. вместо ПОДОБНО использовать = , если это возможно.
вот вот..про тоже подумал что индекс то работать и не будет
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39090007
Zerro, к сожалению, отказаться от ПОДОБНО нельзя, поскольку в базе Номера телефонов могут начинаться то с +7, то с 8, а могут и вообще не содержать в начале префикса
...
Рейтинг: 0 / 0
Работа с большим объемом информации в 1С УТ11 клиент-сервер
    #39090019
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ярошенко ПавелZerro, к сожалению, отказаться от ПОДОБНО нельзя, поскольку в базе Номера телефонов могут начинаться то с +7, то с 8, а могут и вообще не содержать в начале префикса
храни правильно..приводи к нужному виду.
Делай сперва запрос с отбором по подобное а потом соединяй с другими таблицами
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Работа с большим объемом информации в 1С УТ11 клиент-сервер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]