Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   УТ10.3 У кого проблемы со скоростью списания партий, ходь сюды (http://forums.kuban.ru/f1040/ut10_3_u_kogo_problemy_so_skorost-yu_spisaniya_partij_hod-_syudy-2892325.html)

Billi 01.08.2012 14:41

УТ10.3 У кого проблемы со скоростью списания партий, ходь сюды
 
УТ10.3, файловый вариант (на скуле не проверял, но скорее всего то же самое, хотя может и нет, скуль ведь умнее одноэски :) )
Если включен учет партий по складам, то делаем следующие:

ОбщийМодуль.УправлениеЗапасамиПартионныйУчет
...
Процедура ЗаполнитьЗапросПартийНаСкладахУпр
...
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(
| &Дат,
| Номенклатура В
| (ВЫБРАТЬ
| РегистрСведений.СписанныеТовары.Номенклатура
| ИЗ
| РегистрСведений.СписанныеТовары
| ГДЕ
| РегистрСведений.СписанныеТовары.Регистратор = &Ссылка)" + ?(ВестиПартионныйУчетПоСкладам, "
| И (Склад В
//Изменено: Bill
//| (ВЫБРАТЬ
//| РегистрСведений.СписанныеТовары.Склад
//| ИЗ
//| РегистрСведений.СписанныеТовары
//| ГДЕ
//| РегистрСведений.СписанныеТовары.Регистратор = &Ссылка) ИЛИ Склад = &ПустойСклад)", "") + ") КАК ПартииТоваровНаСкладах
//---- Заменено на: ----
| (ВЫБРАТЬ &ПустойСклад
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РегистрСведений.СписанныеТовары.Склад
| ИЗ
| РегистрСведений.СписанныеТовары
| ГДЕ
| РегистрСведений.СписанныеТовары.Регистратор = &Ссылка))", "") + ") КАК ПартииТоваровНаСкладах
/// Bill

Ну и по аналогии тоже самое в процедурах:
ЗаполнитьЗапросПартийНаСкладахДляОтложеннойОтгрузкиУпр
ЗаполнитьЗапросПартийНаСкладахДляСписанияПоОрдернойСхемеУпр

У меня сорость проведения документов реализация увеличилась раз в 30, ибо индексы заработали :)

angro 01.08.2012 15:09

кайф,
а тебе за оптимизацию отдельно доплачивают или так из любви к искусству?

Lexusss 01.08.2012 15:10

На скуле наоборот будет медленнее работать, по идее - это ж вложенный запрос с объединением.
То, что движок исполнения запросов в файловой 1С не использует индексы по конструкциям вида "Реквизит = &Значение1 ИЛИ Реквизит = &Значение2" - это избитый баян. Для скуля же все зависит от наполненности индекса по этим измерениям: сканить или использовать индекс. В файловой базе, очевидно, никакой статистики нет.
Кроме того, очень странно говорить об использовании индекса по складам, когда у нас в начале идет индекс по номенклатуре. Сколько же у вас в базе складов по сравнению с номенклатурой? Если система действительно получает выигрыш от поиска по двум значениям, нежели от скана. Тем более, что сначала идет опять же сложное наложение условия по номенклатуре. При небольшой плотности индекса оптимизатор SQL даже игнорирует индекс по сотням позиций номенклатуры... А тут - склады, коих в базе обычно несколько штук.
ПЫСЫ: В MS SQL статистика индекса ведется только по первому измерению составного индекса. Так что тут оптимизатор может косячить с использованием индекса позря. Может это 1С его так подстегивают.

Billi 01.08.2012 15:27

2-Lexusss >Я не знаю, чего там одинэска думает в файловом режиме, какой там план - не понятно.
Там же ведь кроме составного индекса есть ещё персональные индексы на Номенклатура и Склад.
Так что тёмный лес, чего она там крутит :)

Billi 01.08.2012 15:28

1-angro >Комплексно :)

Lexusss 01.08.2012 15:33

(3) Ты скажи, сколько у тебя разных складов и сколько номенклатуры в таблице остатков?

Billi 01.08.2012 16:21

5-Lexusss >Номенклатуры - 20642, складов 25.

allarkoms 17.07.2013 17:49

Реально помогло. Причем именно в SQL базе. Спасибо !!!


Текущее время: 10:32. Часовой пояс GMT +3.