|
|
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
Есть база УТ 11.1, подключена по технологии Клиент-сервер В ней большой справочник "Партнеры" - порядка 200000 записей. Есть выгруженная из внешнего источника данных таблица телефонных звонков с графами "Длительность звонка" и "Телефонный номер", количество строк может быть любым. Требуется по телефонному номеру найти партнеров для всех строк из этой таблицы. Я написал процедуру примерно такого вида: &НаСервере Процедура СопоставитьПартнеров() //Операторы загрузки данных из внешней таблицы в таблицу значений ВнешТЗ ... //Попытка найти партнеров по номеру телефона Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ВнешТЗ |ИЗ &ВнешТЗ КАК ВнешТЗ |; |ВнешТЗ.ДлительностьЗвонка КАК Длительность, |ВнешТЗ.ТелефонныйНомер КАК ТелефонныйНомер, |ПартнерыКИ.Ссылка КАК Партнер |ИЗ |ВнешТЗ КАК ВнешТЗ |ЛЕВОЕ СОЕДИНЕНИЕ |Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКИ |ПО ВнешТЗ.ТелефонныйНомер ПОДОБНО (""%"" + ПартнерыКИ.НомерТелефона)"; Запрос.Параметры.Вставить("ВнешТЗ", ВнешТЗ); Рез = Запрос.Выполнить(); //Дальнейшая обработка результата запроса ... КонецПроцедуры Проблема такая: Если во внешней таблицы записей немного (в пределах 1000), то запрос отрабатывает нормально. Но если их передано очень много (порядка 100000), то на выполнении запроса 1С мертво подвисает на несколько часов, и вместе с ней подвисает и сервер, на котором она установлена, т.е. не могут работать и другие пользователи этой базы, и даже пользователи других программ, установленных на этом сервере. Подскажите, пожалуйста, как грамотно получить данные из справочника партнеров, чтобы запрос выполнялся быстрее, или хотя бы чтобы он не подвешивал сервер. Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 09:51 |
|
||
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
Гонять туда-сюда таблицы - несерьёзно. Да и не сильно понятно, где фактически выполняется запрос... небось локально? Создайте ТАМ временную таблицу, загоните в неё все нужные телефоны, выполните ТАМ запрос и получите обратно набор записей (телефон-партнёр). Ещё лучше - выполняя ТАМ запрос, слить информацию в другую временную таблицу опять же ТАМ, а потом из неё фетчить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 09:57 |
|
||
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
То есть вот так (СМ. ниже) что ли "сделал" вместо того, чтобы "сперва подумать"? 8^) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:05 |
|
||
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
нет, просто ЗВОНКИ на ЗВОНКИ в "декартовом произведении" 8^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:31 |
|
||
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
Мудрозвонов Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:47 |
|
||
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
AkinaМудрозвонов Код: plaintext по ходу вычисляет случаи, когда звонили сами себе и это получалось надо же знать - у кого получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:59 |
|
||
|
Работа с большим объемом информации в 1С УТ11 клиент-сервер
|
|||
|---|---|---|---|
|
#18+
Мудрозвоноввычисляет случаи, когда звонили сами себе Да ни разу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 13:17 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39088895&tid=1340898]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 506ms |

| 0 / 0 |
