|
Как оптимальнее написать запрос? | ☑ | ||
---|---|---|---|---|
0
gr0ck
25.01.12
✎
16:26
|
Есть регистр сведений переодический, из которого выбираются данные. Берется срез последних.
Нужно сделать отбор, что эти записи не должны входить во вторую выборку, получаемую запросом по другому регистру. И плюс еще один набор данных исключить из выборки. Писал в параметрах виртуальной таблицы, что "не измерение в ( Выбрать....) И не измерение в (Выбрать...)" На это 1с сильно задумывалась при получении данных))) Перенес эти условия в раздел "ГДЕ...", начало работать. Думаю, как еще можно улучшить? Может поместить эти две выборки в одну временную таблицу, и потом в параметрах виртуальной таблица написать "не измерение в (выбрать... из вирт_таблица...) Заодно можно будет виртуальную таблицу проиндексировать. В регистре несколько тысяч записей. В отборе записей порядка сотни |
|||
1
jsmith82
25.01.12
✎
16:28
|
ты бы лучше сам запрос предоставил
|
|||
2
DrShad
25.01.12
✎
16:30
|
оптимальнее написать запрос - это правильно его написать
|
|||
3
gr0ck
25.01.12
✎
16:31
|
Запрос большой и длинный, там много временных таблиц. Я нашел узкое место.
(2) Я вот спрашиваю, как лучше? Правильно и так, и по другому. язык запросов позволяет писать "как угодно", и это будет правильно. вопрос в оптимальности |
|||
4
gr0ck
25.01.12
✎
16:33
|
ВЫБРАТЬ
ПотребителиСрезПоследних.Присоединение КАК Присоединение, ПотребителиСрезПоследних.Потребитель, ПОМЕСТИТЬ Потребители ИЗ РегистрСведений.Потребители.СрезПоследних( &КонецПериода, Присоединение <> &ПустоеПрисоединение И НЕ Присоединение.ПометкаУдаления) КАК ПотребителиСрезПоследних ГДЕ НЕ ПотребителиСрезПоследних.Присоединение В (ВЫБРАТЬ УчетВВедомостяхСрезПоследних.Присоединение ИЗ РегистрСведений.УчетВВедомостях.СрезПоследних(&КонецПериода, НЕ Присоединение.ПометкаУдаления И НЕ Учитывать) КАК УчетВВедомостяхСрезПоследних) |
|||
5
Живой Ископаемый
25.01.12
✎
16:36
|
wiki:Оптимальный
"Слово «оптимальный» — научно-технический термин. В иных случаях и обычной речи более распространены синонимы «лучший», «самый лучший» и т. п. Например, «оптимальная по площади сцена в Саратове» (критерий — площадь, допустим, максимальная. Множество вариантов определено Саратовым), но «лучший по вокальным данным певец (в этом театре)» (если не давать уточнение «в этом театре», то неизвестно, из какого количества певцов производился отбор. Может он был один, и тогда говорить об оптимальном выборе мы не вправе). Очевидно, что «самый лучший по успеваемости ученик в школе» указывает на более сильное решение по сравнению с «самым лучшим по успеваемости учеником в классе», поскольку выбрано из большего количества вариантов. Каждый выбор лучшего варианта конкретен, поскольку производится на соответствие определённым критериям. Следовательно, говоря об оптимальном варианте, всегда нужно указывать эти критерии (то есть «оптимальный по …»). И то, что может быть оптимальным при одном критерии, не обязательно будет таковым при другом. Например, сцена, «оптимальная по площади», не обязательно будет «оптимальной по акустике»." |
|||
6
gr0ck
25.01.12
✎
16:37
|
(4) Там еще одно Не В () есть. Это все упрощенный вариант. До этого условие "ГДЕ..." было в параметрах виртуальной таблицы. и это вешало 1с-ку. Просто перенес в где, стало в разы лучше.
Думаю взять, сгруппировать данные, которые нужно исключить, поместить в одну временную таблицу, ее проиндексировать, и использовать затем в отборе. Есть варианты оптимальнее? Данные, которые нужно исключить, их 100-1000 записей, такой объем в среднем. |
|||
7
gr0ck
25.01.12
✎
16:38
|
В данном случае, оптимальный значит быстрее.
|
|||
8
gr0ck
25.01.12
✎
16:40
|
||||
9
Живой Ископаемый
25.01.12
✎
16:40
|
2(8) и к тому тоже.
|
|||
10
gr0ck
25.01.12
✎
16:43
|
(9) Ясно)))))
Ну так что по запросу? предполагал, что если в виртуальной таблице ставить отбор, то это по времени лучше. На экзаменах так делают по спецу. А вот перенес из параметров в раздел "ГДЕ", и запрос вместо пары минут начал пару секунд думать |
|||
11
Живой Ископаемый
25.01.12
✎
16:46
|
2(10) во всех 5 вариантах базы данных? с построенной статистикой?
|
|||
12
jsmith82
25.01.12
✎
18:33
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |