![]() |
|
Имеется регистр накопления указанной структуры | ☑ | ||
---|---|---|---|---|
0
tg30000
20.08.17
✎
22:13
|
Имеется регистр накопления указанной структуры, требуется ответить на вопросы и обосновать
ТоварыНаСкладах(Измерения:склад, номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры,Качество Ресурсы:Количество, КоличествоЛ) 1) ВЫБРАТЬ Товары.Номенклатура, Товары.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, , , Номенклатура = &Номенклатура) КАК Товары 2) ВЫБРАТЬ Товары.Номенклатура, Товары.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, , , Номенклатура = &Номенклатура И Склад = &Склад) КАК Товары 3) ВЫБРАТЬ Товары.Номенклатура, Товары.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, , , Номенклатура = &Номенклатура И Качество = &Качество) КАК Товары 1)В чем отличие этих запросов с точки зрения производительности? 2)Как добиться оптимальности выполнения этих запросов? 3)Какова логика выполнения данных запросов в СУБД? 4)Какой регламент должен соблюдать администратор базы, чтобы подобные запросы выполнялись наиболее оптимально? |
|||
1
tg30000
20.08.17
✎
22:14
|
Как вариант:
1) Нужно использовать максимально параметры виртуальных таблиц, сначала выбираются данные для виртуальных таблиц, а потом уже на них накладываются условия, соединения и т.д. 2) В случае, когда необходимо вывести лишь текстовое представление объекта нужно использовать функцию ПРЕДСТАВЛЕНИЕ(<Выражение>) запрос в этом случае будет оптимальным, т.к. не будет создаваться дополнительная таблица. |
|||
2
tg30000
20.08.17
✎
22:15
|
Коллеги, прошу советов или что можно почитать по этому поводу, особенно по вопросам 3 и 4.
|
|||
3
МихаилМ
20.08.17
✎
22:19
|
(2)почитайте свои институтские лекции .
|
|||
4
МихаилМ
20.08.17
✎
22:30
|
||||
5
H A D G E H O G s
20.08.17
✎
23:26
|
1) Все запросы, кроме 2 - "неоптимальны" в рамках очевидности, так как не будут использовать поиск по индексу.
2) Передвинуть номенклатуру на первое место в измерениях. Этого достаточно. Номенклатура обеспечит достаточную селективность выборки. 3) Логика простая. Кластерный индекс используется тогда, когда в полях поиска нет пропусков, начиная с первого поля-измерения. 4) Обновление статистики, сброс процедурного кэша и дефрагментация индексов. |
|||
6
H A D G E H O G s
20.08.17
✎
23:28
|
Отряд не заметил
Потери бойца И «Яблочко»-песню Допел до конца. Лишь по небу тихо Сползла погодя На бархат заката Слезинка дождя... |
|||
7
Torquader
21.08.17
✎
00:22
|
(5) А, может быть, поставить флаг "индексировать" у номенклатуры.
Просто, запросы "что у нас на складе" - это очень частое явление. |
|||
8
H A D G E H O G s
21.08.17
✎
00:33
|
(7) Складов мало.
|
|||
9
Torquader
21.08.17
✎
01:21
|
(8) Понятно, что склад в конец.
Собственно, если мы выбираем всю номенклатуру какого-то склада, то это не сильно отличается от выбора вообще всей номенклатуры. Но, если в базе несколько пользователей и фигачат по разным складам, то будет вопрос с блокировками, который легче решается, если склад в начале, почему его туда и помещают. |
|||
10
H A D G E H O G s
21.08.17
✎
01:51
|
" то будет вопрос с блокировками, который легче решается, если склад в начале, почему его туда и помещают."
Ты не прав. Какая разница, где находится склад при блокировках? Тебе главное попасть в индекс - с номенклатурой впереди это можно сделать по кластерному индексу. |
|||
11
tg30000
21.08.17
✎
04:57
|
Коллеги, огромное спасибо за ответы, буду работать в этом направлении и штудировать материалы по данным вопросам.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |