Гость
Форумы / [игнор отключен] [закрыт для гостей] / Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2 / 16 сообщений из 16, страница 1 из 1
18.01.2017, 15:53
    #39386958
Grobik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Доброго дня. Нужна помощь.
Имеется УПП 1.2 2007 года. Переписанная. Работает на sql server 2008 r2 developer/enterprise x64. 16 ядер / 32 потока, 192 Гбайт рама. Проц не грузит, память всю не ест.
Тормозит обработка ПодборНоменклатуры для самописного документа, самописной подсистемы. Текст запроса:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
ВЫБРАТЬ
	НоменклатураСправочник.Ссылка КАК Номенклатура
ПОМЕСТИТЬ втНоменклатура
ИЗ
	Справочник.Номенклатура КАК НоменклатураСправочник
ГДЕ
	НоменклатураСправочник.Родитель = &Родитель
	И НЕ НоменклатураСправочник.ИсключитьИзПрайсов

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ЕдиницыИзмерения.Владелец КАК Номенклатура,
	МАКСИМУМ(ЕдиницыИзмерения.Коэффициент) КАК ОптоваяУпаковка
ПОМЕСТИТЬ втУпаковки
ИЗ
	Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
	НЕ ЕдиницыИзмерения.ПометкаУдаления
	И ЕдиницыИзмерения.Владелец В
			(ВЫБРАТЬ
				втНоменклатура.Номенклатура
			ИЗ
				втНоменклатура КАК втНоменклатура)
	И ЕдиницыИзмерения.ЕдиницаПоКлассификатору = &ОптоваяУпаковка

СГРУППИРОВАТЬ ПО
	ЕдиницыИзмерения.Владелец

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	ТоварыНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ втТоварыНаСкладах
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(
			&Дата,
			Склад = &Склад
				И Номенклатура В
					(ВЫБРАТЬ
						втНоменклатура.Номенклатура
					ИЗ
						втНоменклатура КАК втНоменклатура)
				И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
				И СерияНоменклатуры = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
				И Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)) КАК ТоварыНаСкладахОстатки

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура,
	ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоРезерв
ПОМЕСТИТЬ втТоварыВРезервеНаСкладах
ИЗ
	РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
			&Дата,
			Склад = &Склад
				И Номенклатура В
					(ВЫБРАТЬ
						втНоменклатура.Номенклатура
					ИЗ
						втНоменклатура КАК втНоменклатура)) КАК ТоварыВРезервеНаСкладахОстатки

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
ПОМЕСТИТЬ втЦены
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
			&Дата,
			ТипЦен = &ТипЦен
				И Номенклатура В
					(ВЫБРАТЬ
						втНоменклатура.Номенклатура
					ИЗ
						втНоменклатура КАК втНоменклатура)) КАК ЦеныНоменклатурыСрезПоследних

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаОптовая
ПОМЕСТИТЬ втЦеныОптовые
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
			&Дата,
			ТипЦен = &ТипЦенОптовая
				И Номенклатура В
					(ВЫБРАТЬ
						втНоменклатура.Номенклатура
					ИЗ
						втНоменклатура КАК втНоменклатура)) КАК ЦеныНоменклатурыСрезПоследних

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ПродажиОбороты.Номенклатура КАК Номенклатура,
	ВЫБОР
		КОГДА ПродажиОбороты.КоличествоОборот > 0
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК флЕстьПродажа
ПОМЕСТИТЬ втПродажи
ИЗ
	РегистрНакопления.Продажи.Обороты(
			&ДатаНачалаПродажи,
			&Дата,
			,
			Контрагент = &Контрагент
				И Номенклатура В
					(ВЫБРАТЬ
						втНоменклатура.Номенклатура
					ИЗ
						втНоменклатура КАК втНоменклатура)) КАК ПродажиОбороты

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	втНоменклатура.Номенклатура.Код КАК Код,
	втНоменклатура.Номенклатура.Артикул КАК Артикул,
	втНоменклатура.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	втНоменклатура.Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	втНоменклатура.Номенклатура.Набор КАК Набор,
	втНоменклатура.Номенклатура.Услуга КАК Услуга,
	втНоменклатура.Номенклатура,
	втНоменклатура.Номенклатура.Бренд КАК Бренд,
	втНоменклатура.Номенклатура.Родитель КАК Родитель,
	ЕСТЬNULL(втТоварыНаСкладах.КоличествоОстаток, 0) - ЕСТЬNULL(втТоварыВРезервеНаСкладах.КоличествоРезерв, 0) КАК КоличествоСвободныйОстаток,
	0 КАК КоличествоОстатокОрганизации,
	втЦены.Цена,
	втЦеныОптовые.ЦенаОптовая,
	втНоменклатура.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
	втУпаковки.ОптоваяУпаковка,
	ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры,
	ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество,
	ЛОЖЬ КАК ФлагУсловийПоставки,
	ПРЕДСТАВЛЕНИЕ(втНоменклатура.Номенклатура) КАК ПредставлениеНоменклатура,
	ПРЕДСТАВЛЕНИЕ(втНоменклатура.Номенклатура.ЕдиницаХраненияОстатков) КАК ПредставлениеЕдиницаИзмерения,
	ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ПредставлениеХарактеристикаНоменклатуры,
	ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Справочник.Качество.Новый)) КАК ПредставлениеКачество,
	ВЫБОР
		КОГДА втНоменклатура.Номенклатура.ЭтоГруппа
			ТОГДА "Группа"
		ИНАЧЕ ПРЕДСТАВЛЕНИЕ(втНоменклатура.Номенклатура.НоменклатурнаяГруппа)
	КОНЕЦ КАК ПредставлениеНоменклатурнаяГруппа,
	ЛОЖЬ КАК ПереходитьВверх,
	втПродажи.флЕстьПродажа
