|
Выборка порциями | ☑ | ||
---|---|---|---|---|
0
TVA_11
01.08.13
✎
09:49
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 100 | Банки.Код КАК Код, | Банки.Ссылка |ИЗ | Справочник.Банки КАК Банки |ГДЕ | Банки.Код > &Код | |УПОРЯДОЧИТЬ ПО | Код"; Запрос.Текст=СтрЗаменить(Запрос.Текст,"Банки11",Справочник); Запрос.УстановитьПараметр("Код", "0"); Цк=Истина; Пока Цк Цикл Тб = Запрос.Выполнить().Выгрузить(); Если Тб.Количество() > 0 Тогда Для каждого Эл из Тб Цикл // Что-то делаем КонецЦикла; Запрос.УстановитьПараметр("Код", Эл.Код); Иначе Цк=ложь; КонецЕсли; КонецЦикла; |
|||
1
Как страшно жить
01.08.13
✎
09:50
|
круто
|
|||
2
TVA_11
01.08.13
✎
09:51
|
Однако это только идея, по коду отбор порциями не работает., так как там текст и c префиксами.
|
|||
3
Mitriy
01.08.13
✎
09:51
|
фигня...
|
|||
4
butterbean
01.08.13
✎
09:52
|
запрос в цикле — это не круто
|
|||
5
TVA_11
01.08.13
✎
09:52
|
В инете читал, что нужен отбор по индексу, но реализации не видел. Кроме того
желательно, чтоб в отбор попадали 100 отсортированных по всему справочнику, а не сортированные только в группе по 100. |
|||
6
TVA_11
01.08.13
✎
09:54
|
butterbean
А как еще, все равно порциями надо брать информацию, если сам справочник очень велик, а он очень велик и выбрать все, значит повесить. |
|||
7
TVA_11
01.08.13
✎
09:55
|
Короче по коду, отбор делать не выходит.
Надо бы по номеру по порядку, но его в справочнике нет. |
|||
8
TVA_11
01.08.13
✎
09:56
|
Справочник.Банки11 КАК Банки - так в запросе, чтобы потом вставить любой выбранный справочник.
|
|||
9
TVA_11
01.08.13
✎
13:32
|
А ведь идей у меня нет, как порциями справочник качать.
|
|||
10
Как страшно жить
01.08.13
✎
13:33
|
а зачем?
|
|||
11
KishMish
01.08.13
✎
13:37
|
(7) может так можно использовать массив обработанных ссылок
МассивОБрабтанныхСсылок=Новый Массив; В него вбивать все обработанное ВЫБРАТЬ ПЕРВЫЕ 100 ... ГДЕ НЕ Ссылка В (&МассивОБрабтанныхСсылок) |
|||
12
Как страшно жить
01.08.13
✎
13:39
|
(2) и что из того, что "текст и c префиксами"?
|
|||
13
Hmster
01.08.13
✎
13:44
|
а зачем именно порциями?
что именно он там может повесить? |
|||
14
Serginio1
01.08.13
✎
13:48
|
||||
15
TVA_11
01.08.13
✎
13:54
|
счас посмотрю ссылку!, МассивОбработанныхСсылок - строго говоря не выход, если в справочнике миллион записей, можно сделать выборку тогда из Справочника одними ссылками. Но мы полагаем, что справочник очень большой и нас экстенсивный путь не устраивает.
|
|||
16
TVA_11
01.08.13
✎
13:55
|
Как страшно
жить Так за счет этого нельзя сравнить на больше/меньше. |
|||
17
samozvanec
01.08.13
✎
13:58
|
(0) чет я не понял. с условием ГДЕ типа не вешает? он же сначала выберет весь справочник, потом наложит условие и тебе покажет. значит вешается не на выборке, а на выводе?
|
|||
18
TVA_11
01.08.13
✎
14:01
|
samozvanec
В выборке у нас указано первые 100, вот если бы в справочнике был индекс, то можно было бы по нему делать выборку порциями. Но у нас, нет индекса, как бы его создать для справочника в запросе. Вроде нельзя. |
|||
19
Serginio1
01.08.13
✎
14:07
|
(18) Сделай временную таблицу индексируй и выбирай из нё
|
|||
20
samozvanec
01.08.13
✎
14:08
|
(18) синий текст не увидел. как собираешься использовать индекс и что ты вообще подразумеваешь под словом индекс в этом контексте? доступа то нет к индексам
|
|||
21
Maxus43
01.08.13
✎
14:19
|
сортировать по ссылке не вариант? она входит в состав основного индекса
|
|||
22
Maxus43
01.08.13
✎
14:20
|
и вобще, фоновым заданием доставай. клиент не подвесится
|
|||
23
TVA_11
01.08.13
✎
14:24
|
Просто приведите пример, как сортировать по ссылке.
Временная таблица не вариант, так проще делать выборку ссылок на весь справочник целиком, полагаем, что этого сделать нельзя. |
|||
24
zmaximka
01.08.13
✎
14:24
|
Сортируй по ссылке и условие накладывай на
|ГДЕ | Банки.Сыылка> &Ссылка |
|||
25
Maxus43
01.08.13
✎
14:32
|
я не вижу как достигнестя "развисание" используя (0). Всё равно пока не прогонит целиком юзер будет курить в сторонке, + запрос будет не один
|
|||
26
Reaper_1c
01.08.13
✎
14:34
|
(6) Выборка чем не устроила?
|
|||
27
TVA_11
01.08.13
✎
14:37
|
Maxus43
Так ведь память будет выделена, под весь справочник целиком. Что и обеспечит тормоза. |
|||
28
Maxus43
01.08.13
✎
14:37
|
(27) 15 лет назад за память переживать надо, сейчас - это уже смешно...
|
|||
29
samozvanec
01.08.13
✎
14:38
|
попробовал сейчас выбрать все из справочника с 750000 элементов. за 8 минут результата не было, тупо повис(
|
|||
30
Maxus43
01.08.13
✎
14:38
|
и результат выборки - не значит что весь справочник там, там только указанные поля
|
|||
31
Maxus43
01.08.13
✎
14:39
|
(29) попробуй вытянуть только Ссылка
|
|||
32
TVA_11
01.08.13
✎
14:39
|
Reaper_1c
Это тоже самое, что выбрать весь справочник в массив ссылок, сразу и целиком. Что даже проще. Чем формировать таблицу и постепенно заполнять ее до размера всего справочника. |
|||
33
H A D G E H O G s
01.08.13
✎
14:39
|
Все бред, кроме (24)
|
|||
34
TVA_11
01.08.13
✎
14:40
|
Maxus43
Согласен, но по факту тормоза бывают из-за памяти, при наличии свободной памяти. |
|||
35
H A D G E H O G s
01.08.13
✎
14:40
|
(32) Он имеет ввиду
СправочникВыборка Но это еще большая глупость. |
|||
36
TVA_11
01.08.13
✎
14:41
|
samozvanec
Говорит верно, проблемы возникают при больших объемах. |
|||
37
Defender aka LINN
01.08.13
✎
14:41
|
Гени(т)ально.
Что мешает использовать ссылку вместо кода? |
|||
38
GROOVY
01.08.13
✎
14:41
|
(35) А между тем СправочникВыборка получает данные порционно по 25 строк... :)
|
|||
39
TVA_11
01.08.13
✎
14:41
|
H A D G E H O G
не думал, что это возможно. Счас проверю! ) |
|||
40
samozvanec
01.08.13
✎
14:46
|
(31) только ссылку и вытягивал, все - имелось в виду все элементы справочника без ограничений
|
|||
41
H A D G E H O G s
01.08.13
✎
14:46
|
(38) Ну и.. И делает ПолучитьОбъект() по факту то.
И всего 25 строк. И принцип у него тот же, что и в (24) |
|||
42
Serginio1
01.08.13
✎
15:10
|
(23) Зависит от существующих индексов. Если есть индекс по упорядочиванию выборки то все нормально и будет использоваться индекс, иначе че же практически ты каждый раз внутри будет создаваться временную таблицу сортироваться и выбираться нужные записи. А так ты создал внутреннюю таблицу, отсортировал её и выбирай порциями
v8: Подзапросы с Выбрать Первые |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |