|
Что лучше соединение или условие в запросе? | ☑ | ||
---|---|---|---|---|
0
Конфигуратор1с
04.02.13
✎
14:33
|
Есть у меня таблица Документ Товар. Мне нужно отобрать строки в расходных накладных с отбором по товарам и документам из таблицы.
Вот какой вариант правильнее Соединить две таблицы или сделать выборку из таблицы расходных накладных с условием где ссылка в (Выбрать документ из ВТ) и Товар в (Выбрать Товар из ВТ)? |
|||
1
GANR
04.02.13
✎
14:35
|
(0) По-моему, В - это тоже замаскированное соединение. План запроса покажет.
|
|||
2
Конфигуратор1с
04.02.13
✎
14:37
|
(1) да я в скуле не силен к своему стыду(. Если есть ссылка как профайлером пользоваться для чайников, поделитесь будь ласка
|
|||
3
GANR
04.02.13
✎
14:38
|
sql-ex.ru
|
|||
4
Лефмихалыч
04.02.13
✎
14:39
|
(0) что по факту быстрее, то и правильнее
|
|||
5
GANR
04.02.13
✎
14:39
|
Можно радии интереса задолбить простенькие запросики и проанализировать. Из 1С транслировать - тяжелые связибудут.
|
|||
6
AaNnDdRrEeYy
04.02.13
✎
14:40
|
если есть возможность не использовать временные таблицы то не используй, они физически пишуться на диск а это медленно
|
|||
7
GANR
04.02.13
✎
14:44
|
(6) Не факт, кстати.
|
|||
8
GANR
04.02.13
✎
14:45
|
||||
9
AaNnDdRrEeYy
04.02.13
✎
14:45
|
что не факт? то что на диск физически пишутся или что запись на диск это медленно?
|
|||
10
GANR
04.02.13
✎
14:47
|
(9) На диск физически пишутся. Уверен?
|
|||
11
AaNnDdRrEeYy
04.02.13
✎
14:48
|
ну да пишуться, когда в запросе есть ПОМЕСТИТЬ
|
|||
12
sapphire
04.02.13
✎
14:51
|
(1) Проще выбрать сначала документы и к ним inner join по Ссылке и условие по номенклатуре.
|
|||
13
alkov
04.02.13
✎
14:54
|
(6) А вот посоны из 1С пишут, что вложенные запросы - зло, а временные таблицы рулят
|
|||
14
GANR
04.02.13
✎
14:55
|
(11) Может, все-таки, начиная с MS SQL 2005-2008 они в оперативе висят (если хватает)?
|
|||
15
samozvanec
04.02.13
✎
14:56
|
(11) это если не хватает памяти
|
|||
16
Рыжий Лис
04.02.13
✎
14:56
|
(0) Результат этих двух вариантов будет разный. Пример:
Док1 Ном2 Док2 Ном1 А в жизни в Док1 продается Ном1, а в Док2 - Ном2. |
|||
17
Sammo
04.02.13
✎
14:58
|
(6) Временные таблицы позволяют управлять планом скулевского запроса. Что может приводить к более оптимальному его выполнению
Имхо в 0 - без разницы. Но я бы делал через соединение, т.к. в некоторых частных случаях при корявой статистике у меня получался диковатый запрос при использовании В (Выбрать). Использование соединений/временных таблиц проблему решало |
|||
18
AaNnDdRrEeYy
04.02.13
✎
15:00
|
(14) можешь сам проверить фигани во временную таблицу побольше записей и смотри на файл tempdb.mdf (временная база данных sql) файлик будет расти, мелкие может и висят но крупные точно пишуться
|
|||
19
GANR
04.02.13
✎
15:03
|
(18) На нормальных серваках от 20 Гигов оперативы. Это ведь ещё и настраивать можно. Не знаю правда или нет, мне сказали, что у кого-то аж база целиком в оперативе висит (на сказку похоже, что-то).
|
|||
20
Конфигуратор1с
04.02.13
✎
15:04
|
всем спасибо, буду делать по ходу соединением. Просто думал есть какая рекомендация от 1с где написано как кошернее)
|
|||
21
alkov
04.02.13
✎
15:05
|
(20) Есть, например, такие рекомендации: http://kb.1c.ru/articleView.jsp?id=44
|
|||
22
Конфигуратор1с
04.02.13
✎
15:08
|
Да. еще такой вопрос. знакомый скльщик утверждает что задавать условие в соединениях єффективнее чем в разделе где. Для 1с это тоже актуально?
|
|||
23
Конфигуратор1с
04.02.13
✎
15:09
|
(21) спасибо огромное.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |