|
запрос в цикле против НайтиПоРеквизиту | ☑ | ||
---|---|---|---|---|
0
pessok
28.08.11
✎
20:01
|
Товарщи, доброго времени суток. Вот возник вопрос:
Есть ТЗ в которой порядка 30000 строк. Как лучше осуществить ее сравнение со справочником? Я вижу 2 варианта, но уверен, что не вижу оптимального... 1) При каждой итерации ТЗ делать запрос и проставлять параметром некое значение из ТЗ 2) При каждой итерации искать элемент справочника по реквизиту. Итак вопрос: "Что отработает быстрее, и если существует более действенный в плане скорости вариант, то подскажите его :)" |
|||
1
Rie
28.08.11
✎
20:03
|
(0) Засунуть ТЗ во временную таблицу и сопоставить со справочником одним запросом?
|
|||
2
jump if zero
28.08.11
✎
20:04
|
внутреннее соединение
|
|||
3
pessok
28.08.11
✎
20:07
|
(1) думал об этом, но не пойму как осуществить в моем случае.
(2) эм? |
|||
4
Rie
28.08.11
✎
20:09
|
(3) А в чём именно проблема?
|
|||
5
pessok
28.08.11
✎
20:23
|
(4) проблем нету, просто хочу найти максимально быстрое решение
|
|||
6
izekia
28.08.11
✎
20:25
|
(5) тебе его в (1) озвучили
|
|||
7
pessok
28.08.11
✎
20:31
|
(6) угу, пробую сделать. волнует только вопрос, насколько вырастет производительность... Ну допишу, проверю, в любом случае
(1) Спасибо |
|||
8
Armando
28.08.11
✎
20:53
|
(7) 1 запрос vs 30000 запросов
|
|||
9
pessok
28.08.11
✎
21:09
|
мгм. походя того, как я начал разбираться с временными таблицами, возник вопрос.
Я так понимаю, что все данные в ТЗ, которая будет помещена во временную таблицу должны быть строго типизированы? |
|||
10
EvgeniuXP
28.08.11
✎
21:11
|
(0) отладчиком замерь.
|
|||
11
pessok
28.08.11
✎
21:13
|
(10) да временная таблица - лучший вариант. Вот разбираюсь с ней :)
|
|||
12
izekia
28.08.11
✎
21:14
|
(9) типы у колонок должны быть прописаны
|
|||
13
pessok
28.08.11
✎
21:15
|
(12) угу, это я понял уже. второй вопрос:
обязательно ли задваить выбор?
|
|||
14
izekia
28.08.11
✎
21:21
|
(!3) а что ты понимаешь под задвоением выбора?
и проще делай все в одном запросе - после текста первого точку с запятой и второй запрос |
|||
15
pessok
28.08.11
✎
21:25
|
(14) я в одной запросе и делаю, через точку с запятой. Задваивание в моем понятии то, что сначала я в пермо запросе выбираю данные из ТЗ, потом во втором выбираю теже данные, но уже соединенные... Хотя да, туплю, надо...
Вот еще неимоверно глупый вопрос, а как задать в колонку строку длиной 25? Делаю ТаблицаЗагруженныхТоваров.Колонки.Добавить("АртикулТовара", Новый ОписаниеТипов(Новый КвалификаторыСтроки(25))); не отрабатывает в запросе, неизвестный тип... |
|||
16
pessok
28.08.11
✎
21:29
|
(15) был невнимателен, каюсь. вопрос отпал. Сейчас, если дойду до точки останова, буду смотреть что и как :)
|
|||
17
pessok
28.08.11
✎
21:32
|
это, а впроцедурах &НаСервере бряки не работают, чтоль?..
|
|||
18
Armando
29.08.11
✎
08:11
|
Еще можно нужную колонку выгрузить в массив и передать в запрос в качестве параметра.
|
|||
19
Sammo
29.08.11
✎
08:25
|
Кстати, еще вопрос - откуда взялась таблица, может можно сделать сравнение на исходных данных
|
|||
20
Sammo
29.08.11
✎
08:26
|
(17) Точки останова работают на сервере, если сервер запущен в режиме отладки
|
|||
21
pessok
29.08.11
✎
10:31
|
(18) с временными таблица получился ЗНАЧИТЕЛЬНЫЙ прирост производительности.
(19) к сожалению нельзя, тз берется из скульной базы на сайте (20) ясно, спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |