|
Как быстрее(добавлять индекс в отбор или нет)? | ☑ | ||
---|---|---|---|---|
0
posq
08.09.15
✎
11:45
|
Замерить не могу. Интересует теория. Подскажите, есть два банальных вопроса.
Имеем: Документ "Наряд" > 1 000 000 записей. У документа есть не индексируемый реквизит "Дата начала" по которому необходимо выполнить . Вопрос 1: Будет ли выборка работать быстрее если указать хоть какой нибудь отбор по индексируемому полю(в моем случае по дате документа)? Например: ВЫБРАТЬ Номер, Дата, Организация, Ссылка ИЗ Документ.Наряд ГДЕ Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, -4) И &ДатаКонца И ДатаНачала МЕЖДУ &ДатаНачала И &ДатаКонца И НЕ ПометкаУдаления По моему мнению будет работать быстрее если указать отбор по дате (Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, -4)). Вопрос 2: Будет ли работать быстрее если предварительно наложить только первый отбор, поместив результат во временную таблицу, а потом на записи во временной таблице уже наложить отбор на "ДатаНачала"(возможно предварительно проиндексировав ее во ВТ)? P.S. Очевидно что на практике выборка из реальных таблиц документов это ужасно и нужно разрабатывать так что бы под подобную выборку существовал регистр. На это внимание обращать не нужно. |
|||
1
mistеr
08.09.15
✎
11:51
|
1. Это зависит от того, насколько эффективным будет этот дополнительный отбор сам по себе. Если между &ДатаНачала и &ДатаКонца попадают почти все документы, или даже половина, то смысла нет. Если хотя бы 80% отсекается, то смысл есть.
2. Нет, одним запросом будет быстрее. P.S. Ничего ужасного в выборке из таблиц документов нет. Все зависит от задачи. |
|||
2
Ёпрст
08.09.15
✎
11:52
|
(0)
вот это ГДЕ Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, -4) И &ДатаКонца И ДатаНачала МЕЖДУ &ДатаНачала И &ДатаКонца эквивалентно этому ГДЕ ДатаНачала МЕЖДУ &ДатаНачала И &ДатаКонца |
|||
3
Ёпрст
08.09.15
✎
11:53
|
чего надо автору - хз.
|
|||
4
Матиус
08.09.15
✎
11:55
|
(3) автору надо почитать книжку в тему
|
|||
5
Fragster
гуру
08.09.15
✎
11:58
|
(2)(3) Дата <> ДатаНачала
|
|||
6
D3O
08.09.15
✎
11:58
|
(2) не всегда. Дата может и не равняться ДатаНачала. И значительно. в том числе и больше чем на 4 месяца
|
|||
7
Ёпрст
08.09.15
✎
11:58
|
(5) ага, не увидел
|
|||
8
posq
08.09.15
✎
12:03
|
(2) После отбора по дате документа у меня будут документы за 4 месяца, после наложения второго отбора у меня будут документы за один нужный мне день.
(3) Автору нужно убедится в верности того как он пишет. Нужно ли предварительно по индексируемому полу из 1 000 000 записей получать сначала 70 000 записей, а потом из них выбрать нужную 1000. (4) Подскажи какую, спасибо скажу. Про индексы все что в сети нашел прочитал, но там в основном одно и то же с партнерского раздела сайта 1С.(технологии крупных внедрений). Был бы рад если бы указали где на примерах подробно расписано про оптимизацию запросов. (5), (6) угу, дата документа не равна реквизиту "ДатаНачала" |
|||
9
Ёпрст
08.09.15
✎
12:10
|
(8) добавь индекс на дату, жалко что ле ?
|
|||
10
posq
08.09.15
✎
12:14
|
(9) Добавить можно все что угодно и разработать как угодно, вопрос в другом. Меня не конкретный пример интересует, меня интересует "теория", как будет быстрее? Что бы быть уверенным что каждый день в подобных запросах верно запросы пишу.
|
|||
11
ГеннадийУО
08.09.15
✎
12:29
|
(10) Теория одна - берешь с ИТС консоль запросов с просмотром планов запросов, запускаешь оба варианта, думаешь...
|
|||
12
posq
08.09.15
✎
12:37
|
(11) Вот думал не я же один подобные запросы пишу. Люди же каждый день сталкиваются. Или те кто об оптимальности задумывается все заняты и на форуме не сидят.
|
|||
13
mistеr
08.09.15
✎
17:03
|
(11) Вредный совет. Втыкать в планы на каждый чих - терять время и деньги. (Если только не стоит задача самообразования). Смотреть планы нужно, если есть проблемы с производительностью.
Для повседневного запросописания достаточно нескольких простых правил. В данном случае правило такое: дополнительный отбор, уменьшающий кардинальность выборки, скорее всего поможет и вряд ли помешает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |