Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Индексация поля ВТ, если выборка из ВТ будет условием (параметром) виртуальной таблицы

Индексация поля ВТ, если выборка из ВТ будет условием (параметром) виртуальной таблицы
Я
   PiotrLoginov
 
30.01.18 - 19:18
Привет всем. Нужно ли индексировать Поле1 в ВТ_ПараметрОтбор?


ВЫБРАТЬ
    Объекты.Поле1
ПОМЕСТИТЬ ВТ_ПараметрОтбор
ИЗ Справочник.Объекты КАК СправочникОбъекты
;

ВЫБРАТЬ
    Обороты.ПолеИзмерение,
    Обороты.РесурсОборот
    РегистрНакопления.ДвиженияОбъектов.Обороты( , , , ПолеИзмерение В
                    (ВЫБРАТЬ
                        ВТ_ПараметОтбор.Поле1
                    ИЗ ВТ_ПараметрОтбор КАК ВТ_ПараметрОтбор)) КАК Обороты
 
 
   PiotrLoginov
 
1 - 30.01.18 - 19:18
*
ВЫБРАТЬ
    СправочникОбъекты.Поле1
   tesseract
 
2 - 30.01.18 - 19:23
Зачем? У тебя же нет никого поиска, тупой скан таблицы.
   PiotrLoginov
 
3 - 30.01.18 - 19:38
(2) Не знаю. Индексация Поля нужна, если потом, когда ВТ будет использоваться, она будет соединяться с другой таблицей по этому полю, поэтому чтобы ответить на мой вопрос в (0), надо четко понимать, как используется выборка из ВТ_ПараметОтбор, когда используется в качестве параметра виртуальной таблицы.

Возможно, по факту в некоторых СУБД использование выборки из ВТ_ПараметОтбор для фильтрации виртуальной таблицы на первых этапах обработки запроса как раз означает соединение этой выборки с какими-то еще таблицами как по полю-условию
   Fram
 
4 - 30.01.18 - 19:39
(2) Даже если б был, прирост от индкесации будет заметен только если у тебя записей там под лимон и более.
   PiotrLoginov
 
5 - 30.01.18 - 19:41
(4) нет, это понятно, что сама по себе индексация имеет смысл не всегда, а только при соответсвующих объемах и других условиях.

Мой вопрос как раз про те ситуации, когда прочие условия говорят, что там, где индексация нужна, её стОит выполнить. И вот тут-то дело упирается в случаи использования выборок из ВТ в качестве условия в параметрах виртуальных таблиц
   Fram
 
6 - 30.01.18 - 19:45
(5) ну, глянь профайлером скуля например, если очень интересно
   H A D G E H O G s
 
7 - 30.01.18 - 19:53
(0) Индексировать ВТ не нужно. Почти никогда.
   ИТ директор
 
8 - 30.01.18 - 20:09
Если ВТ большая, скуль преобразует твой запрос в соединение с врем. таблицей. Возможно индекс ВТ в этом случае будет использован. Но это не точно.
   ИТ директор
 
9 - 30.01.18 - 20:10
лучше не гадать и сделать (6) но вообще пофигу это всё
   tesseract
 
10 - 30.01.18 - 20:11
(3) А где у тебя соединение? У тебя тупой скан.
(6) Если нет RLS там скучно все.
 
 Рекламное место пустует
   H A D G E H O G s
 
11 - 30.01.18 - 20:11
Если ВТ большая - то такой ВТ быть не должно. Редким исключением могут быть какие-нибудь зубодробительные запросы с несколькими таблицами и группировками.
   ИТ директор
 
12 - 30.01.18 - 20:14
Да, если ВТ большая, лучше сразу делать соединение справочника с виртуальной таблицей.
   ИТ директор
 
13 - 30.01.18 - 20:14
ВТ = врем. таблица
   ИТ директор
 
14 - 30.01.18 - 20:15
Т.к. выборка во врем. таблицу это всегда нагрузка на TempDB
   PiotrLoginov
 
15 - 30.01.18 - 20:17
ок. спасибо всем. Я сам тут подумал... использование В ()  означает, что в скобках массив (список) значений. Какая уж там индексация.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует