Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

v8: План запроса с Table Spool

v8: План запроса с Table Spool
Я
   XSprinter
 
10.01.13 - 13:58
8.2.16.368, SQL 2008(10.50.1600.1), самописная конфигурация. Поймал в ЦУП запрос обновления отображения формы списка. {Документ.ЗаказНаряд.Форма.ФормаСписка}/{ТабличноеПоле : Список}/{ОбновлениеОтображения} При анализе плана выполнения соответствующего запроса можно заметить что в одном месте встречается оператор Table Spool что как я понимаю означает создание временной таблицы на 9000 записей, при обновлении 43 строк формы списка. Вопрос зачем?
Запрос:
SELECT TOP 43
Документ.ЗаказНаряд_T15.Номер,
Документ.ЗаказНаряд_T15.ДатаЗакрытия,
Документ.ЗаказНаряд_T15.СуммаУпр,
Документ.ЗаказНаряд_T15.Подрядчик,
Документ.ЗаказНаряд_T15.ДатаОткрытия,
Документ.ЗаказНаряд_T15.СтатусОперативный,
Документ.ЗаказНаряд_T15.ОтметкаСервиса,
Документ.ЗаказНаряд_T15.ПланируемаяДатаОкончания,
Документ.ЗаказНаряд_T15.Марка,
Документ.ЗаказНаряд_T15.ЦеховаяГруппа,
Документ.ЗаказНаряд_T15.Ответственный,
Документ.ЗаказНаряд_T15.МероприятиеKDM,
Документ.ЗаказНаряд_T15.ВнешняяСтоянка,
Документ.ЗаказНаряд_T15.Контрагент,
Документ.ЗаказНаряд_T15.РабочееМесто,
Документ.ЗаказНаряд_T15.ТипПлательщика,
Документ.ЗаказНаряд_T15.ТотальнаяМашина,
Документ.ЗаказНаряд_T15.Заказчик,
Документ.ЗаказНаряд_T15.АвторСкидки,
Документ.ЗаказНаряд_T15.ПризнакНаличияТранспортногоСредства,
Документ.ЗаказНаряд_T15.КузовГотов,
Документ.ЗаказНаряд_T15.АвторВыдачи,
Документ.ЗаказНаряд_T15.ГосударственныйНомер,
Документ.ЗаказНаряд_T15.Нормировщик,
Документ.ЗаказНаряд_T15.Модель,
Документ.ЗаказНаряд_T15.ВидРемонта,
Документ.ЗаказНаряд_T15.Дилер,
Документ.ЗаказНаряд_T15.ДатаВыдачи,
Документ.ЗаказНаряд_T15.МастерЦеха,
Документ.ЗаказНаряд_T15.Цех,
Документ.ЗаказНаряд_T15.Ссылка,
Документ.ЗаказНаряд_T15.Дата,
Документ.ЗаказНаряд_T15.ПометкаУдаления,
Документ.ЗаказНаряд_T15.Проведен,
Справочник.Контрагенты_T16.Наименование,
Справочник.Сотрудники_T17.Наименование,
Справочник.Контрагенты_T18.Наименование,
Справочник.РабочиеМеста_T19.Наименование,
Справочник.Контрагенты_T20.Наименование,
Справочник.Пользователи_T21.Код,
Справочник.Пользователи_T22.Код,
Справочник.Пользователи_T23.Код,
Справочник.МоделиТранспортныхСредств_T24.Наименование,
Справочник.ВидыРемонта_T25.Наименование,
Справочник.Дилеры_T26.Наименование,
Справочник.Сотрудники_T27.Наименование,
Справочник.Подразделения_T28.Наименование
FROM Документ.ЗаказНаряд T15 WITH(NOLOCK)
LEFT OUTER JOIN Справочник.Контрагенты T16 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Подрядчик = Справочник.Контрагенты_T16.Ссылка
LEFT OUTER JOIN Справочник.Сотрудники T17 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Ответственный = Справочник.Сотрудники_T17.Ссылка
LEFT OUTER JOIN Справочник.Контрагенты T18 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Контрагент = Справочник.Контрагенты_T18.Ссылка
LEFT OUTER JOIN Справочник.РабочиеМеста T19 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.РабочееМесто = Справочник.РабочиеМеста_T19.Ссылка
LEFT OUTER JOIN Справочник.Контрагенты T20 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Заказчик = Справочник.Контрагенты_T20.Ссылка
LEFT OUTER JOIN Справочник.Пользователи T21 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.АвторСкидки = Справочник.Пользователи_T21.Ссылка
LEFT OUTER JOIN Справочник.Пользователи T22 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.АвторВыдачи = Справочник.Пользователи_T22.Ссылка
LEFT OUTER JOIN Справочник.Пользователи T23 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Нормировщик = Справочник.Пользователи_T23.Ссылка
LEFT OUTER JOIN Справочник.МоделиТранспортныхСредств T24 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Модель = Справочник.МоделиТранспортныхСредств_T24.Ссылка
LEFT OUTER JOIN Справочник.ВидыРемонта T25 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.ВидРемонта = Справочник.ВидыРемонта_T25.Ссылка
LEFT OUTER JOIN Справочник.Дилеры T26 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Дилер = Справочник.Дилеры_T26.Ссылка
LEFT OUTER JOIN Справочник.Сотрудники T27 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.МастерЦеха = Справочник.Сотрудники_T27.Ссылка
LEFT OUTER JOIN Справочник.Подразделения T28 WITH(NOLOCK)
ON Документ.ЗаказНаряд_T15.Цех = Справочник.Подразделения_T28.Ссылка
WHERE ((((Документ.ЗаказНаряд_T15.Организация IN (?, ?))) AND (Документ.ЗаказНаряд_T15.РабочееМесто = ?)) AND (Документ.ЗаказНаряд_T15.СтатусОперативный = ?)) AND Документ.ЗаказНаряд_T15.Дата < ?
ORDER BY (Документ.ЗаказНаряд_T15.Дата) DESC, (Документ.ЗаказНаряд_T15.Ссылка) DESC
 
 
   XSprinter
 
