Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Помогите разобраться с запросом / 6 сообщений из 6, страница 1 из 1
13.10.2011, 16:21
    #37481093
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с запросом
есть запрос.

код 1C "ВЫБРАТЬ
| КвитанцияОбОплатеРасшифровкаПлатежа.ЭкспрессНакладная,
| КвитанцияОбОплатеРасшифровкаПлатежа.ЭкспрессНакладная.Номер КАК ЭННомер,
| МАКСИМУМ(ЕСТЬNULL(РеестрЭНЗаНаличныеЭкспрессНакладные.СуммаСНДС, КвитанцияОбОплатеРасшифровкаПлатежа.СуммаСНДС)) КАК СуммаРеестра
|ИЗ
| Документ.КвитанцияОбОплате.РасшифровкаПлатежа КАК КвитанцияОбОплатеРасшифровкаПлатежа
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеестрЭНЗаНаличные.ЭкспрессНакладные КАК РеестрЭНЗаНаличныеЭкспрессНакладные
| ПО КвитанцияОбОплатеРасшифровкаПлатежа.ЭкспрессНакладная = РеестрЭНЗаНаличныеЭкспрессНакладные.ДокументЭН
| И КвитанцияОбОплатеРасшифровкаПлатежа.Ссылка.ФилиалСоздания = РеестрЭНЗаНаличныеЭкспрессНакладные.Ссылка.ФилиалСоздания
| И ((НЕ РеестрЭНЗаНаличныеЭкспрессНакладные.Ссылка.ПометкаУдаления))
|ГДЕ
| КвитанцияОбОплатеРасшифровкаПлатежа.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| КвитанцияОбОплатеРасшифровкаПлатежа.ЭкспрессНакладная"


код на sql
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
exec sp_executesql N'SELECT
T1._Fld8763_TYPE,
T1._Fld8763_RTRef,
T1._Fld8763_RRRef,
CASE WHEN T1._Fld8763_TYPE = 0x08 AND T1._Fld8763_RTRef = 0x00002450 THEN T5._Number WHEN T1._Fld8763_TYPE = 0x08 AND T1._Fld8763_RTRef = 0x00002A90 THEN T6._Number WHEN T1._Fld8763_TYPE = 0x08 AND T1._Fld8763_RTRef = 0x0000008C THEN T7._Number ELSE CAST(NULL AS NVARCHAR(18)) END,
MAX(ISNULL(CAST(T3._Fld1495 AS NUMERIC(12, 2)),T1._Fld8764))
FROM _Document8737_VT8761 T1 WITH(REPEATABLEREAD)
LEFT OUTER JOIN _Document8737 T2 WITH(REPEATABLEREAD)
ON T1._Document8737_IDRRef = T2._IDRRef
LEFT OUTER JOIN _Document130_VT1488 T3 WITH(REPEATABLEREAD)
LEFT OUTER JOIN _Document130 T4 WITH(REPEATABLEREAD)
ON T3._Document130_IDRRef = T4._IDRRef
ON (((T1._Fld8763_TYPE = T3._Fld1491_TYPE AND T1._Fld8763_RTRef = T3._Fld1491_RTRef AND T1._Fld8763_RRRef = T3._Fld1491_RRRef) AND (T2._Fld8760RRef = T4._Fld1479RRef)) AND (T4._Marked = @P1))
LEFT OUTER JOIN _Document9296 T5 WITH(REPEATABLEREAD)
ON T1._Fld8763_TYPE = @P2 AND T1._Fld8763_RTRef = @P3 AND T1._Fld8763_RRRef = T5._IDRRef
LEFT OUTER JOIN _Document10896 T6 WITH(REPEATABLEREAD)
ON T1._Fld8763_TYPE = @P2 AND T1._Fld8763_RTRef = @P4 AND T1._Fld8763_RRRef = T6._IDRRef
LEFT OUTER JOIN _Document140 T7 WITH(REPEATABLEREAD)
ON T1._Fld8763_TYPE = @P2 AND T1._Fld8763_RTRef = @P5 AND T1._Fld8763_RRRef = T7._IDRRef
WHERE (T1._Document8737_IDRRef = @P6)
GROUP BY T1._Fld8763_TYPE,
T1._Fld8763_RTRef,
T1._Fld8763_RRRef,
CASE WHEN T1._Fld8763_TYPE = 0x08 AND T1._Fld8763_RTRef = 0x00002450 THEN T5._Number WHEN T1._Fld8763_TYPE = 0x08 AND T1._Fld8763_RTRef = 0x00002A90 THEN T6._Number WHEN T1._Fld8763_TYPE = 0x08 AND T1._Fld8763_RTRef = 0x0000008C THEN T7._Number ELSE CAST(NULL AS NVARCHAR(18)) END', N'@P1 varbinary(1),@P2 varbinary(1),@P3 varbinary(4),@P4 varbinary(4),@P5 varbinary(4),@P6 varbinary(16)', 0x00, 0x08, 0x00002450, 0x00002A90, 0x0000008C, 0xA1C80026B97ED48A11E0F592FFDD8DA3
		


он создаёт большие блокировки (до 30-50 секунд).
пробую выполнить его из студии - первые несколько раз выполняется по 25 сек. сразу же после - по 1-2 сек выполнение.
хотелось бы понять почему он первый раз так долго выполняется?
смотрел планы - ничего сложного нет. да и выборка простейшая.


-
Чудеса случаются. Это Вам любой программист скажет.
...
Рейтинг: 0 / 0
13.10.2011, 19:50
    #37481498
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с запросом
1. Индекс есть у ЭкспрессНакладная и ДокументЭН?

2. В следущие разы по 1-2 секунды - из-за кеша. Перезайдите и опять будет 25с.

КвитанцияОбОплатеРасшифровкаПлатежа.Ссылка.ФилиалСоздания = РеестрЭНЗаНаличныеЭкспрессНакладные.Ссылка.ФилиалСоздания

Не нравится. Обойдитесь 1 точкой.
...
Рейтинг: 0 / 0
13.10.2011, 20:31
    #37481531
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с запросом
Хотя если у ФилиалСоздания стоит индекс - то возможно все нормально.
...
Рейтинг: 0 / 0
14.10.2011, 09:50
    #37481888
sWinTyz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с запросом
Код: plaintext
КвитанцияОбОплатеРасшифровкаПлатежа.Ссылка.ФилиалСоздания = РеестрЭНЗаНаличныеЭкспрессНакладные.Ссылка.ФилиалСоздания

звучит как то странно
помните, что даже в простом запросе можно нагадить ...
...
Рейтинг: 0 / 0
14.10.2011, 09:51
    #37481891
sWinTyz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с запросом
хотя виноват
нормально наверное
...
Рейтинг: 0 / 0
14.10.2011, 09:52
    #37481893
sWinTyz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с запросом
а вообще блокировки вещь интересная
есть мнение, что вывалится может то и не на строчке которая блокирует
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Помогите разобраться с запросом / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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