ИЗ
	втНоменклатура КАК втНоменклатура
		ЛЕВОЕ СОЕДИНЕНИЕ втТоварыНаСкладах КАК втТоварыНаСкладах
		ПО втНоменклатура.Номенклатура = втТоварыНаСкладах.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ втТоварыВРезервеНаСкладах КАК втТоварыВРезервеНаСкладах
		ПО втНоменклатура.Номенклатура = втТоварыВРезервеНаСкладах.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ втЦены КАК втЦены
		ПО втНоменклатура.Номенклатура = втЦены.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ втЦеныОптовые КАК втЦеныОптовые
		ПО втНоменклатура.Номенклатура = втЦеныОптовые.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ втУпаковки КАК втУпаковки
		ПО втНоменклатура.Номенклатура = втУпаковки.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ втПродажи КАК втПродажи
		ПО втНоменклатура.Номенклатура = втПродажи.Номенклатура
ГДЕ
	(ЕСТЬNULL(втТоварыНаСкладах.КоличествоОстаток, 0) - ЕСТЬNULL(втТоварыВРезервеНаСкладах.КоличествоРезерв, 0) > 0
			ИЛИ втНоменклатура.Номенклатура.ПризнакНоменклатуры = ЗНАЧЕНИЕ(Справочник.ПризнакиНоменклатуры.ПодЗаказ)
			ИЛИ втНоменклатура.Номенклатура.Услуга
			ИЛИ втНоменклатура.Номенклатура.ЭтоГруппа
			ИЛИ втНоменклатура.Номенклатура.Набор
			ИЛИ втНоменклатура.Номенклатура.Комплект)

УПОРЯДОЧИТЬ ПО
	ЭтоГруппа УБЫВ,
	втНоменклатура.Номенклатура.Наименование



Проблема вот в чем: При выборе &Родитель — достаточно большая группа товаров. Первый раз выполняется 25 секунд (в копии, в боевой базе от 25 до 90-120 и более, если совсем не повезет). Второй раз и все последующие (даже через час или два) Время- 2.165, Время- 2.146, Время- 2.156.

Или группа поменьше. Первый Время- 25.905. Дальше Время- 1.546, Время- 1.538 и т.д. Маленькая группа Время- 11.067, Время- 0.873, Время- 0.877, Время- 0.879.

Продолжу на примере первой группы.
Таблицы ВТ строк:
втНоменклатура 466
втУпаковки 433
втТоварыНаСкладах 138
втТоварыВРезервеНаСкладах 34
втЦены 161
втЦеныОптовые 300

Убираем выборку из ВТ (со всеми некрасивыми соединениями через точку) Время- 2.065, то есть не меняется вообще.
Убираем ТоварыВРезерве Время- 1.806, что уже немного получше. Убираем ТоварыНаСкладах Время- 1.665. То есть обрезанием этих регистров можно сэкономить 1/8 запроса, что не особо чувствительно.

Возвращаем все взад, убираем запрос к РегистрСведений.ЦеныНоменклатуры.СрезПоследних имеем Время- 0.489/0.490 стабильно.
Попробовал выбрать РС.ЦеныНоменклатуры &Дата, ТипЦен = &ТипЦен (без отбора по номенклатуре. ВЫШЛО 3422 СЕКУНДЫ. Номенклатуры порядка 160 000 позиций.

Начал изучать таблицы в скуле.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
N	Имя метаданных	Назначение метаданных	     Данные (КБ)	Индексы (КБ)    	Свободно (КБ)	Зарезервировано всего (КБ)
	Имя таблицы SQL	Кол-во строк				
7	РегистрНакопления.ТоварыВРезервеНаСкладах	4 695 104	     4 835 200	         11 664	        9 541 968
	_AccumRg13980	32 834 054				
16	РегистрНакопления.ТоварыНаСкладах	         2 158 328           1 247 600	         728	        3 406 656
	_AccumRg14040	14 022 291				
20	РегистрСведений.ЦеныНоменклатуры	         1 557 512	     2 829 728	         4 440	        4 391 680
	_InfoRg12489	10 116 446		


Затем запустил несколько скриптов с http://infostart.ru/public/308762/ SQL сервер 2008: обслуживание, анализ производительности
Результаты Степень фрагментации индексов
Первый запрос показывает текущую фрагментацию индексов базы
Было у всех трех регистров в районе 22%-24%, после отработки скриптов Реорганизация/Перестроение индексов из данной статьи (поменял только 30 на 20, чтобы нужным мне регистры тоже перестроились). Вышло 1,2%-1,4%. НО! Заметно скорость не поменялась. Все так-же первый запрос выполняется на порядок медленнее последующих.

DatbaseName TableName IndexName type_desc Fragmentation page_count partition_number sql Records count

Код: plaintext
1.
2.
3.
4.
5.
6.
DatbaseName	TableName	IndexName	               type_desc	Fragmentation	page_count	partition_number	sql	Records count

copy20160627	_InfoRg12489	_InfoR12489_ByRecorder_RN	NONCLUSTERED	1,21	        45 302	1	alter index [_InfoR12489_ByRecorder_RN] on [dbo].[_InfoRg12489] REBUILD with(maxdop = 4,  SORT_IN_TEMPDB = on)	1

copy20160627	_AccumRg14040	_Accum14040_ByRecorder_RN	NONCLUSTERED	1,28	        62 976	1	alter index [_Accum14040_ByRecorder_RN] on [dbo].[_AccumRg14040] REBUILD with(maxdop = 4,  SORT_IN_TEMPDB = on)	1

copy20160627	_AccumRg13980	_Accum13980_ByDims14581_RTRN	NONCLUSTERED	1,56	        232 920	1	alter index [_Accum13980_ByDims14581_RTRN] on [dbo].[_AccumRg13980] REBUILD with(maxdop = 4,  SORT_IN_TEMPDB = on)	1

Скачал последнюю УПП. Настройки РС. ЦеныНоменклатуры такие-же. В частности Измерение Номенклатура — Ведущее, Не индексировать.

Тогда из той-же статьи прогнал Отсутствующие индексы, вызывающие высокие издержки:

Результат запроса ADODB: 29 записей
Из интересующих регистров только:

Код: plaintext
1.
2.
TotalCost	avg_user_impact	TableName	EqualityUsage	InequalityUsage	IncludeCloumns	Records count

428 603	          72,7	      [copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]		[_Period], [_RecorderTRef], [_RecorderRRef], [_LineNo], [_Fld12491RRef], [_Fld12492RRef]	1	

На четвертой позиции. Выше (на первых трех) не интересные мне пока регистры подсистему интеграции с АТС.

Что можете подсказать в данной ситуации?
...
Рейтинг: 0 / 0
18.01.2017, 16:05
    #39386967
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
сделать параллельное выполнение разбитых запросов)
...
Рейтинг: 0 / 0
18.01.2017, 16:23
    #39386978
