Z1 писал(а) 08. Апреля 2011 :: 10:26:oav писал(а) 08. Апреля 2011 :: 10:15:конструкция
(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime)
преобразования типов очень сильно замедляет запрос...
приведи полностью запрос
если эта конструкция в условие where то да
очень сильно может влиять только не из-за преобразования типов а из-за то го что
нельзя воспользоваться индексом.
если в списке select то практически никак не влияет.
я просто для экперимента в запросе изменил
|SELECT Контрагенты.DESCR Наименование
| , Sum($РасходнаяНакладнаяСтроки.Сумма) СуммаРасходнаяНакладнаяСтрокиСумма
|FROM _1SJOURN AS Журнал With (NOLOCK)
| INNER JOIN $Документ.РасходнаяНакладная AS РасходнаяНакладная With (NOLOCK) ON Журнал.IDDOC = РасходнаяНакладная.IDDOC
| INNER JOIN $ДокументСтроки.РасходнаяНакладная AS РасходнаяНакладнаяСтроки With (NOLOCK) ON Журнал.IDDOC = РасходнаяНакладнаяСтроки.IDDOC
| INNER JOIN $Справочник.Контрагенты AS Контрагенты With (NOLOCK) ON $РасходнаяНакладная.Клиент = Контрагенты.ID
|WHERE (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) BETWEEN :НачДата AND :КонДата)
|GROUP BY Контрагенты.DESCR
|";
вместо
|WHERE (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) BETWEEN :НачДата AND :КонДата)
поставил
|WHERE (Журнал.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата)
и разница заметна не вооруженным глазом !