|
Получение данных из Регистра сведений | ☑ | ||
---|---|---|---|---|
0
guitar_player
01.08.11
✎
21:00
|
Есть регистр сведений в котором 1,7 млн записей.
Простая выборка из него занимает порядка 8ми секунд ВЫБРАТЬ СкидкиНаценкиНоменклатурыСрезПоследних.Номенклатура, СкидкиНаценкиНоменклатурыСрезПоследних.ПолучательСкидки, СкидкиНаценкиНоменклатурыСрезПоследних.ТипЦен, СкидкиНаценкиНоменклатурыСрезПоследних.ВидСкидки, СкидкиНаценкиНоменклатурыСрезПоследних.Значение ИЗ РегистрСведений.СкидкиНаценкиНоменклатуры.СрезПоследних( &Период, Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ_ТаблицаНоменклатуры.Номенклатура ИЗ ВТ_ТаблицаНоменклатуры КАК ВТ_ТаблицаНоменклатуры) И ТипЦен = &ТипЦен И ПолучательСкидки В (&П1, &П2, &П3)) КАК СкидкиНаценкиНоменклатурыСрезПоследних в ВТ_ТаблицаНоменклатуры примерно 800 уникальных записей Регистр имеет 3 измерения Номенклатура, ТипЦены, ПолучательСкидки(составной - 3 типа. П1, П2, П3 как раз разного типа). Подскажите, пожалуйста, есть какой нибудь вариант как можно улучшить работу запроса? Кроме как переделывать структуру регистра, хотя не уверен, что переделка исправит положение. |
|||
1
Мастер1С
01.08.11
✎
21:15
|
ну ты барин задачки ставишь...
|
|||
2
Doomer
01.08.11
✎
21:16
|
(0) Поменять железо не предлагать?
|
|||
3
Reset
01.08.11
✎
21:46
|
Попробуй так задать условие:
ПолучательСкидки В (&П1, &П2, &П3) И ТипЦен = &ТипЦен И Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ_ТаблицаНоменклатуры.Номенклатура ИЗ ВТ_ТаблицаНоменклатуры КАК ВТ_ТаблицаНоменклатуры)) Не уверен что поможет, но попытка не пытка |
|||
4
Grusswelle
01.08.11
✎
21:47
|
(0) Индексы не предлагать?
|
|||
5
Grusswelle
01.08.11
✎
21:50
|
(0) + Номенклатуры сколько? Сначала сформировать список номенклатуры, например, потом задать его в качестве параметра?
|
|||
6
acsent
01.08.11
✎
21:51
|
попробуй убрать РАЗЛИЧНЫЕ
|
|||
7
acsent
01.08.11
✎
21:52
|
передвинь номенклатуру на последнее место
|
|||
8
guitar_player
02.08.11
✎
06:01
|
(4) предлагать
(5) так и есть в ВТ_ТаблицаНоменклатуры отобранная номенклатура для заказа. Проанализировав шаблоны заказов получается в среднем в выборке уникальной номенклатуры 800шт. (3),(6), (7) спасибо, сейчас доберусь до компа с базой проверю. Может изменить порядок измерений в регистре? Сейчас - Номенклатура, Получатель, ТипЦены. |
|||
9
braslavets
02.08.11
✎
08:58
|
(0) Вообще, конструкции типа "что-то В (что-то там)" довольно тяжелые для оптимизатора. Я бы попробовал ВНУТРЕННЕЕ СОЕДИНЕНИЕ. Сколько записей возвращает запрос? Насколько актуально получение среза цен на произвольную дату? Может есть смысл сделать регистр, в котором держать "срез последних" и обращаться к нему?
|
|||
10
Широкий
02.08.11
✎
09:10
|
Убери различные
|
|||
11
Широкий
02.08.11
✎
09:12
|
если ПолучательСкидки это контрагент - поставь его первым измерением.. ИМХО записи будут более уникальны
|
|||
12
Axel2009
02.08.11
✎
09:16
|
ВЫБРАТЬ
СкидкиНаценкиНоменклатурыСрезПоследних.Номенклатура, СкидкиНаценкиНоменклатурыСрезПоследних.ПолучательСкидки, СкидкиНаценкиНоменклатурыСрезПоследних.ТипЦен, СкидкиНаценкиНоменклатурыСрезПоследних.ВидСкидки, СкидкиНаценкиНоменклатурыСрезПоследних.Значение ИЗ РегистрСведений.СкидкиНаценкиНоменклатуры.СрезПоследних( &Период, Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ_ТаблицаНоменклатуры.Номенклатура ИЗ ВТ_ТаблицаНоменклатуры КАК ВТ_ТаблицаНоменклатуры) И ТипЦен = &ТипЦен И ПолучательСкидки В (&П1)) КАК СкидкиНаценкиНоменклатурыСрезПоследних сколько выполняется? |
|||
13
Широкий
02.08.11
✎
09:20
|
ПолучательСкидки(составной - 3 типа. П1, П2, П3 как раз разного типа).
Ааа. Вот она собака и порылась. Попробуй сделать или через "ИЛИ" и объекидением 3-ех запросов |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |