powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Долго строится план exec sp_executesql
8 сообщений из 8, страница 1 из 1
Долго строится план exec sp_executesql
    #39373391
Oleg Krivopusk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

При построении плана данного запроса уходит от 1 до 2 мин на приличном сервере (96 Гб ОЗУ, куча процов и тп)
Сами таблицы практически пустые!

После построения плана - работает пулей.
Индексы все есть, перестраивал и тп.
Если сокращать кол-во джоинов (урезать запрос) - то делается быстро! Но таблица то одна и та же!

Код генерируется 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.
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.
exec sp_executesql N' SELECT
T1._Document457_IDRRef,
T1._Fld15335,
T1._LineNo15322,
T1._Fld15323RRef,
T1._Fld15324,
T1._Fld15325_TYPE,
T1._Fld15325_RTRef,
T1._Fld15325_RRRef,
T1._Fld15326,
T1._Fld15327,
0.0,
T1._Fld15330RRef,
T1._Fld15329,
T1._Fld15333RRef,
T1._Fld15332,
CAST(SUM(ISNULL(CAST(T2._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T3._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T4._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T20._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T21._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T22._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T23._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T24._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T5._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T6._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T7._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T8._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T9._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T10._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T11._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T12._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T13._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T14._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T15._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T16._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T17._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T18._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T19._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8))
FROM dbo._Document457_VT15321 T1
LEFT OUTER JOIN dbo._Document457_VT15344 T2
ON ((((T1._Document457_IDRRef = T2._Document457_IDRRef) AND (T1._Fld15335 = T2._Fld15349)) AND (T2._Fld15346RRef = @P1))) AND (T2._Fld847 = @P2)
LEFT OUTER JOIN dbo._Document457_VT15344 T3
ON ((((T1._Document457_IDRRef = T3._Document457_IDRRef) AND (T1._Fld15335 = T3._Fld15349)) AND (T3._Fld15346RRef = @P3))) AND (T3._Fld847 = @P4)
LEFT OUTER JOIN dbo._Document457_VT15344 T4
ON ((((T1._Document457_IDRRef = T4._Document457_IDRRef) AND (T1._Fld15335 = T4._Fld15349)) AND (T4._Fld15346RRef = @P5))) AND (T4._Fld847 = @P6)
LEFT OUTER JOIN dbo._Document457_VT15344 T5
ON ((((T1._Document457_IDRRef = T5._Document457_IDRRef) AND (T1._Fld15335 = T5._Fld15349)) AND (T5._Fld15346RRef = @P7))) AND (T5._Fld847 = @P8)
LEFT OUTER JOIN dbo._Document457_VT15344 T6
ON ((((T1._Document457_IDRRef = T6._Document457_IDRRef) AND (T1._Fld15335 = T6._Fld15349)) AND (T6._Fld15346RRef = @P9))) AND (T6._Fld847 = @P10)
LEFT OUTER JOIN dbo._Document457_VT15344 T7
ON ((((T1._Document457_IDRRef = T7._Document457_IDRRef) AND (T1._Fld15335 = T7._Fld15349)) AND (T7._Fld15346RRef = @P11))) AND (T7._Fld847 = @P12)
LEFT OUTER JOIN dbo._Document457_VT15344 T8
ON ((((T1._Document457_IDRRef = T8._Document457_IDRRef) AND (T1._Fld15335 = T8._Fld15349)) AND (T8._Fld15346RRef = @P13))) AND (T8._Fld847 = @P14)
LEFT OUTER JOIN dbo._Document457_VT15344 T9
ON ((((T1._Document457_IDRRef = T9._Document457_IDRRef) AND (T1._Fld15335 = T9._Fld15349)) AND (T9._Fld15346RRef = @P15))) AND (T9._Fld847 = @P16)
LEFT OUTER JOIN dbo._Document457_VT15344 T10
ON ((((T1._Document457_IDRRef = T10._Document457_IDRRef) AND (T1._Fld15335 = T10._Fld15349)) AND (T10._Fld15346RRef = @P17))) AND (T10._Fld847 = @P18)
LEFT OUTER JOIN dbo._Document457_VT15344 T11
ON ((((T1._Document457_IDRRef = T11._Document457_IDRRef) AND (T1._Fld15335 = T11._Fld15349)) AND (T11._Fld15346RRef = @P19))) AND (T11._Fld847 = @P20)
LEFT OUTER JOIN dbo._Document457_VT15344 T12
ON ((((T1._Document457_IDRRef = T12._Document457_IDRRef) AND (T1._Fld15335 = T12._Fld15349)) AND (T12._Fld15346RRef = @P21))) AND (T12._Fld847 = @P22)
LEFT OUTER JOIN dbo._Document457_VT15344 T13
ON ((((T1._Document457_IDRRef = T13._Document457_IDRRef) AND (T1._Fld15335 = T13._Fld15349)) AND (T13._Fld15346RRef = @P23))) AND (T13._Fld847 = @P24)
LEFT OUTER JOIN dbo._Document457_VT15344 T14
ON ((((T1._Document457_IDRRef = T14._Document457_IDRRef) AND (T1._Fld15335 = T14._Fld15349)) AND (T14._Fld15346RRef = @P25))) AND (T14._Fld847 = @P26)
LEFT OUTER JOIN dbo._Document457_VT15344 T15
ON ((((T1._Document457_IDRRef = T15._Document457_IDRRef) AND (T1._Fld15335 = T15._Fld15349)) AND (T15._Fld15346RRef = @P27))) AND (T15._Fld847 = @P28)
LEFT OUTER JOIN dbo._Document457_VT15344 T16
ON ((((T1._Document457_IDRRef = T16._Document457_IDRRef) AND (T1._Fld15335 = T16._Fld15349)) AND (T16._Fld15346RRef = @P29))) AND (T16._Fld847 = @P30)
LEFT OUTER JOIN dbo._Document457_VT15344 T17
ON ((((T1._Document457_IDRRef = T17._Document457_IDRRef) AND (T1._Fld15335 = T17._Fld15349)) AND (T17._Fld15346RRef = @P31))) AND (T17._Fld847 = @P32)
LEFT OUTER JOIN dbo._Document457_VT15344 T18
ON ((((T1._Document457_IDRRef = T18._Document457_IDRRef) AND (T1._Fld15335 = T18._Fld15349)) AND (T18._Fld15346RRef = @P33))) AND (T18._Fld847 = @P34)
LEFT OUTER JOIN dbo._Document457_VT15344 T19
ON ((((T1._Document457_IDRRef = T19._Document457_IDRRef) AND (T1._Fld15335 = T19._Fld15349)) AND (T19._Fld15346RRef = @P35))) AND (T19._Fld847 = @P36)
LEFT OUTER JOIN dbo._Document457_VT15344 T20
ON ((((T1._Document457_IDRRef = T20._Document457_IDRRef) AND (T1._Fld15335 = T20._Fld15349)) AND (T20._Fld15346RRef = @P37))) AND (T20._Fld847 = @P38)
LEFT OUTER JOIN dbo._Document457_VT15344 T21
ON ((((T1._Document457_IDRRef = T21._Document457_IDRRef) AND (T1._Fld15335 = T21._Fld15349)) AND (T21._Fld15346RRef = @P39))) AND (T21._Fld847 = @P40)
LEFT OUTER JOIN dbo._Document457_VT15344 T22
ON ((((T1._Document457_IDRRef = T22._Document457_IDRRef) AND (T1._Fld15335 = T22._Fld15349)) AND (T22._Fld15346RRef = @P41))) AND (T22._Fld847 = @P42)
LEFT OUTER JOIN dbo._Document457_VT15344 T23
ON ((((T1._Document457_IDRRef = T23._Document457_IDRRef) AND (T1._Fld15335 = T23._Fld15349)) AND (T23._Fld15346RRef = @P43))) AND (T23._Fld847 = @P44)
LEFT OUTER JOIN dbo._Document457_VT15344 T24
ON ((((T1._Document457_IDRRef = T24._Document457_IDRRef) AND (T1._Fld15335 = T24._Fld15349)) AND (T24._Fld15346RRef = @P45))) AND (T24._Fld847 = @P46)
WHERE ((T1._Fld847 = @P47)) AND ((T1._Document457_IDRRef = @P48))
GROUP BY T1._Document457_IDRRef,
T1._LineNo15322,
T1._Fld15335,
T1._Fld15323RRef,
T1._Fld15324,
T1._Fld15325_TYPE,
T1._Fld15325_RTRef,
T1._Fld15325_RRRef,
T1._Fld15326,
T1._Fld15327,
T1._Fld15330RRef,
T1._Fld15329,
T1._Fld15333RRef,
T1._Fld15332',N'@P1 varbinary(16),@P2 numeric(10),@P3 varbinary(16),@P4 numeric(10),@P5 varbinary(16),@P6 numeric(10),@P7 varbinary(16),@P8 numeric(10),@P9 varbinary(16),@P10 numeric(10),@P11 varbinary(16),@P12 numeric(10),@P13 varbinary(16),@P14 numeric(10),@P15 varbinary(16),@P16 numeric(10),@P17 varbinary(16),@P18 numeric(10),@P19 varbinary(16),@P20 numeric(10),@P21 varbinary(16),@P22 numeric(10),@P23 varbinary(16),@P24 numeric(10),@P25 varbinary(16),@P26 numeric(10),@P27 varbinary(16),@P28 numeric(10),@P29 varbinary(16),@P30 numeric(10),@P31 varbinary(16),@P32 numeric(10),@P33 varbinary(16),@P34 numeric(10),@P35 varbinary(16),@P36 numeric(10),@P37 varbinary(16),@P38 numeric(10),@P39 varbinary(16),@P40 numeric(10),@P41 varbinary(16),@P42 numeric(10),@P43 varbinary(16),@P44 numeric(10),@P45 varbinary(16),@P46 numeric(10),@P47 numeric(10),@P48 varbinary(16)',0x8314FCAA140E89E111E62D353C693969,0,0x8314FCAA140E89E111E62D353C69396A,0,0x8314FCAA140E89E111E62D353C69396B,0,0x8314FCAA140E89E111E62D353C693942,0,0x8314FCAA140E89E111E62D353C693947,0,0x8314FCAA140E89E111E62D353C69394C,0,0x8314FCAA140E89E111E62D353C693943,0,0x8314FCAA140E89E111E62D353C693948,0,0x8314FCAA140E89E111E62D353C69394D,0,0x8314FCAA140E89E111E62D353C693944,0,0x8314FCAA140E89E111E62D353C693949,0,0x8314FCAA140E89E111E62D353C69394E,0,0x8314FCAA140E89E111E62D353C693945,0,0x8314FCAA140E89E111E62D353C69394A,0,0x8314FCAA140E89E111E62D353C69394F,0,0x8314FCAA140E89E111E62D353C693946,0,0x8314FCAA140E89E111E62D353C69394B,0,0x8314FCAA140E89E111E62D353C693950,0,0x8314FCAA140E89E111E62D353C69396C,0,0x8314FCAA140E89E111E62D353C69396D,0,0x8314FCAA140E89E111E62D353C69396E,0,0x8314FCAA140E89E111E62D353C69396F,0,0x8314FCAA140E89E111E62D353C693970,0,0,0x941B9457A558CA4B11E6C7D91D72BA0B



Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39373404
Oleg Krivopusk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему тема перенесена в 1С - вопрос чисто MS SQL !!!!!
То что код создана в 1С никак не влияет на вопрос.
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39373468
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажи запрос 1с
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39373557
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос 1С примерно понятен.
Этот запрос в легкую переписывается на группировку по двум полям, а затем на CASE внутри SUM.
План будет гораздо проще.
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39373897
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg Krivopusk,

Я модератор форума 1С. Перенесу Ваш тред обратно в форум MS SQL Server после того, как Вы поясните, каким образом Вы определили, что 1-2 мин уходит именно на построение плана запроса и именно SQL сервером.
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39377725
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg KrivopuskПочему тема перенесена в 1С - вопрос чисто MS SQL !!!!!
То что код создана в 1С никак не влияет на вопрос.безграмотные или ленивые админы тоже вопросы пользователей "не печатает 1С" переадресовывают на 1С-ников. 1С же не печатает и им пофиг, что служба печати подвисла или принтер требует обслуживания.
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39377727
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg KrivopuskЧто можете посоветовать?Слишком много соединений.
Я посоветую такое:
разбить множество соединений в одном запросе на несколько запросов для временных таблиц. Потом уже соединять эти таблицы.
...
Рейтинг: 0 / 0
Долго строится план exec sp_executesql
    #39377736
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg KrivopuskСами таблицы практически пустые!

После построения плана - работает пулей.
Индексы все есть, перестраивал и тп.
Если сокращать кол-во джоинов (урезать запрос) - то делается быстро! Но таблица то одна и та же!

Код генерируется 1С, влезть туда нет возможности.Еще в голову приходит замер производительности - посмотрите, может там после получения структуры БД (по полям вижу, что это прямой запрос к БД 1С 8) что-то неоптимальное делается.
Вот просто интересно - сравните 2 замера - до построения плана (когда долго) и после(когда вжжжик и всё).
В какой операции или в какой строке будет разрыв?
Тем самым ответите на вопрос Гари, на стороне MS SQL это или 1С тупит из-за индусского кода.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Долго строится план exec sp_executesql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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