|
Вопрос по производительности Запроса почему так? | ☑ | ||
---|---|---|---|---|
0
y22-k
17.05.12
✎
10:41
|
Добрый день подскажите пожалуйста по запросу
Выбрать &ТипЦен В (&МТиповЦены) поместить ТипЦены_ //вообще тут запрос с массивом типов цен индекс по типу цен //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦен, ЦеныНоменклатурыСрезПоследних.Цена, ИСТИНА КАК Акция ПОМЕСТИТЬ ЦеныАкции ИЗ ТипЦены_ КАК ТипЦены_ ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних ПО ТипЦены_.ТипЦены = ЦеныНоменклатурыСрезПоследних.ТипЦен ГДЕ НЕ ЦеныНоменклатурыСрезПоследних.Номенклатура ЕСТЬ NULL и ЦеныНоменклатурыСрезПоследних.Номенклатура В (&Номенклатура) Очень долго выполняется второй пакет чуть меньше секунды причем тупо запрос к регистру цены без отборов около 1.3 секунды 65000 записей причем если я ставлю массив номенклатуры не в условия а в скобки еще медленнее, внутреннее соединение тоже эффекта никакого не дает что еще можно придумать |
|||
1
Господин ПЖ
17.05.12
✎
10:42
|
я бы тоже тормозил...
ГДЕ и ЦеныНоменклатурыСрезПоследних.Номенклатура В (&Номенклатура) |
|||
2
Ненавижу 1С
гуру
17.05.12
✎
10:43
|
ТипЦен индексирован или нет?
|
|||
3
fisher
17.05.12
✎
10:47
|
"причем если я ставлю массив номенклатуры не в условия а в скобки еще медленнее"
Да ну. Покажи как делаешь. Сколько позиций в массиве? |
|||
4
y22-k
17.05.12
✎
10:47
|
(1) читай внимательнее
я писал причем если я ставлю массив номенклатуры не в условия а в скобки еще медленнее (2) Да |
|||
5
y22-k
17.05.12
✎
10:48
|
(3) 35 но бывает и по 100
|
|||
6
Господин ПЖ
17.05.12
✎
10:49
|
(4) ну попробуй запихнуть отдельно во времянки, потом соединяй
|
|||
7
Господин ПЖ
17.05.12
✎
10:49
|
чо там с индексами то в итоге...
|
|||
8
fisher
17.05.12
✎
10:49
|
А типов цен сколько?
|
|||
9
fisher
17.05.12
✎
10:50
|
И вообще - озвучь строктуру регистра. Какие измерения и в каком порядке, ресурсы, реквизиты.
|
|||
10
Bober
17.05.12
✎
10:51
|
(0)
.СрезПоследних(&Дата, ТипЦен В (ВЫБРАТЬ ТипЦены_.ТипЦены ИЗ ТипЦены_ КАК ТипЦены_) И Номенклатура В(&Номенклатура)) |
|||
11
Bober
17.05.12
✎
10:53
|
(10)
"ЛЕВОЕ СОЕДИНЕНИЕ" и "ГДЕ НЕ ЦеныНоменклатурыСрезПоследних.Номенклатура ЕСТЬ NULL и ЦеныНоменклатурыСрезПоследних.Номенклатура В (&Номенклатура) " уже не потребуется |
|||
12
luckyluke
17.05.12
✎
10:53
|
(0) Может стоит еще и по номенклатуре соединять?
|
|||
13
luckyluke
17.05.12
✎
10:54
|
(12) или их нет в таблице ТипЦены_ ?
|
|||
14
fisher
17.05.12
✎
10:55
|
(10) Во-во. При нормальной структуре регистра тормозов быть не должно.
|
|||
15
luckyluke
17.05.12
✎
10:55
|
+(13) Как на счет тогда &Номенклатура запихнуть в ТЗ, соединить с ТипЦены_ и потом соединять по типу цен и номенклатуре?
|
|||
16
y22-k
17.05.12
✎
10:56
|
(1) я сам офигел первый вариант в среднем 0.7-0.9 секунды
второй //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦен, ЦеныНоменклатурыСрезПоследних.Цена, ИСТИНА КАК Акция, "" КАК Поле1, "" КАК Поле2, 0 КАК Поле3 ПОМЕСТИТЬ ЦеныАкции ИЗ ТипЦены_ КАК ТипЦены_ ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура В (&Номенклатура)) КАК ЦеныНоменклатурыСрезПоследних ПО ТипЦены_.ТипЦены = ЦеныНоменклатурыСрезПоследних.ТипЦен ; этот 1.7 - 3.2 иногда до 10 сек |
|||
17
y22-k
17.05.12
✎
10:57
|
(12) Нет
|
|||
18
Bober
17.05.12
✎
10:58
|
(16) как вариант, нет индекса, так как у типового регистра цен порядок измерений: типцен, номенклатура. Нет индекса по номенклатуре
|
|||
19
y22-k
17.05.12
✎
10:58
|
(14) регистр типовой типЦенНоменклатуры
|
|||
20
Bober
17.05.12
✎
10:58
|
(16) но если еще добавишь условие по типц цен, то производительность пойдет в +
|
|||
21
y22-k
17.05.12
✎
11:00
|
(18) действительно нет
(20) ок спс попробую |
|||
22
y22-k
17.05.12
✎
11:41
|
(10) чуть быстрее 08-1,1, но самое быстрое почему-то оказалось
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦен, ЦеныНоменклатурыСрезПоследних.Цена, ИСТИНА КАК Акция, "" КАК Поле1, "" КАК Поле2, 0 КАК Поле3 ПОМЕСТИТЬ ЦеныАкции ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( &Дата, ТипЦен В (ВЫБРАТЬ ТипЦены_.ТипЦены ИЗ ТипЦены_ КАК ТипЦены_) //И Номенклатура В (&Номенклатура) ) КАК ЦеныНоменклатурыСрезПоследних Где ЦеныНоменклатурыСрезПоследних.Номенклатура В(&Номенклатура) ; 0,65 секунд в среднем |
|||
23
cViper
17.05.12
✎
12:03
|
(0) Итоги регистра на какую дату рассчитаны?
|
|||
24
unregistered
17.05.12
✎
12:26
|
А если так:
ВЫБРАТЬ Номенклатура.Номенклатура КАК Номенклатура, ТипыЦенНоменклатуры.ТипЦены КАК ТипЦены ПОМЕСТИТЬ НоменклатураИТипыЦен ИЗ &Номенклатура КАК Номенклатура, &ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры ИНДЕКСИРОВАТЬ ПО Номенклатура, ТипЦены ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦен, ЦеныНоменклатурыСрезПоследних.Цена, ИСТИНА КАК Акция ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, (Номенклатура, ТипЦен) В (ВЫБРАТЬ НоменклатураИТипыЦен.Номенклатура, НоменклатураИТипыЦен.ТипЦены ИЗ НоменклатураИТипыЦен КАК НоменклатураИТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних Вместо массивов в качестве параметров &Номенклатура и &ТипыЦенНоменклатуры в первом запросе передаются таблицы значений с соответствующими полями. |
|||
25
Bober
17.05.12
✎
12:42
|
(22) тогда надо смотреть что творится на SQL сервере (реже на сервере 1с), возможно давно не выполняли регламентные процедуры.
|
|||
26
fisher
17.05.12
✎
12:59
|
(0) Файловая?
|
|||
27
y22-k
17.05.12
✎
14:13
|
(26) SQL 2008
(24) попробую сейчас (25) Раз в Неделю Реорганизация индекса и раз в неделю перестройка индекса Обновление статистик 2 раза в день утром и вечером |
|||
28
Bober
17.05.12
✎
14:14
|
(27) если есть время, то посмотри планы запросов.
|
|||
29
y22-k
17.05.12
✎
14:15
|
(28) где их можно посмотреть?
|
|||
30
Bober
17.05.12
✎
14:20
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |