Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Очень простой запрос и не понятные тормоза

Очень простой запрос и не понятные тормоза
Я
   asa
 
17.04.19 - 20:04
Добрый день, имеем следующие два запроса

Выполняется мгновенно

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

СГРУППИРОВАТЬ ПО
    ВЫРАЗИТЬ(ТекущаяТаблица.Период КАК ДАТА)

УПОРЯДОЧИТЬ ПО
    Дата

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

УПОРЯДОЧИТЬ ПО
    Дата

Если убрать упорядовачивание по дате то секунд 30, проверял на разных регистраторах, проблема воспроизводится, итоги регистра пересчитал, не пойму в чем проблема?
Второй запрос это часть типовой проверки даты запрета от 1С
 
 
   Immortal
 
1 - 17.04.19 - 20:08
смотри запросы в СУБД, наверняка там не только разница в том что написано в 1С
   asa
 
2 - 17.04.19 - 20:10
Это первый 

SELECT TOP 1
T1._Period,
CAST(SUM(1.0) AS NUMERIC(7, 0))
FROM dbo._AccumRg43819 T1
WHERE ((T1._Fld1670 = ?)) AND ((T1._RecorderTRef = 0x0000032F AND T1._RecorderRRef = ?))
GROUP BY T1._Period
ORDER BY 1
p_0: 0N
p_1: 0x80ED40A8F02A2E9811E95A035F9D2CEA




Rows,Executes,EstimateRows,EstimateIO,EstimateCPU,AvgRowSize,TotalSubtreeCost,EstimateExecutions,StmtText

0, 0, 1, 0, 1E-007, 18, 0.817, 1,   |--Compute Scalar(DEFINE:([Expr1002]=CONVERT(numeric(7,0),[Expr1001],0)))
1, 1, 1, 0.0113, 0.00087, 30, 0.817, 1,        |--Sort(TOP 1, ORDER BY:([T1].[Период] ASC))
1, 1, 78.4, 0, 0.467, 30, 0.805, 1,             |--Hash Match(Aggregate, HASH:([T1].[Период]), RESIDUAL:([DON_ERP].[dbo].РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства.[Период] as [T1].[Период] = [DON_ERP].[dbo].РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства.[Период] as [T1].[Период]) DEFINE:([Expr1001]=SUM((1.0))))
4797, 1, 6.71E+004, 0.264, 0.074, 13, 0.338, 1,                  |--Index Seek(OBJECT:([DON_ERP].[dbo].РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства.[_AccumRg43819_2] AS [T1]), SEEK:([T1].[ОбластьДанныхОсновныеДанные]=[@P1] AND [T1].[Регистратор]=0x0000032F AND [T1].[Регистратор]=[@P2]) ORDERED FORWARD)
   asa
 
3 - 17.04.19 - 20:11
Это второй
SELECT TOP 1
T1.Период,
1.0
FROM РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства T1
WHERE ((T1.ОбластьДанныхОсновныеДанные = ?)) AND ((T1.Регистратор = 0x0000032F AND T1.Регистратор = ?))
ORDER BY (T1.Период)
p_0: 0N
p_1: 0x80ED40A8F02A2E9811E95A035F9D2CEA


Rows,Executes,EstimateRows,EstimateIO,EstimateCPU,AvgRowSize,TotalSubtreeCost,EstimateExecutions,StmtText

0, 0, 1, 0, 1E-007, 18, 0.0944, 1,   |--Compute Scalar(DEFINE:([Expr1001]=(1.0)))
1, 1, 1, 0, 1E-007, 13, 0.0944, 1,        |--Top(TOP EXPRESSION:((1)))
1, 1, 1, 5.93E+003, 106, 38, 0.0932, 1,             |--Clustered Index Seek(OBJECT:([DON_ERP].[dbo].РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства.[_AccumRg43819_1] AS [T1]), SEEK:([T1].[ОбластьДанныхОсновныеДанные]=[@P1]),  WHERE:([DON_ERP].[dbo].РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства.[Регистратор] as [T1].[Регистратор]=[@P2] AND [DON_ERP].[dbo].РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства.[Регистратор] as [T1].[Регистратор]=0x0000032F) ORDERED FORWARD)
   asa
 
4 - 17.04.19 - 20:12
Точнее вот
SELECT TOP 1
T1._Period,
1.0
FROM dbo._AccumRg74817 T1
WHERE ((T1._Fld1670 = ?)) AND ((T1._RecorderTRef = 0x00000245 AND T1._RecorderRRef = ?))
ORDER BY (T1._Period)
p_0: 0N
p_1: 0x80ED40A8F02A2E9811E956C5409E608C
   asa
 
5 - 17.04.19 - 20:28
ну скажите кто нибудь где мой взор "замылился"?
   Immortal
 
6 - 17.04.19 - 20:41
А если статистику пересчитать все равно выдает в первом запросе такой план?
   Cyberhawk
 
7 - 17.04.19 - 20:46
В чем твой вопрос - что индекс сик быстрее чем кластеред индекс сик или чо?
   Широкий
 
8 - 17.04.19 - 20:51
Переиндексацию сделай
   Immortal
 
9 - 17.04.19 - 20:52
в чистом виде можно попробовать, без группировки но с упорядочиванием, да
   H A D G E H O G s
 
10 - 17.04.19 - 21:02
(0) У вас чет не то в статистике или индексах.
Сделал оба запроса - везде indexseek по некластерному индексы с продолжительностью в 0.002 секунды.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.