Grobik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Zerro,

Можно пример?

И поможет ли это это с запросом в первый раз. Когда скорость в 10 и более раз меньше?

Ну и вопрос " Отсутствующие индексы, вызывающие высокие издержки". Может это затормаживать? И нужно ли с этим бороться?
...
Рейтинг: 0 / 0
18.01.2017, 20:00
    #39387148
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
1. НоменклатураСправочник.Родитель = &Родитель

может так?:

НоменклатураСправочник.Ссылка в иерархии (&Родитель)

2. РегистрНакопления.ТоварыНаСкладах.Остатки(
&Дата,

Может нужно без даты? - подозреваю что здесь большего всего скорость падает.

3. РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
&Дата,
аналогично.

4. Запрос всегда выполняется для измерения скорости 1 раз. Потом выходите из базы и заново заходите. Только так меряется скорость.

5. Попробуйте убирать по 1 пакету (сначала остатки) и смотрите насколько меняется скорость запроса.


Найдете пакет отвечающий за падение скорости - пишите.
...
Рейтинг: 0 / 0
19.01.2017, 07:13
    #39387303
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
GrobikZerro,

Можно пример?

И поможет ли это это с запросом в первый раз. Когда скорость в 10 и более раз меньше?

Ну и вопрос " Отсутствующие индексы, вызывающие высокие издержки". Может это затормаживать? И нужно ли с этим бороться?
Второй и следующие разы используется кэш - поэтому правильно пишет программист 1с - выходи заходим - и только потом проверяем. Примеры в торговле11 - список номенклатуры собираешь а потом задания кучкой делаешь и результат с них собираешь. Правда на подборе не пробовал. Иные варианты - уменьшать колво информации на подборе или оптимизировать хранение данных как то. В той же торговле тоже подбро тормозил при больших объемах. Уже не помню что переписывал :(
...
Рейтинг: 0 / 0
19.01.2017, 10:32
    #39387405
Grobik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Программист 1с1. НоменклатураСправочник.Родитель = &Родитель

может так?:


5. Попробуйте убирать по 1 пакету (сначала остатки) и смотрите насколько меняется скорость запроса.


Найдете пакет отвечающий за падение скорости - пишите.

Так я сразу написал что тормозит. "ЦеныНоменклатурыСрезПоследних"
...
Рейтинг: 0 / 0
19.01.2017, 11:34
    #39387484
Grobik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Grobik,

Вот еще раз запустил скрипт поиска потерянных индексов.



Надо на них обращать внимание или забить?

Да нюанс. Я писал "Скачал последнюю УПП. Настройки РС. ЦеныНоменклатуры такие-же. В частности Измерение Номенклатура — Ведущее, Не индексировать." На самом деле есть отличие. В стандартной УПП периодичность "В течение дня". У меня периодичность по позиции регистратора.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Результат запроса ADODB: 29 записей											
	Дата и время формирования: 19.01.2017 09.51.35										
	428 603	   72,7	        [copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]	[_Period],                  [_RecorderTRef], [_RecorderRRef], [_LineNo], [_Fld12491RRef], [_Fld12492RRef]	1
	93 449	   27,39	[copy20160627].[dbo].[_InfoRg12489]	[_Active]	                [_Period]  [_Fld12490RRef], [_Fld12491RRef], [_Fld12492RRef]	1
	29 706	   28,06	[copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]	[_Period]  [_Fld12491RRef], [_Fld12492RRef]	1	28 658	   27,07	[copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]	[_Period],                   [_RecorderTRef], [_RecorderRRef], [_Fld12491RRef], [_Fld12492RRef]	1
	27 938	   26,39	[copy20160627].[dbo].[_InfoRg12489]	[_Fld12490RRef]		        [_Period],                  [_RecorderTRef], [_RecorderRRef], [_Fld12491RRef], [_Fld12492RRef], [_Fld12494]	1
	Результат запроса ADODB: 29 записей										
											
	Дата и время формирования: 18.01.2017 09.33.29										
	428 603	   72,7	        [copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]	[_Period],                  [_RecorderTRef], [_RecorderRRef], [_LineNo], [_Fld12491RRef], [_Fld12492RRef]	1
	93 449	   27,39	[copy20160627].[dbo].[_InfoRg12489]	[_Active]	                [_Period]  [_Fld12490RRef], [_Fld12491RRef], [_Fld12492RRef]	1
	14 860	   28,13	[copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]	[_Period]  [_Fld12491RRef], [_Fld12492RRef]	1
	14 337	   27,14	[copy20160627].[dbo].[_InfoRg12489]	[_Active], [_Fld12490RRef]	[_Period],                  [_RecorderTRef], [_RecorderRRef], [_Fld12491RRef], [_Fld12492RRef]	1
	13 973	   26,45	[copy20160627].[dbo].[_InfoRg12489]	[_Fld12490RRef]		        [_Period],                  [_RecorderTRef], [_RecorderRRef], [_Fld12491RRef], [_Fld12492RRef], [_Fld12494]	1

TotalCost	   avg_user_impact	TableName	EqualityUsage	InequalityUsage	IncludeCloumns
...
Рейтинг: 0 / 0
19.01.2017, 12:10
    #39387516
Grobik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Программист 1с
4. Запрос всегда выполняется для измерения скорости 1 раз. Потом выходите из базы и заново заходите. Только так меряется скорость.

Найдете пакет отвечающий за падение скорости - пишите.

А вот кстати и нет. 1С каждый раз заново отправляет запрос скулю. Только что проверил. Вышел из проги и конфигуратора (я один работаю с этой копией базы), попил кофе, сходил на улицу покурил. Выполнение запроса те же 0,165 секунды. Только по ценам, без резервов и остатков. Когда при первом запросе было от 5 секунд. И сейчас любая соседняя группа, которую сегодня не трогал) 2,3,5 и т.д. секунд. То есть кеширует SQL. Или чего она там еще делает непонятно. Т.к. памяти более, чем с горой, а фрагментация таблицы с этим регистром 1,26%.
...
Рейтинг: 0 / 0
20.01.2017, 21:19
    #39388736
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
GrobikПрограммист 1с4. Запрос всегда выполняется для измерения скорости 1 раз. Потом выходите из базы и заново заходите. Только так меряется скорость.

Найдете пакет отвечающий за падение скорости - пишите.

А вот кстати и нет. 1С каждый раз заново отправляет запрос скулю. Только что проверил. Вышел из проги и конфигуратора (я один работаю с этой копией базы), попил кофе, сходил на улицу покурил. Выполнение запроса те же 0,165 секунды. Только по ценам, без резервов и остатков. Когда при первом запросе было от 5 секунд. И сейчас любая соседняя группа, которую сегодня не трогал) 2,3,5 и т.д. секунд. То есть кеширует SQL. Или чего она там еще делает непонятно. Т.к. памяти более, чем с горой, а фрагментация таблицы с этим регистром 1,26%.А вот и да (20 минут 1с кэширует запрос). Кэшировать умеет только 1с. А ms по другому называется.

