| 
    
        
     
     | 
    
    
  | 
Оптимизация регистров сведений | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Sasha_1CK    
     02.11.17 
            ✎
    10:08 
 | 
         
        Дано.
 
        Вариант 1 РС1 Изм1 Изм2 Изм3 Изм4 Рес1 Вариант 2 РС1 Изм1 Изм2 Рес1 РС2 Изм1 Изм3 РС3 Изм1 Изм3 Запись в регистр - одноразовая. Чтение из регистра - очень много При получении информации всегда используется фильтр Изм2, Изм3, Изм4 Вопрос какой вариант будет работать быстрее запрос с фильтром к одному общему регистру. или получение данных из 3 регистров в ВТ и внутренне соединение по изм1?  | 
|||
| 
    1
    
        youalex    
     02.11.17 
            ✎
    10:10 
 | 
         
        >>При получении информации всегда используется фильтр Изм2, Изм3, Изм4 
 
        Эти измерения должны быть в начале.  | 
|||
| 
    2
    
        Sasha_1CK    
     02.11.17 
            ✎
    10:12 
 | 
         
        (1)  принято.     
         | 
|||
| 
    3
    
        Мимохожий Однако    
     02.11.17 
            ✎
    10:13 
 | 
         
        Убери ИЗМ1, если не используется     
         | 
|||
| 
    4
    
        MrStomak    
     02.11.17 
            ✎
    10:13 
 | 
         
        (0) Если невозможно поставить в начало, то выбрать среди Изм2, Изм3, Изм4 наиболее селективное измерение и проставить ему флаг индексирования.     
         | 
|||
| 
    5
    
        Sasha_1CK    
     02.11.17 
            ✎
    10:15 
 | 
         
        То есть вариант 1 быстрее 2?     
         | 
|||
| 
    6
    
        эс-образник    
     02.11.17 
            ✎
    10:17 
 | 
         
        Однозначно вариант 1. СУБД это сделает гораздо лучше, чем выборка из нескольких таблиц с соединением.     
         | 
|||
| 
    7
    
        Sasha_1CK    
     02.11.17 
            ✎
    10:25 
 | 
         
        (6) количеством записей в таблице можно пренебречь?
 
        Меня просто смущает что во втором варианте у меня например в РС1 - 10 записей в РС2 - 20 записей В РС3 - 2 записи А во втором варианте получится в одной таблице - 400 записей  | 
|||
| 
    8
    
        Alex_MA    
     02.11.17 
            ✎
    10:42 
 | 
         
        (1)И каждое проиндексировано, чтобы создался составной индекс по полям Изм1, Изм2, Изм3.....
 
        Чтобы не было операции KeyLuukUp  | 
|||
| 
    9
    
        тарам пам пам    
     02.11.17 
            ✎
    11:32 
 | 
         
        (7) а вот в этом случае быстрее будет раздельными регистрами - при наличии фильтров выборка из каждого из регистров будет 1-2 строки с поиском по индексу, соединение таких таблиц много времени не займет. 
 
        А сводный регистр со всеми комбинациями измерений разрастется крайне быстро.  | 
|||
| 
    10
    
        mistеr    
     02.11.17 
            ✎
    11:45 
 | 
         
        Я не понял, если по Изм4 всегда идет отбор, то почему его нигде нет во втором варианте?     
         | 
|||
| 
    11
    
        Sasha_1CK    
     02.11.17 
            ✎
    13:04 
 | 
         
        (10) Это я опечатался.
 
        РС3 Изм1 Изм4  | 
|||
| 
    12
    
        Sasha_1CK    
     02.11.17 
            ✎
    13:11 
 | 
         
        (9) 
 
        И где грань - за которой 3 регистра становятся быстрее чем 1?  | 
|||
| 
    13
    
        Йохохо    
     02.11.17 
            ✎
    13:16 
 | 
         
        (12) если записей и будет около 400 то нигде. И любая оптимизация только во вред и трата времени. Вообще судя по "внутренне соединение по изм1" у Вас изм1 будет в "частых" запросах, а изм234 в отчетах     
         | 
|||
| 
    14
    
        h-sp    
     02.11.17 
            ✎
    13:18 
 | 
         
        (12) ну если меньше миллиона записей, забей тогда. Чего ты заморочился из-за 20 записей?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |