Имя: Пароль:
1C
1С v8
вопрос про запрос
,
0 Kamas
 
09.04.14
14:13
Понимаю что вопрос глупый но все же.
Есть запрос
ВЫБРАТЬ
    Остатки.Счет КАК СчетУчета,
    Остатки.Подразделение КАК Подразделение,
    Остатки.Субконто1 КАК Номенклатура,
    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК ДокументОприходованияДата,
    Остатки.Субконто2 КАК ДокументОприходования,
    &ПустойСклад КАК Склад,
    Остатки.Организация КАК Организация,
    СУММА(ЕСТЬNULL(Остатки.КоличествоОстатокДт, 0)) КАК КоличествоПоСкладу,
    СУММА(ЕСТЬNULL(Остатки.КоличествоОстатокДт, 0)) КАК Количество,
    СУММА(ЕСТЬNULL(Остатки.СуммаОстатокДт, 0)) КАК Стоимость,
    СУММА(ЕСТЬNULL(Остатки.СуммаНУОстатокДт, 0)) КАК СтоимостьНУ,
    СУММА(ЕСТЬNULL(Остатки.СуммаПРОстатокДт, 0)) КАК СтоимостьПР,
    СУММА(ЕСТЬNULL(Остатки.СуммаВРОстатокДт, 0)) КАК СтоимостьВР
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&МоментВремени, Счет В (&СчетаУчетаНП), &ВидыСубконтоНП, (Подразделение = &Подразделение ИЛИ Подразделение ЕСТЬ NULL) И Субконто1 В (&МассивНоменклатуры) И Организация = &Организация) КАК Остатки
    

СГРУППИРОВАТЬ ПО
    Остатки.Счет,
    Остатки.Подразделение,
    Остатки.Субконто1,
    Остатки.Субконто2,
    Остатки.Организация
как можно ускорить его выполнение. запрос по 41.1 счету субконто номенклатура и партии когда в номенклатуре более 40 позиций запрос может выполняться несколько секунд
1 Мимохожий Однако
 
09.04.14
14:15
Приведение типа
Поля исходных таблиц могут иметь составной тип. Для таких полей возникает необходимость привести значения поля к какому-либо определенному типу.

<Приведение типа>
      |
      ВЫРАЗИТЬ ( <Выражение> КАК <Тип значения> )
                                                    |
                                                    БУЛЕВО |
ЧИСЛО [(Длина[, Точность])] |
СТРОКА [(Длина)] |
ДАТА |
<Имя таблицы>
                                                                 <Длина> - ЧИСЛО; <Точность> - ЧИСЛО


<Выражение> приводится к одному из примитивных типов, или к ссылочному типу данных; в последнем случае <Имя таблицы> указывает на соответствующую таблицу информационной базы.

Если <Выражение> содержит в составном типе требуемый <Тип значения>, то приведение типа считается осуществимым, и для каждого значения указанного типа результатом будет это самое значение. Для значений других типов результатом приведения типа будет значение NULL.

Если <Выражение> не содержит в составном типе требуемый <Тип значения>, то выполнение данного запроса завершится ошибкой из-за принципиальной невозможности совершить приведение типов.

Для <Тип значения> СТРОКА с указанием длины максимальный размер строки составляет 1024.
2 Maxus43
 
09.04.14
14:16
(Подразделение = &Подразделение ИЛИ Подразделение ЕСТЬ NULL)

енто что?

Субконто1 В (&МассивНоменклатуры) - может поможет изначально сформировать ВТ, проиндексировать поле и по нему отбор сделать
3 Kamas
 
09.04.14
14:18
(1) не понял как это может помочь
4 lxndr
 
09.04.14
14:18
(1) что приводить? Вроде нету разыменований составных
5 Kamas
 
09.04.14
14:20
(2) 1 это то что в бухгалтерии может и не быть подразделения как класса
насчет второго можно и подумать
6 vicof
 
09.04.14
14:26
(0) isNULL нафиг не нужен
7 vicof
 
09.04.14
14:28
(0) Сколько элементов в реузльтате запроса выводится?
8 Kamas
 
09.04.14
14:32
сколько номенклатуры столько и элементов
9 GROOVY
 
09.04.14
14:33
ЕСТЬNULL нафиг не надо. Группировка нафиг не нужна.
10 GROOVY
 
09.04.14
14:34
Условия ВТ "И" заменить на оператор "В"
11 vicof
 
09.04.14
14:34
(8) Я об объеме базы говорю
12 Kamas
 
09.04.14
14:38
база большая
на 25 гигов
13 Kamas
 
09.04.14
14:39
(9) ЕСТЬ NULL врятли замедлит выполнение запроса
14 Kamas
 
09.04.14
14:40
(10) не понял
15 vicof
 
09.04.14
14:59
(12) Ну так если у тебя там 500 тыщ элементов номенклатуры, естественно, твой запрос будет долго работать.
16 Kamas
 
09.04.14
15:01
(15) ну их там не 500 тыщ но порядок верный  что с этим делать то??
17 vicof
 
09.04.14
15:06
(16) Выбирать порциями, например. Смотря зачем вообще этот запрос нужен.
18 ramir
 
09.04.14
15:09
Без Субконто1 В (&МассивНоменклатуры) запрос долго работает?
19 ramir
 
09.04.14
15:15
(5) В любом случае подразделение не будет null, максимум Значение(Справочник.ПодразделенияОрганизации.ПустаяСсылка)
Не помню как справочник с подразделениями называется.
20 GROOVY
 
09.04.14
15:16
(13) Еще как замедлит. Особенно в условии ВТ.
21 Kamas
 
09.04.14
15:20
(20) ага
22 vicof
 
09.04.14
15:20
23 GROOVY
 
09.04.14
15:27
(14) (Организация, Подразделение, Субконто1) В (ВЫБРАТЬ блаблабла)
24 Kamas
 
09.04.14
15:30
(23) это доли секунды
25 Kamas
 
09.04.14
15:30
причем сотые
26 Kamas
 
09.04.14
15:33
ладно всем спасибо
27 GROOVY
 
09.04.14
16:32
(24) Ничего подобного. Учитывая объем данных, 1 проход или 3 - это существенно.