|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
Есть база УТ 11.1, подключена по технологии Клиент-сервер В ней большой справочник "Партнеры" - порядка 200000 записей. Есть выгруженная из внешнего источника данных таблица телефонных звонков с графами "Длительность звонка" и "Телефонный номер", количество строк может быть любым. Требуется по телефонному номеру найти партнеров для всех строк из этой таблицы. Я написал процедуру примерно такого вида: &НаСервере Процедура СопоставитьПартнеров() //Операторы загрузки данных из внешней таблицы в таблицу значений ВнешТЗ ... //Попытка найти партнеров по номеру телефона Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ВнешТЗ |ИЗ &ВнешТЗ КАК ВнешТЗ |; |ВнешТЗ.ДлительностьЗвонка КАК Длительность, |ВнешТЗ.ТелефонныйНомер КАК ТелефонныйНомер, |ПартнерыКИ.Ссылка КАК Партнер |ИЗ |ВнешТЗ КАК ВнешТЗ |ЛЕВОЕ СОЕДИНЕНИЕ |Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКИ |ПО ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)"; Запрос.Параметры.Вставить("ВнешТЗ", ВнешТЗ); Рез = Запрос.Выполнить(); //Дальнейшая обработка результата запроса ... КонецПроцедуры Проблема такая: Если во внешней таблицы записей немного (в пределах 1000), то запрос отрабатывает нормально. Но если их передано очень много (порядка 100000), то на выполнении запроса 1С мертво подвисает на несколько часов, и вместе с ней подвисает и сервер, на котором она установлена, т.е. не могут работать и другие пользователи этой базы, и даже пользователи других программ, установленных на этом сервере. Подскажите, пожалуйста, как грамотно получить данные из справочника партнеров, чтобы запрос выполнялся быстрее, или хотя бы чтобы он не подвешивал сервер. Заранее благодарен Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 11:03 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
Ярошенко Павел, отбирайте по 1000 в стеке или в цикле с параметрой Партнер не в списке ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 11:14 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
разрешаю индексировать таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 11:18 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
Левое соединение по "подобно"? застрелись. Или сделай сперва запрос с отбором а потом уж соединяй. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 11:26 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
Ярошенко Павел, Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ВнешТЗ |ИЗ &ВнешТЗ КАК ВнешТЗ |ИНДЕКСИРОВАТЬ ПО | ВнешТЗ.ТелефонныйНомер |; На справочнике Справочник.Партнеры.КонтактнаяИнформация на реквизите НомерТелефона сделай индекс. Попробуй отказаться от ПОДОБНО т.к. в этом случае идет полный перебор и не используются индексы, что увеличивает время выполения запроса. ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)"; Т.е. вместо ПОДОБНО использовать = , если это возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 12:23 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
trewЯрошенко Павел, Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ВнешТЗ |ИЗ &ВнешТЗ КАК ВнешТЗ |ИНДЕКСИРОВАТЬ ПО | ВнешТЗ.ТелефонныйНомер |; На справочнике Справочник.Партнеры.КонтактнаяИнформация на реквизите НомерТелефона сделай индекс. Попробуй отказаться от ПОДОБНО т.к. в этом случае идет полный перебор и не используются индексы, что увеличивает время выполения запроса. ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)"; Т.е. вместо ПОДОБНО использовать = , если это возможно. вот вот..про тоже подумал что индекс то работать и не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 12:26 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
Zerro, к сожалению, отказаться от ПОДОБНО нельзя, поскольку в базе Номера телефонов могут начинаться то с +7, то с 8, а могут и вообще не содержать в начале префикса ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 13:39 |
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
---|---|---|---|
#18+
Ярошенко ПавелZerro, к сожалению, отказаться от ПОДОБНО нельзя, поскольку в базе Номера телефонов могут начинаться то с +7, то с 8, а могут и вообще не содержать в начале префикса храни правильно..приводи к нужному виду. Делай сперва запрос с отбором по подобное а потом соединяй с другими таблицами ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2015, 13:45 |
|
|
start [/forum/topic.php?fid=28&msg=39089752&tid=1518930]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
126ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 218ms |
0 / 0 |