Гость
Форумы / [игнор отключен] [закрыт для гостей] / Запросы в 1С как оптимизировать? / 25 сообщений из 25, страница 1 из 1
27.10.2014, 18:21
    #38788536
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
ВЫБРАТЬ     
	армЧекТовары.Ссылка.Склад КАК Склад1,
	армЧекТовары.Ссылка.Продавец.Ссылка.Наименование КАК Продавец_Наименование,
	армЧекТовары.Ссылка.Продавец КАК Продавец1,  
	армЧекТовары.Номенклатура.НоменклатурнаяГруппа.Родитель КАК Родитель1,
	армЧекТовары.Номенклатура.НоменклатурнаяГруппа.Наименование КАК НоменклатурнаяГруппа_Наименование,
	армЧекТовары.Номенклатура.НоменклатурнаяГруппа.Родитель.Наименование КАК НоменклатурнаяГруппа_Родитель_Наименование,
	армЧекТовары.Ссылка.ТипЧека КАК ТипЧека,
	армЧекТовары.Количество,
	армЧекТовары.Сумма,
	армЧекТовары.Ссылка.Склад.Код КАК Код1,
	армЧекТовары.Ссылка.Склад.ОбъектАренды.Регион КАК Регион1	
	ИЗ 
	  Документ.армЧек.Товары КАК армЧекТовары
	ГДЕ армЧекТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
	;



Код: sql
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.
SELECT
T2._Fld8080RRef,
T4._Description,
T2._Fld8054RRef,
T6._ParentIDRRef,
T6._Description,
T7._Description,
T2._Fld8052RRef,
T1._Fld8063,
T1._Fld8065,
T8._Code,
T9._Fld10150RRef
FROM _Document8028_VT8058 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document8028 T2 WITH(NOLOCK)
ON T1._Document8028_IDRRef = T2._IDRRef
LEFT OUTER JOIN _Reference7113 T3 WITH(NOLOCK)
ON T2._Fld8054RRef = T3._IDRRef
LEFT OUTER JOIN _Reference7113 T4 WITH(NOLOCK)
ON T3._IDRRef = T4._IDRRef
LEFT OUTER JOIN _Reference46 T5 WITH(NOLOCK)
ON T1._Fld8061RRef = T5._IDRRef
LEFT OUTER JOIN _Reference47 T6 WITH(NOLOCK)
ON T5._Fld668RRef = T6._IDRRef
LEFT OUTER JOIN _Reference47 T7 WITH(NOLOCK)
ON T6._ParentIDRRef = T7._IDRRef
LEFT OUTER JOIN _Reference63 T8 WITH(NOLOCK)
ON T2._Fld8080RRef = T8._IDRRef
LEFT OUTER JOIN _Reference10148 T9 WITH(NOLOCK)
ON T8._Fld10175RRef = T9._IDRRef
WHERE ((T2._Date_Time >= @P1) AND (T2._Date_Time <= @P2))


Таблица
_Reference7113 - два раза в соединениях
_Reference47 - два раза в соединениях

_Document8028 - около 15Гб где и храниться Дата, которая в параметрах
_Document8028_VT8058 около 35Гб

остальные таблицы маленькие.

Как в 1С написать запрос, чтобы таблицы не дублировались в соединениях?
Желательно привести пример на данных, которые я привел выше.

Как из таблицы _Document8028 взять данные за период, а только после этого присоединить _Document8028_VT8058 (табличную часть) ?

Для строки "армЧекТовары.Номенклатура.НоменклатурнаяГруппа.Родитель" - понятно, что каждая точка это дополнительное Left join.
...
Рейтинг: 0 / 0
27.10.2014, 18:53
    #38788567
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trew,
Как в 1С написать запрос, чтобы таблицы не дублировались в соединениях?
Желательно привести пример на данных, которые я привел выше. Странный вопрос - убирайте обращение к полям через точку, явно соединяйте таблицы. Вот этого треша армЧекТовары.Ссылка.Продавец.Ссылка.Наименование не должно быть в запросах. И самое главное - оптимизируйте только те запросы, которые действительно тупят. Не надо заниматься оптимизацией потому что вам кажется что это будет работать медленно.
...
Рейтинг: 0 / 0
27.10.2014, 20:47
    #38788634
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
javapecker,

отчет открывается 1.5 часа.

Для примера: как это переписать Документ.армЧек.Товары ?