1 - 10.01.13 - 13:59
Код SQL
<Code>SELECT TOP 43
T15._Number,
T15._Fld891,
T15._Fld3765,
T15._Fld8910RRef,
T15._Fld893,
T15._Fld924RRef,
T15._Fld3347,
T15._Fld3066,
T15._Fld12059RRef,
T15._Fld5104RRef,
T15._Fld909RRef,
T15._Fld8997,
T15._Fld7116,
T15._Fld901RRef,
T15._Fld917RRef,
T15._Fld933RRef,
T15._Fld7117,
T15._Fld897RRef,
T15._Fld4291RRef,
T15._Fld912,
T15._Fld8793,
T15._Fld8790RRef,
T15._Fld889,
T15._Fld9112RRef,
T15._Fld906RRef,
T15._Fld885RRef,
T15._Fld10127RRef,
T15._Fld7406,
T15._Fld6486RRef,
T15._Fld935RRef,
T15._IDRRef,
T15._Date_Time,
T15._Marked,
T15._Posted,
T16._Description,
T17._Description,
T18._Description,
T19._Description,
T20._Description,
T21._Code,
T22._Code,
T23._Code,
T24._Description,
T25._Description,
T26._Description,
T27._Description,
T28._Description
FROM _Document77 T15 WITH(NOLOCK)
LEFT OUTER JOIN _Reference22 T16 WITH(NOLOCK)
ON T15._Fld8910RRef = T16._IDRRef
LEFT OUTER JOIN _Reference49 T17 WITH(NOLOCK)
ON T15._Fld909RRef = T17._IDRRef
LEFT OUTER JOIN _Reference22 T18 WITH(NOLOCK)
ON T15._Fld901RRef = T18._IDRRef
LEFT OUTER JOIN _Reference45 T19 WITH(NOLOCK)
ON T15._Fld917RRef = T19._IDRRef
LEFT OUTER JOIN _Reference22 T20 WITH(NOLOCK)
ON T15._Fld897RRef = T20._IDRRef
LEFT OUTER JOIN _Reference38 T21 WITH(NOLOCK)
ON T15._Fld4291RRef = T21._IDRRef
LEFT OUTER JOIN _Reference38 T22 WITH(NOLOCK)
ON T15._Fld8790RRef = T22._IDRRef
LEFT OUTER JOIN _Reference38 T23 WITH(NOLOCK)
ON T15._Fld9112RRef = T23._IDRRef
LEFT OUTER JOIN _Reference27 T24 WITH(NOLOCK)
ON T15._Fld906RRef = T24._IDRRef
LEFT OUTER JOIN _Reference8 T25 WITH(NOLOCK)
ON T15._Fld885RRef = T25._IDRRef
LEFT OUTER JOIN _Reference10119 T26 WITH(NOLOCK)
ON T15._Fld10127RRef = T26._IDRRef
LEFT OUTER JOIN _Reference49 T27 WITH(NOLOCK)
ON T15._Fld6486RRef = T27._IDRRef
LEFT OUTER JOIN _Reference37 T28 WITH(NOLOCK)
ON T15._Fld935RRef = T28._IDRRef
WHERE ((((T15._Fld908RRef IN (?, ?))) AND (T15._Fld917RRef = ?)) AND (T15._Fld924RRef = ?)) AND T15._Date_Time < ?
ORDER BY (T15._Date_Time) DESC, (T15._IDRRef) DESC
</Code>
   XSprinter
 
