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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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