ВЫБРАТЬ ПЕРВЫЕ 10 *
ИЗ Документ.армЧек ВНУТРЕННЕЕ СОЕДИНЕНИЕ ...
(как присоединить табличную часть?)
...
Рейтинг: 0 / 0
27.10.2014, 22:12
    #38788683
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trew, это Документ.армЧек.Товары переписывать не надо. Это одна отдельная таблица. Просто разбейте весь запрос на таблицы и соединяйте их в том порядке и с такими условиями, как это нужно вам, а не как это делает платформа в случае использования точек. В вашем случае таблицами будут: Документ.армЧек (таблица документа), Документ.армЧек.Товары (таблица товаров документа), Справочник.Склады, Справочник. Номенклатура, Справочник. НоменклатурнаяГруппа и так далее. То есть вместо точек используйте нужные вам соединения и фильтры, если соедниения платформы вам не подходят. Не знаю как переделает этот запрос планировщик сервера, но в худшем случае сейчас у вас выбирается вся таблица товаров, соединяется с таблицей документа, и уже потом на это накладывается условие по периоду.
...
Рейтинг: 0 / 0
27.10.2014, 22:30
    #38788698
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
полтора часа???????????

А период большой? Точнее сказать за эти полтора часа сколько строк вывелось? миллион?
...
Рейтинг: 0 / 0
28.10.2014, 08:23
    #38788847
Титов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
Программист 1сполтора часа???????????

А период большой? Точнее сказать за эти полтора часа сколько строк вывелось? миллион?

у меня столько расчет себестоимости производится! на 300 строк продукции в которой свою очередь еще хренова туча полуфобрикатов!))
...
Рейтинг: 0 / 0
28.10.2014, 10:49
    #38789017
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
ТитовПрограммист 1сполтора часа???????????

А период большой? Точнее сказать за эти полтора часа сколько строк вывелось? миллион?

у меня столько расчет себестоимости производится! на 300 строк продукции в которой свою очередь еще хренова туча полуфобрикатов!))У меня часа 3-4 расчет себестоимости идет. Правда в стандартной бухгалтерии и обрабатывает последовательно по 1 документу (точнее его проводки)...
...
Рейтинг: 0 / 0
28.10.2014, 12:53
    #38789192
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
Вопрос по теме оптимизация:
Если нужно выбрать документы конкретного типа, при составном типе данных,
например в регистре "ВыполняемыеЗадания" ресурс "Задание" имеет составной тип,
среди значений которого возможен документ "Отбор"

Не могу разобраться, в чём разница между двумя вариантами ниже. Чтобы выбрать правильный вариант.

Код: sql
1.
2.
3.
4.
5.
    ГДЕ
        ВЫРАЗИТЬ(РегистрСведенийВыполняемыеЗадания.Задание КАК Документ.Отбор) ССЫЛКА Документ.Отбор
--------
  ГДЕ
        РегистрСведенийВыполняемыеЗадания.Задание ССЫЛКА Документ.Отбор
...
Рейтинг: 0 / 0
28.10.2014, 13:11
    #38789214
Хитроглазый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trewНе могу разобраться, в чём разница между двумя вариантами ниже. Чтобы выбрать правильный вариант.


мне показалось, ты профайлером умеешь пользоваться
...
Рейтинг: 0 / 0
28.10.2014, 14:06
    #38789308
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
...
Рейтинг: 0 / 0
28.10.2014, 14:07
    #38789309
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
ХитроглазыйtrewНе могу разобраться, в чём разница между двумя вариантами ниже. Чтобы выбрать правильный вариант.


мне показалось, ты профайлером умеешь пользоваться
Я хочу разобраться с точки зрения 1С т.е. логику понять. Можете рассказать логику, см. в предыдущем сообщении?
...
Рейтинг: 0 / 0
28.10.2014, 21:00
    #38789849
user1c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trewВопрос по теме оптимизация:
Если нужно выбрать документы конкретного типа, при составном типе данных,
например в регистре "ВыполняемыеЗадания" ресурс "Задание" имеет составной тип,
среди значений которого возможен документ "Отбор"

Не могу разобраться, в чём разница между двумя вариантами ниже. Чтобы выбрать правильный вариант.
http://kb.1c.ru/articleView.jsp?id=44#dot_after_component_type

Вообще, для решения большинства самых распространенных проблем на стороне конфигуратора 1С достаточно следовать рекомендациям статьи выше.
...
Рейтинг: 0 / 0
04.11.2014, 20:25
    #38795576
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
Есть в 1С такая возможность (запрос ниже)
Код: sql
1.
2.
ВЫБРАТЬ Дата, Строки.Количество КАК Колво
ИЗ Документ.армЧек