Не увидел что уже нашли что тормозит. Тогда проверьте галочку индексировать у номенклатуры в регистре цены.

И попробую спросить - Как вы меряете скорость запроса? Поставили 2 точки остановки - до запрос.Выполить() и сразу после нее?
Или Вы меряете скорость после вывода на экран?
...
Рейтинг: 0 / 0
20.01.2017, 21:21
    #39388737
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Вдогонку вопрос - сколько элементов в группе где 2,5 секунды? И сколько всего записей в регистре?

Еще один - в меню операции - управление итогами какая дата стоит у регистра?
...
Рейтинг: 0 / 0
24.01.2017, 12:31
    #39390181
Grobik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Программист 1сВдогонку вопрос - сколько элементов в группе где 2,5 секунды? И сколько всего записей в регистре?

Еще один - в меню операции - управление итогами какая дата стоит у регистра?

Меряю просто.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	Если мЯваСкрипт <> Неопределено Тогда
		ВремяНачалаВыполнения = мЯваСкрипт.Eval("(new Date()).valueOf()");
	КонецЕсли;
			
		РезультатЗапроса = Запрос.Выполнить();
		ЭлементыФормы.КнопкаДопФильтры.Доступность = Ложь;
		
		
	Если мЯваСкрипт <> Неопределено Тогда
		ВремяКонцаВыполнения = мЯваСкрипт.Eval("(new Date()).valueOf()");
	КонецЕсли;
	
	Если мЯваСкрипт <> Неопределено Тогда
		ФорматСтрокаВремя = Формат((ВремяКонцаВыполнения - ВремяНачалаВыполнения) / 1000, "ЧДЦ=3; ЧРД=.; ЧН=0; ЧГ=");
		Сообщить ("Группа - " + Родитель +"    Время- "+ ФорматСтрокаВремя);
	КонецЕсли;