2 - 10.01.13 - 13:59
И план выполнения:
+------+----------+--------------+------------+-------------+------------+------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Rows | Executes | EstimateRows | EstimateIO | EstimateCPU | AvgRowSize | TotalSubtreeCost | EstimateExecutions | StmtText                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
+------+----------+--------------+------------+-------------+------------+------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 8    | 1        | 24.2         | 0          | 2.42E-006   | 1329       | 55.3             | 1                  |   |--Top(TOP EXPRESSION:((43)))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 8    | 1        | 24.2         | 0          | 0.0291      | 1329       | 55.3             | 1                  |        |--Parallelism(Gather Streams, ORDER BY:([T15].[_Date_Time] DESC, [T15].[_IDRRef] DESC))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 1329       | 55.2             | 1                  |             |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld935RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 1177       | 55.2             | 1                  |                  |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld6486RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 8    | 12       | 24.2         | 0          | 0.000456    | 1125       | 55.2             | 1                  |                  |    |--Nested Loops(Left Outer Join, WHERE:([av_db].[dbo].[_Document77].[_Fld10127RRef] as [T15].[_Fld10127RRef]=[av_db].[dbo].[_Reference10119].[_IDRRef] as [T26].[_IDRRef]))                                                                                                                                                                                                                                                                                                                                                                                    |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 1063       | 55.2             | 1                  |                  |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld885RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 8    | 12       | 24.2         | 0          | 0.0201      | 1036       | 55.2             | 1                  |                  |    |    |    |--Nested Loops(Left Outer Join, WHERE:([av_db].[dbo].[_Document77].[_Fld906RRef] as [T15].[_Fld906RRef]=[av_db].[dbo].[_Reference27].[_IDRRef] as [T24].[_IDRRef]))                                                                                                                                                                                                                                                                                                                                                                                 |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 984        | 55.1             | 1                  |                  |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld9112RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 948        | 55.1             | 1                  |                  |    |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld8790RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 911        | 55               | 1                  |                  |    |    |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld4291RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 875        | 55               | 1                  |                  |    |    |    |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld897RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 773        | 54.9             | 1                  |                  |    |    |    |    |    |    |    |    |--Nested Loops(Left Outer Join)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 671        | 54.9             | 1                  |                  |    |    |    |    |    |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld901RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 569        | 54.8             | 1                  |                  |    |    |    |    |    |    |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld909RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 8    | 12       | 24.2         | 0          | 1.69E-005   | 517        | 54.7             | 1                  |                  |    |    |    |    |    |    |    |    |    |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([T15].[_Fld8910RRef]))                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 8    | 12       | 24.2         | 0.00188    | 4.57E-005   | 415        | 54.7             | 1                  |                  |    |    |    |    |    |    |    |    |    |    |    |    |--Sort(ORDER BY:([T15].[_Date_Time] DESC, [T15].[_IDRRef] DESC))                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 8    | 12       | 24.2         | 54.5       | 0.0625      | 431        | 54.5             | 1                  |                  |    |    |    |    |    |    |    |    |    |    |    |    |    |--Clustered Index Scan(OBJECT:([av_db].[dbo].[_Document77].[PK___Documen__AC8ED0C453673394] AS [T15]), WHERE:([av_db].[dbo].[_Document77].[_Fld917RRef] as [T15].[_Fld917RRef]=[@P3] AND [av_db].[dbo].[_Document77].[_Fld924RRef] as [T15].[_Fld924RRef]=[@P4] AND [av_db].[dbo].[_Document77].[_Date_Time] as [T15].[_Date_Time]<[@P5] AND ([av_db].[dbo].[_Document77].[_Fld908RRef] as [T15].[_Fld908RRef]=[@P2] OR [av_db].[dbo].[_Document77].[_Fld908RRef] as [T15].[_Fld908RRef]=[@P1]))) |
| 0    | 8        | 1            | 0.00313    | 0.000158    | 111        | 0.069            | 24.2               |                  |    |    |    |    |    |    |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference22].[PK___Referen__AC8ED0C45DC591CD] AS [T16]), SEEK:([T16].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld8910RRef] as [T15].[_Fld8910RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                     |
| 8    | 8        | 1            | 0.00313    | 0.000158    | 61         | 0.0727           | 24.2               |                  |    |    |    |    |    |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference49].[PK___Referen__AC8ED0C408BA1173] AS [T17]), SEEK:([T17].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld909RRef] as [T15].[_Fld909RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                            |
| 8    | 8        | 1            | 0.00313    | 0.000158    | 111        | 0.0764           | 24.2               |                  |    |    |    |    |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference22].[PK___Referen__AC8ED0C45DC591CD] AS [T18]), SEEK:([T18].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld901RRef] as [T15].[_Fld901RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                 |
| 8    | 8        | 1            | 0.00313    | 0.000158    | 111        | 0.00696          | 24.2               |                  |    |    |    |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference45].[PK___Referen__AC8ED0C449D3A7B9] AS [T19]), SEEK:([T19].[_IDRRef]=[@P3]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                                                                                 |
| 8    | 8        | 1            | 0.00313    | 0.000158    | 111        | 0.0764           | 24.2               |                  |    |    |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference22].[PK___Referen__AC8ED0C45DC591CD] AS [T20]), SEEK:([T20].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld897RRef] as [T15].[_Fld897RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                           |
| 0    | 8        | 1            | 0.00313    | 0.000158    | 43         | 0.066            | 24.2               |                  |    |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference38].[PK___Referen__AC8ED0C475C73890] AS [T21]), SEEK:([T21].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld4291RRef] as [T15].[_Fld4291RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                              |
| 5    | 8        | 1            | 0.00313    | 0.000158    | 43         | 0.0654           | 24.2               |                  |    |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference38].[PK___Referen__AC8ED0C475C73890] AS [T22]), SEEK:([T22].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld8790RRef] as [T15].[_Fld8790RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                                   |
| 0    | 8        | 1            | 0.00313    | 0.000158    | 43         | 0.0128           | 24.2               |                  |    |    |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference38].[PK___Referen__AC8ED0C475C73890] AS [T23]), SEEK:([T23].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld9112RRef] as [T15].[_Fld9112RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                                        |
| 9528 | 8        | 1.19E+003    | 0.01       | 0.000315    | 77         | 0.0267           | 24.2               |                  |    |    |    |    |--Table Spool                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 7146 | 6        | 1.19E+003    | 0.00757    | 0.00147     | 77         | 0.00904          | 1                  |                  |    |    |    |         |--Index Scan(OBJECT:([av_db].[dbo].[_Reference27].[_Referenc27_Descr_SR] AS [T24]))                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 8    | 8        | 1            | 0.00313    | 0.000158    | 36         | 0.00696          | 24.2               |                  |    |    |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference8].[PK___Referen__AC8ED0C4034B50E0] AS [T25]), SEEK:([T25].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld885RRef] as [T15].[_Fld885RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                                                     |
| 216  | 8        | 27           | 0.0032     | 0.000108    | 87         | 0.00583          | 24.2               |                  |    |    |--Clustered Index Scan(OBJECT:([av_db].[dbo].[_Reference10119].[PK___Reference10119N__273D01E5] AS [T26]))                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 2    | 8        | 1            | 0.00313    | 0.000158    | 61         | 0.0683           | 24.2               |                  |    |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference49].[PK___Referen__AC8ED0C408BA1173] AS [T27]), SEEK:([T27].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld6486RRef] as [T15].[_Fld6486RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                                                            |
| 8    | 8        | 1            | 0.00313    | 0.000158    | 161        | 0.0102           | 24.2               |                  |--Clustered Index Seek(OBJECT:([av_db].[dbo].[_Reference37].[PK___Referen__AC8ED0C40EFCFAAE] AS [T28]), SEEK:([T28].[_IDRRef]=[av_db].[dbo].[_Document77].[_Fld935RRef] as [T15].[_Fld935RRef]) ORDERED FORWARD)                                                                                                                                                                                                                                                                                                                                                   |
 
+------+----------+--------------+------------+-------------+------------+------------------+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   H A D G E H O G s
 
3 - 10.01.13 - 14:04
Не увидел создания временной таблицы.
   H A D G E H O G s
 
4 - 10.01.13 - 14:04
А что, медленно работает?
   XSprinter
 
5 - 10.01.13 - 14:13
Нет, визуально проблем нет, но в Регламентном мониторинге в ЦУП данный запрос в первых рядах, поэтому стало интересно.
В плане запроса обратил внимание на
|--Table Spool 
|--Index Scan(OBJECT:([av_db].[dbo].[_Reference27].[_Referenc27_Descr_SR] AS [T24])) 
 
где в колонке Rows указано 9528.

PS: Пожалуйста, дайте ссылку на правильное оформление кода в сообщениях на форуме, в правилах не нашел.
   H A D G E H O G s
 
6 - 10.01.13 - 14:25
_Referenc27_Descr_SR

Странный какой-то индекс, если честно.
Че он по нему ищет то
   Fragster
 
7 - 10.01.13 - 14:29
Нету индекса по Документ.ЗаказНаряд_T15.СтатусОперативный?
   Fragster
 
8 - 10.01.13 - 14:30
ну и по хорошему - начальную дату надо тоже ограничивать
   H A D G E H O G s
 
9 - 10.01.13 - 14:31
(8) А зачем Скан по индексу для наименования спр. Сотрудники?
   Fragster
 
10 - 10.01.13 - 14:33
(9) если все необходимые данные содержаться в индексе, то скуль недавно(относительно, но с какой версии - не помню) научился не обращаться к основной таблице, а выбирать эти данные прямо из индекса.
 
 Рекламное место пустует
   XSprinter
 
11 - 10.01.13 - 15:01
В большинстве случаев (в этом плане запроса) 1С использует кластерный индекс справочников чтобы получить представление для ссылок.
Но в данном случае
_Referenc27_Descr_SR  - созданный платформой некластерный индекс включающий поля Ссылка и Наименование, и видимо опираясь на какие то статистики SQL Server решает что найти Наименование соответствующее Ссылке быстрее используя именно этот индекс.
Не понятно что такое Table Spool
   acsent
 
12 - 10.01.13 - 15:06
Оператор Table Spool просматривает входную таблицу и помещает копию каждой строки в скрытую буферную таблицу, которая находится в базе данных tempdb
   acsent
 
13 - 10.01.13 - 15:07
что за справочник?
   Fragster
 
14 - 10.01.13 - 15:10
мне интересно, (7) помогло, или нет?
   acsent
 
15 - 10.01.13 - 15:16
(14) а смысл? почему ты думаешь что система выберет его?
   Fragster
 
16 - 10.01.13 - 15:25
(15) что-то мне подсказывает, что у него будет наилучшая селективность
   Fragster
 
17 - 10.01.13 - 15:25
я ж телепат
   Jofa
 
18 - 10.01.13 - 15:39
Fragster На скока обработки в 1С работают быстрее когда запрос написан на СКУЛе?
   Fragster
 
19 - 10.01.13 - 15:39
(18) нинаскока
   Fragster
 
20 - 10.01.13 - 15:41
это я про селекты. update/insert/delete из скуля в 100500 раз быстрее, но не отрабатывают встроенные механизмы 1с, а также модули конфигурации, так что нужно сначала думать, потому делать.
   Jofa
 
21 - 10.01.13 - 15:41
(19)те одинаково? Можно реализовать Table Spool с помощью языка запросов 1С? Table Spool каким образом можно это пользовать?
   Fragster
 
22 - 10.01.13 - 15:42
(21) в (0) - открытие/проматывание формы списка документа
   Fragster
 
23 - 10.01.13 - 15:44
Table Spool там от безысходности
   Serginio1
 
24 - 10.01.13 - 16:02
(11) Интересно, а если сделать временную таблицу куда поместить этот ссылку и наименование (код )справочника и проиндексировать по ._IDRRef.
И сделать джойн к этой таблице
Появится ли этот Table Spool?
   acsent
 
25 - 10.01.13 - 16:07
может просто реиндекс сделать?
   Serginio1
 
26 - 10.01.13 - 16:08
Судя по http://support.microsoft.com/kb/937533/ru
Table Spool создает уникальный кластеризованный индекс для столбца при формировании плана выполнения запроса
   Fragster
 
27 - 10.01.13 - 16:09
(24) оно там не от того
(25) скорее обновление статистики, если все индексы оптимальные
   acsent
 
28 - 10.01.13 - 16:13
тк в итоге выводится одно наименование, то скл посчитал что лучше не из таблицы брать, а из индекса, для этого считывается весь индекс
   Fragster
 
29 - 10.01.13 - 16:14
(28) к (24), я так понимаю
   acsent
 
30 - 10.01.13 - 16:15
(28) собственно скл сделал то что предложено сделать в (24) средствами 1с
   Serginio1
 
31 - 10.01.13 - 16:24
(27) Ну для справочника  уникальный индекс по _IDRRef по любому есть. Другой вопрос, что он не кластерный или длина записи слишком длинная и легче создать кластерный индекс с нужными данными если количество обращений большое и выгоднее чем обращаться к индексу затем к записи
   Fragster
 
32 - 10.01.13 - 16:26
(31) table spool там не от того, что у справочника наименование фиговое, а от того, что из таблицы документа данные выбираются неоптимальным образом
   acsent
 
33 - 10.01.13 - 16:31
план в читабельном виде
http://paste.org.ru/?lt90g0
 
 
   acsent
 
34 - 10.01.13 - 16:33
(32) почему ты так решил?
   Fragster
 
35 - 10.01.13 - 16:33
(33) я так понимаю, что он делает 8 соединений, кидает в ВТ, затем результат во врем. таблицу, затем еще 5 соединений...
   Serginio1
 
36 - 10.01.13 - 16:33
(32) смотри 26 table spool  создает кластерный индекс.
Кстати одно из решений перестроение идекса с Большим количеством индексоом на странице  fill factor 

http://www.sql.ru/forum/actualthread.aspx?tid=270980
   acsent
 
37 - 10.01.13 - 16:35
(35) а мне кажется  что спул только таблицы 27 происходит
   Fragster
 
38 - 10.01.13 - 16:36
(37) а смысл ее помещать в ВТ?
   Fragster
 
39 - 10.01.13 - 16:36
кстати, max degree of parallelism стоит в 1?
   acsent
 
40 - 10.01.13 - 16:40
(38) см. (28) ИМХО
   acsent
 
41 - 10.01.13 - 16:41
в графическом виде бы посмотреть план
   acsent
 
42 - 10.01.13 - 16:41
(40) а может ты и прав
   Fragster
 
43 - 10.01.13 - 16:41
(40) т.е. table spool следствие того, что данные беруться только из индекса?
   Fragster
 
44 - 10.01.13 - 16:42
тогда тормозить не должно. ну и да, *берутся
   Fragster
 
45 - 10.01.13 - 17:04
кстати, по плану запроса большая часть тупизма происходит именно на выборке из таблицы документа, по этому мне интересен эффект от (7)
   Jaap Vduul
 
46 - 10.01.13 - 17:25
spool обычно оптимизатор использует, когда используется неуникальное соединение (т.е. как в данном случае Descr_SR вместо PK).
   Serginio1
 
47 - 10.01.13 - 17:26
(45) Ну судя по плану он просто сканирует кластерный индекс на условия это и самая дорогая операция
Clustered Index Scan(OBJECT:([av_db].[dbo].[_Document77].[PK___Documen__AC8ED0C453673394] AS [T15]), WHERE:([av_db].[dbo].[_Document77].[_Fld917RRef] as [T15].[_Fld917RRef]=[@P3] AND [av_db].[dbo].[_Document77].[_Fld924RRef] as [T15].[_Fld924RRef]=[@P4] AND [av_db].[dbo].[_Document77].[_Date_Time] as [T15].[_Date_Time]<[@P5] AND ([av_db].[dbo].[_Document77].[_Fld908RRef] as [T15].[_Fld908RRef]=[@P2] OR [av_db].[dbo].[_Document77].[_Fld908RRef] as [T15].[_Fld908RRef]=[@P1])))
   Fragster
 
48 - 10.01.13 - 17:31
(47) кластерный индекс для документа - это по дате. из-за условия Дата < &Дата. Нужно проанализировать селективность полей. ИМХО некластерный индекс по СтатусОперативный будет в данном случае быстрее. Нужно смотреть, конечно, но учитывая (17) я думаю, что выводятся какие-нибудь "незакрытые заказы старше хх дней"
   Serginio1
 
49 - 10.01.13 - 17:44
А разве кластерный индекс для документа не по IDDOC?
По дате он мог бы взять индекс по _Date_Time, но тогда пришлось бы прыгать от индекса к записи. И не факт, что СтатусОперативный не имеет большинство записей.
 
 Рекламное место пустует
   Serginio1
 
50 - 10.01.13 - 17:46
При этом по уму ему то как раз и нужно иддти по дате, так в выбрать первые 43  как сортировка по Дате и IDDOC.
   Fragster
 
51 - 10.01.13 - 17:51
ну тут надо смотреть, чего больше, документов < даты, или документов с нужным статусом. ИМХО с выбранным статусом должно быть документов меньше, чем всех документов до даты
   Fragster
 
52 - 10.01.13 - 17:52
и вообще, автор уже мог бы попробовать (7) и ответить нам
   Fragster
 
53 - 10.01.13 - 17:53
для этого даже не обязательно обновлять базу (по хорошему, конечно, надо), но ведь можно и в скуле индекс создать...
   Serginio1
 
54 - 10.01.13 - 18:00
(53) Ты не забывай про
TOP(43) 
ORDER BY (T15._Date_Time) DESC, (T15._IDRRef) DESC

Нужно всего то 43 записи сортированных по _Date_Time DESC и IDRRef DESC. Просто используя этот индекс можно пройтись по данным и остановиться на отборе 43 записей. И Это будет меньшей выборкой
   Fragster
 
55 - 10.01.13 - 18:03
(54) надо проверять, очень сильно зависит от данных.
   Fragster
 
56 - 10.01.13 - 18:03
в любом случае прыгать для проверки организации (кстати, почему она составного типа??) и статуса
   Serginio1
 
57 - 10.01.13 - 18:04
54 При твоем подходе нужно отобрать все записи по СтатусОперативный, затем отсортировать по дате и ссылке и выбрать первых 43 элемента. При этом количество отбранных записей может быть значительно выше чем при прохождении по дате с условием на максимальное количество выборки. Так как в этом случае не нужно ничего сортировать, так как уже при прохождении используется накладываемая сортировка
   acsent
 
58 - 10.01.13 - 18:04
(54) только чтобы получить эти 43 приходится пролопатить пару тыщ
   Fragster
 
59 - 10.01.13 - 18:05
(57) -> (56). вполне может быть, что документов 100к, с нужным статусом 1к, а с датой < &Дата - 90к
   Serginio1
 
60 - 10.01.13 - 18:08
(59) Ну тут еще и организации и прочее. Но в основном записи более или менее распределены. То есть если записей с нужным статусом в 10 раз меньше, то и просканировать придется в 10 раз больше а это 430 записей, что меньше чем 1К
   Serginio1
 
61 - 10.01.13 - 18:08
(58) смотри 60
   Demiurg
 
62 - 10.01.13 - 18:09
http://www.gilev.ru/1c/cloud/IndexesClient82.dt запустите, скажите какие индексы для _Document77 он порекомендует
   Demiurg
 
63 - 10.01.13 - 18:09
(47) просто нет нужного индекса
   Fragster
 
64 - 10.01.13 - 18:10
(60) тут без автора не понять. у нас подобная форма, например была, когда народ смотрел неотгруженные заказы ранее определенной даты. в принципе, неотгруженных заказов по сравнению с остальными - очень мало
   acsent
 
65 - 10.01.13 - 18:11
(61) там фильтров то поболее чем просто статус
   Serginio1
 
66 - 10.01.13 - 18:15
(64) В общем согласен и будет зависеть от значения этого статуса. В одном случаее ты прав в другом я. Для этого оптимизатор и существует.
(65) Ну так они если они равномерно и распределены, то не имеет значения.
   Demiurg
 
67 - 10.01.13 - 18:17
не правы оба, можно понять по количеству логических чтений
   Demiurg
 
68 - 10.01.13 - 18:19
правда тут есть претензия к тому как план запроса 1С придумала отображать )
   acsent
 
