Имя: Пароль:
1C
1С v8
Отчет на СКД вешает SQL сервак
0 golden-pack
 
01.02.12
10:52
1c 8.2.14.537    ms sql 2008  (2x Xeon E5640 2,67 AES, 24 гига, RAID-10 на 10 SAS дисках по 450 гигов.)

Есть отчет на скд, который вешает sql сервак.
(*)Ситуация такая: 1. начинаем формировать запрос. 2. подвисает сервер sql- отваливается сеть на скл сервере - все колом. 3. убиваем сессию - все отвисает и начинает работать.

На SQL стоит галка: Поддерживать приоритет SQL сервера(priority boost), завтра с утра ее планируется убрать и повторить(*).
Возможно из за нее.

Может запрос переписать на временные таблицы ... кто даст дельный совет.

Запрос такой:

ВЫБРАТЬ
   ВложенныйЗапрос.Номенклатура,
   СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
   СУММА(ВложенныйЗапрос.Себестоимость) КАК Себестоимость,
   СУММА(ВложенныйЗапрос.Количество) КАК Количество,
   ВложенныйЗапрос.Подразделение,
   СУММА(ВложенныйЗапрос.СкидкиВЦене) КАК СкидкиВЦене,
   СУММА(ВложенныйЗапрос.СкидкиНакопительные) КАК СкидкиНакопительные,
   СУММА(ВложенныйЗапрос.РасходыНаПродажу) КАК РасходыНаПродажу,
   СУММА(ВложенныйЗапрос.ОперационныеРасходы) КАК ОперационныеРасходы,
   СУММА(ВложенныйЗапрос.ТранспортныеРасходы) КАК ТранспортныеРасходы
ИЗ
   (ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Справочник.НоменклатурныеГруппы) КАК Номенклатура,
       ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
       0 КАК Себестоимость,
       0 КАК Количество,
       0 КАК СкидкиВЦене,
       0 КАК СкидкиНакопительные,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Справочник.ПодразделенияОрганизаций) КАК Подразделение,
       0 КАК РасходыНаПродажу,
       0 КАК ОперационныеРасходы,
       0 КАК ТранспортныеРасходы
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
               &НачалоПериода,
               &КонецПериода,
               ,
               СчетДт В ИЕРАРХИИ (&Счет44)
                   ИЛИ СчетДт В ИЕРАРХИИ (&Счет62),
               ,
               СчетКт В ИЕРАРХИИ (&Счет9001),
               ,
               ) КАК ХозрасчетныйОборотыДтКт
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Справочник.НоменклатурныеГруппы),
       0,
       ХозрасчетныйОборотыДтКт.СуммаОборот,
       ХозрасчетныйОборотыДтКт.КоличествоОборотКт,
       0,
       0,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Справочник.ПодразделенияОрганизаций),
       0,
       0,
       0
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
               &НачалоПериода,
               &КонецПериода,
               ,
               СчетДт В ИЕРАРХИИ (&Счет9002),
               ,
               СчетКт В ИЕРАРХИИ (&Счет43)
                   ИЛИ СчетКт В ИЕРАРХИИ (&Счет41) {(СчетКт В ИЕРАРХИИ (&Счет43)
                   ИЛИ СчетКт В ИЕРАРХИИ (&Счет41)) КАК Поле2},
               ,
               ) КАК ХозрасчетныйОборотыДтКт
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Справочник.НоменклатурныеГруппы),
       0,
       0,
       0,
       ХозрасчетныйОборотыДтКт.СуммаОборот,
       0,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК Справочник.ПодразделенияОрганизаций),
       0,
       0,
       0
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт В ИЕРАРХИИ (&Счет9007), , СчетКт В ИЕРАРХИИ (&Счет44), , ВЫРАЗИТЬ(СубконтоКт1 КАК Справочник.СтатьиЗатрат) В ИЕРАРХИИ (&СписокСтатей_СкидкиВЦене)) КАК ХозрасчетныйОборотыДтКт
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Справочник.НоменклатурныеГруппы),
       0,
       0,
       0,
       0,
       ХозрасчетныйОборотыДтКт.СуммаОборот,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК Справочник.ПодразделенияОрганизаций),
       0,
       0,
       0
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт В ИЕРАРХИИ (&Счет9007), , СчетКт В ИЕРАРХИИ (&Счет44), , ВЫРАЗИТЬ(СубконтоКт1 КАК Справочник.СтатьиЗатрат) В ИЕРАРХИИ (&СписокСтатей_СкидкиНакопительные)) КАК ХозрасчетныйОборотыДтКт
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Справочник.НоменклатурныеГруппы),
       0,
       0,
       0,
       0,
       0,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Справочник.ПодразделенияОрганизаций),
       ХозрасчетныйОборотыДтКт.СуммаОборот,
       0,
       0
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт В ИЕРАРХИИ (&Счет9007), , СчетКт В ИЕРАРХИИ (&Счет44), , (НЕ ВЫРАЗИТЬ(СубконтоКт1 КАК Справочник.СтатьиЗатрат) В ИЕРАРХИИ (&НЕСписокСтатей_РасходыНаПродажу))) КАК ХозрасчетныйОборотыДтКт
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Справочник.НоменклатурныеГруппы),
       0,
       0,
       0,
       0,
       0,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Справочник.ПодразделенияОрганизаций),
       0,
       ХозрасчетныйОборотыДтКт.СуммаОборот,
       0
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт В ИЕРАРХИИ (&Счет90082), , СчетКт В ИЕРАРХИИ (&Счет26), , ) КАК ХозрасчетныйОборотыДтКт
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Справочник.НоменклатурныеГруппы),
       0,
       0,
       0,
       0,
       0,
       ВЫРАЗИТЬ(ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Справочник.ПодразделенияОрганизаций),
       0,
       0,
       ХозрасчетныйОборотыДтКт.СуммаОборот
   ИЗ
       РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт В ИЕРАРХИИ (&Счет90081), , СчетКт В ИЕРАРХИИ (&Счет23), , ) КАК ХозрасчетныйОборотыДтКт) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.Подразделение