Попытка
	мЯваСкрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
	мЯваСкрипт.Language = "javascript";
Исключение
	Сообщить("не возможно подключить MSScriptControl.ScriptControl, замер производительности отключен");
КонецПопытки;

РС цены победил. Создал новый непериодический РС ЦеныНоменклатурыТекущие забил в них текущие цены через корректировку записей регистра. Добавил в ПриЗаписи РС ЦеныНоменклатуры запись в этот регистр.

Теперь тормозит РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки.
Без него 0,2 секунды. С ним 6,5-7 секунд.
Какие есть идеи на эту тему?
...
Рейтинг: 0 / 0
24.01.2017, 13:01
    #39390216
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
GrobikПрограммист 1сВдогонку вопрос - сколько элементов в группе где 2,5 секунды? И сколько всего записей в регистре?

Еще один - в меню операции - управление итогами какая дата стоит у регистра?

Меряю просто.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	Если мЯваСкрипт <> Неопределено Тогда
		ВремяНачалаВыполнения = мЯваСкрипт.Eval("(new Date()).valueOf()");
	КонецЕсли;
			
		РезультатЗапроса = Запрос.Выполнить();
		ЭлементыФормы.КнопкаДопФильтры.Доступность = Ложь;
		
		
	Если мЯваСкрипт <> Неопределено Тогда
		ВремяКонцаВыполнения = мЯваСкрипт.Eval("(new Date()).valueOf()");
	КонецЕсли;
	
	Если мЯваСкрипт <> Неопределено Тогда
		ФорматСтрокаВремя = Формат((ВремяКонцаВыполнения - ВремяНачалаВыполнения) / 1000, "ЧДЦ=3; ЧРД=.; ЧН=0; ЧГ=");
		Сообщить ("Группа - " + Родитель +"    Время- "+ ФорматСтрокаВремя);
	КонецЕсли;

Попытка
	мЯваСкрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
	мЯваСкрипт.Language = "javascript";
Исключение
	Сообщить("не возможно подключить MSScriptControl.ScriptControl, замер производительности отключен");
КонецПопытки;

РС цены победил. Создал новый непериодический РС ЦеныНоменклатурыТекущие забил в них текущие цены через корректировку записей регистра. Добавил в ПриЗаписи РС ЦеныНоменклатуры запись в этот регистр.

Теперь тормозит РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки.
Без него 0,2 секунды. С ним 6,5-7 секунд.
Какие есть идеи на эту тему?
смотри регистр - может есть не закрытые измерения или не рассчитанные итоги.
...
Рейтинг: 0 / 0
25.01.2017, 09:56
    #39390798
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
GrobikПрограммист 1сВдогонку вопрос - сколько элементов в группе где 2,5 секунды? И сколько всего записей в регистре?