Поле Колво - отображается как вложенный запрос, строки документа.
1) Можно ли, например в пакетном запросе, его отобразить? т.е. сделать этот запрос вложенный, а внешним запросом получить данные Колво .(всё в запросе)
2) зачем такая возможность есть в 1С, чтобы в цикле в коде выбирать что-ли поле Колво ?
...
Рейтинг: 0 / 0
04.11.2014, 21:39
    #38795604
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trew, документ и его табличная часть это две разные таблицы. Если есть какое-то недопонимание или желание оптимизировать - работайте с ними как с двумя разными таблицами.
...
Рейтинг: 0 / 0
05.11.2014, 10:08
    #38795819
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
javapeckertrew, документ и его табличная часть это две разные таблицы. Если есть какое-то недопонимание или желание оптимизировать - работайте с ними как с двумя разными таблицами.
А на вопросы 1 и 2 можете ответить?
Я не понимаю зачем нужен вложенный запрос, у которого не видно полей.
...
Рейтинг: 0 / 0
05.11.2014, 10:30
    #38795856
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trew,А на вопросы 1 и 2 можете ответить? Не могу. Сформулируйте вопрос так чтобы его можно было понять. Сейчас это звучит как "Можно ли разводить овец если горит зеленый?"
...
Рейтинг: 0 / 0
05.11.2014, 10:34
    #38795861
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trew,Я не понимаю зачем нужен вложенный запрос, у которого не видно полей. А вы подумайте, что вы хотите в вашем примере увидеть в строки.количество, если у документа больше одной строки?
...
Рейтинг: 0 / 0
05.11.2014, 11:00
    #38795906
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trewjavapeckertrew, документ и его табличная часть это две разные таблицы. Если есть какое-то недопонимание или желание оптимизировать - работайте с ними как с двумя разными таблицами.
А на вопросы 1 и 2 можете ответить?
Я не понимаю зачем нужен вложенный запрос, у которого не видно полей.

Ты, Федя, в состоянии пропагандистом не быть...
...
Рейтинг: 0 / 0
05.11.2014, 13:48
    #38796214
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
javapeckertrew,Я не понимаю зачем нужен вложенный запрос, у которого не видно полей. А вы подумайте, что вы хотите в вашем примере увидеть в строки.количество, если у документа больше одной строки?
Может на другом запросе, будет понятен мой вопрос.

См. ниже, запрос
6. Обращение к табличной части как вложенной таблице
Код: sql
1.
2.
3.
//получение нескольких колонок табличной части как вложенной таблицы
ВЫБРАТЬ Номер, Дата, Товары.(Номенклатура, Количество)
ИЗ Документ.АвансовыйОтчет


Зачем в запросе используется Товары.(Номенклатура, Количество), т.е. как потом работать с этим вложенным запросом?
...
Рейтинг: 0 / 0
05.11.2014, 13:55
    #38796234
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trewjavapeckertrew,пропущено...
А вы подумайте, что вы хотите в вашем примере увидеть в строки.количество, если у документа больше одной строки?
Может на другом запросе, будет понятен мой вопрос.

См. ниже, запрос
6. Обращение к табличной части как вложенной таблице
Код: sql
1.
2.
3.
//получение нескольких колонок табличной части как вложенной таблицы
ВЫБРАТЬ Номер, Дата, Товары.(Номенклатура, Количество)
ИЗ Документ.АвансовыйОтчет


Зачем в запросе используется Товары.(Номенклатура, Количество), т.е. как потом работать с этим вложенным запросом?

как с таблицей значений после выковыривания ее из результата выполнения запроса
...
Рейтинг: 0 / 0
05.11.2014, 14:05
    #38796270
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
Последний выдох ГПЖ,

Уже по теме :)
А в запросе, например пакетном, можно работать с вложенным запросом Товары.(Номенклатура, Количество)?
Всё в запросе.
...
Рейтинг: 0 / 0
05.11.2014, 14:13
    #38796286
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trew,А в запросе, например пакетном, можно работать с вложенным запросом Товары.(Номенклатура, Количество)?
Всё в запросе. Перестаньте издеваться над людьми
...
Рейтинг: 0 / 0
05.11.2014, 14:19
    #38796296
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trewПоследний выдох ГПЖ,

Уже по теме :)
А в запросе, например пакетном, можно работать с вложенным запросом Товары.(Номенклатура, Количество)?
Всё в запросе.

неа. она уже на уровне запроса таблица значений.. перекладывайте во временные таблицы
...
Рейтинг: 0 / 0
05.11.2014, 14:32
    #38796339
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
javapeckertrew,А в запросе, например пакетном, можно работать с вложенным запросом Товары.(Номенклатура, Количество)?
Всё в запросе. Перестаньте издеваться над людьми
Я не издеваюсь, а разбираюсь с 1С. Если какая-то возможность есть в 1С, значит она для чего-то нужна. Вот я и разбираюсь, как она работает. Т.е. на что способна 1С.

Извините, если надоел.
...
Рейтинг: 0 / 0
05.11.2014, 15:00
    #38796397
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы в 1С как оптимизировать?
trewjavapeckertrew,пропущено...
Перестаньте издеваться над людьми
Я не издеваюсь, а разбираюсь с 1С. Если какая-то возможность есть в 1С, значит она для чего-то нужна. Вот я и разбираюсь, как она работает. Т.е. на что способна 1С.

Извините, если надоел.

иногда удобнее иметь нечто в пакетном запросе сразу в виде таблицы значений для дальнейшей обработки - типа .ВыполнитьПакет() и уже все рассовано по местам, но это скорее редкость...
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Запросы в 1С как оптимизировать? / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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