1 golden-pack
 
01.02.12
10:53
(0) (*) Формировать отчет,а не запрос.
2 golden-pack
 
01.02.12
10:53
(*) 3. Убиваем сессию 1с.
3 golden-pack
 
01.02.12
10:54
Еще такой вариант: последовательно выполнить каждый запрос, поместить результаты в ТЗ и передать внешним набором данных в СКД
4 rs_trade
 
01.02.12
11:01
Щито у вас в Max Degree of Parallelism?
5 golden-pack
 
01.02.12
11:05
Max Degree of Parallelism=0
6 rs_trade
 
01.02.12
11:07
(5) ставь 1
7 golden-pack
 
01.02.12
11:09
(6) какие аргументы или что почитать
8 ptiz
 
01.02.12
11:11
priority boost - убрать обязательно, из-за этого всё колом и встает

условия "В ИЕРАРХИИ" попробовать переписать на "В "
9 golden-pack
 
01.02.12
11:14
(8) Ок. Спасибо. А по поводу Max Degree of Parallelism можете посоветовать ?
10 rs_trade
 
01.02.12
11:30
(9) ИТС есть? Набери в поиске эти самые английские буковки, и почитай.
11 golden-pack
 
01.02.12
11:34
(10) Есть ИТС, набрал . Ничего не найдено.
12 Господин ПЖ
 
01.02.12
11:38
(7) распердоливание запроса про процам в условиях 1С вредно...
13 rs_trade
 
01.02.12
11:41
(11) Плохо набрал. Администрирование - особенности использования скуля. Тут оно.
14 shuhard
 
01.02.12
11:42
(11) лан свистеть
http://its.1c.ru/db/metod81#content:2379:1
15 golden-pack
 
02.02.12
02:55
Статью нашел. Прочитал. Спасибо все понятно.
Max Degree of Parallelism поставил = 2 (из 16), priority boost = 0
Теперь запрос не вешает скл, а грузит два ядра под 100%.
Спасибо!
16 ptiz
 
02.02.12
09:28
(15) И долго оно так висит?
17 golden-pack
 
02.02.12
12:21
(16) Минуту
18 golden-pack
 
02.02.12
12:22
Пробовал на 4х ядрах, на 6,8 - время выполнения всегда около минуты, но все 4,6,8 ядер под 100%