Еще один - в меню операции - управление итогами какая дата стоит у регистра?

Меряю просто.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	Если мЯваСкрипт <> Неопределено Тогда
		ВремяНачалаВыполнения = мЯваСкрипт.Eval("(new Date()).valueOf()");
	КонецЕсли;
			
		РезультатЗапроса = Запрос.Выполнить();
		ЭлементыФормы.КнопкаДопФильтры.Доступность = Ложь;
		
		
	Если мЯваСкрипт <> Неопределено Тогда
		ВремяКонцаВыполнения = мЯваСкрипт.Eval("(new Date()).valueOf()");
	КонецЕсли;
	
	Если мЯваСкрипт <> Неопределено Тогда
		ФорматСтрокаВремя = Формат((ВремяКонцаВыполнения - ВремяНачалаВыполнения) / 1000, "ЧДЦ=3; ЧРД=.; ЧН=0; ЧГ=");
		Сообщить ("Группа - " + Родитель +"    Время- "+ ФорматСтрокаВремя);
	КонецЕсли;

Попытка
	мЯваСкрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
	мЯваСкрипт.Language = "javascript";
Исключение
	Сообщить("не возможно подключить MSScriptControl.ScriptControl, замер производительности отключен");
КонецПопытки;

РС цены победил. Создал новый непериодический РС ЦеныНоменклатурыТекущие забил в них текущие цены через корректировку записей регистра. Добавил в ПриЗаписи РС ЦеныНоменклатуры запись в этот регистр.

Теперь тормозит РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки.
Без него 0,2 секунды. С ним 6,5-7 секунд.
Какие есть идеи на эту тему?Вы не ответили про дату. Тесть вы не знаете что у вас тормозит. Второе же раньше не тормозило?
...
Рейтинг: 0 / 0
28.02.2017, 19:20
    #39411956
herr seregerr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
я бы сначала зачистил все кэши. начал бы с кэша сервера 1с.
...
Рейтинг: 0 / 0
02.03.2017, 12:06
    #39413041
Владимир Лазурко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Программист 1сможет так?:
НоменклатураСправочник.Ссылка в иерархии (&Родитель)
Я думаю, надо получить список всех элементов без групп,хотя В ИЕРАРХИИ то еще зло. Один раз можно сделать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ВЫБРАТЬ
	НоменклатураСправочник.Ссылка КАК Номенклатура
ПОМЕСТИТЬ втНоменклатура
ИЗ
	Справочник.Номенклатура КАК НоменклатураСправочник
ГДЕ
	НоменклатураСправочник.Ссылка в (&Родитель)
        И НЕ ЭтоГруппа //--- вот без групп все остальные отборы в регистрах будут работать быстрее
	И НЕ НоменклатураСправочник.ИсключитьИзПрайсов

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;
...
Рейтинг: 0 / 0
02.03.2017, 21:02
    #39413369
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2
Владимир ЛазуркоПрограммист 1сможет так?:
НоменклатураСправочник.Ссылка в иерархии (&Родитель)
Я думаю, надо получить список всех элементов без групп,хотя В ИЕРАРХИИ то еще зло. Один раз можно сделать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ВЫБРАТЬ
	НоменклатураСправочник.Ссылка КАК Номенклатура
ПОМЕСТИТЬ втНоменклатура
ИЗ
	Справочник.Номенклатура КАК НоменклатураСправочник
ГДЕ
	НоменклатураСправочник.Ссылка в (&Родитель)
        И НЕ ЭтоГруппа //--- вот без групп все остальные отборы в регистрах будут работать быстрее
	И НЕ НоменклатураСправочник.ИсключитьИзПрайсов

ИНДЕКСИРОВАТЬ ПО
	Номенклатура
;

Получение всех элементов 1 справочника даже с пересечениями на него же не займет 10 секунд (не про x^2 конечно). Явно проблема с каким-то расчетным регистром.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Тормозит обработка ПодборНоменклатуры УПП 1.2 + SQL Server 2008 R2 / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]