69 - 10.01.13 - 18:20
(68) это скуль так в текстовом виде выдает
   Serginio1
 
70 - 10.01.13 - 18:21
66 + еще интересно как будет реагировать план запрса если для списка ограничить диапозон дат
   Fragster
 
71 - 10.01.13 - 18:21
(67) а? разве он не всю таблицу читает?
   acsent
 
72 - 10.01.13 - 18:21
(71) нет конечно, там же топ стоит
   Fragster
 
74 - 10.01.13 - 18:22
(72) топ - самая верхняя операция. а самая дорогая - Clustered Index Scan(OBJECT:([av_db].[dbo].[_Document77].[PK___Documen__AC8ED0C453673394] AS [T15]), WHERE:([av_db].[dbo].[_Document77].[_Fld917RRef] as [T15].[_Fld917RRef]=[@P3] AND [av_db].[dbo].[_Document77].[_Fld924RRef] as [T15].[_Fld924RRef]=[@P4] AND [av_db].[dbo].[_Document77].[_Date_Time] as [T15].[_Date_Time]<[@P5] AND ([av_db].[dbo].[_Document77].[_Fld908RRef] as [T15].[_Fld908RRef]=[@P2] OR [av_db].[dbo].[_Document77].[_Fld908RRef] as [T15].[_Fld908RRef]=[@P1])))
   acsent
 
75 - 10.01.13 - 18:25
(74) там записей всего 24 потому что
   Serginio1
 
76 - 10.01.13 - 18:33
75

EstimateRows  

Предполагаемое количество строк вывода от данного оператора.  Только для строк типа PLAN_ROWS.  


EstimateIO  

Предполагаемые затраты на ввод-вывод* для данного оператора.  Только для строк типа PLAN_ROWS.
   Fragster
 
77 - 11.01.13 - 17:37
как там?
   Fragster
 
78 - 15.01.13 - 12:28
автор живой еще?


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