Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Операция сортировки при группировании данных  [new]
Sandist
Member

Откуда:
Сообщений: 397
Здравствуйте, помогите пожалуйста разобраться с запросом
SELECT cast(cast( Cast([date_tt] as datetime)-datepart(weekday, Cast([date_tt] as datetime))+1 as date)as datetime) as Period,
	DTT.id_tt
	,DTT.id_tov
	,SUM([post]) post
	,SUM([digust]) digust
	,SUM(([spisanie] + [spisanie_dost])*[price]) spisanie
	,SUM([spisanie_kach]*[price]) spisanie_kach
	,SUM([boi]) boi
	,SUM([akcia]) akcia
	,SUM([razniza]) razniza
	,SUM([razniza]) raznizaRaschet
	,SUM([summa]) summa
	,SUM([quantity]) rashod
 	,SUM([quantity]) rashodKKM
	,SUM([vozvrat_pok]) vozvrat_pok
	,SUM([peremPlus]) polucheno
	,SUM([peremMinus]) peremesheno
	,SUM([complect]) complect
	,SUM([discount50]) discount50
	,Avg([price]) price
FROM [vv03].[dbo].[DTT] DTT (nolock) 

where date_tt >= '2017-11-13' and date_tt <= '2017-12-10'
			
GROUP BY 
	 DTT.id_tt, DTT.id_tov , cast(cast( Cast([date_tt] as datetime)-datepart(weekday, Cast([date_tt] as datetime))+1 as date)as datetime)


в плане запроса показывает операцию сортировки с желтым воскл знаком (предупреждение), подскажите плиз, как можно оптимизировать данный запрос? запрос выдает 2198086 строк

К сообщению приложен файл. Размер - 27Kb
12 дек 17, 09:58    [21025961]     Ответить | Цитировать Сообщить модератору
 Re: Операция сортировки при группировании данных  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20206
Ну а как группировать, чтобы по вычисляемому выражению, да без сортировки?
12 дек 17, 10:06    [21025989]     Ответить | Цитировать Сообщить модератору
 Re: Операция сортировки при группировании данных  [new]
Cammomile
Member

Откуда:
Сообщений: 1212
Автор, попробуй вынести
cast(cast( Cast([date_tt] as datetime)-datepart(weekday, Cast([date_tt] as datetime))+1 as date)as datetime) as Period, DTT.id_tt

В #Таблицу, с кластерным индексом по ID, ВычисляемоеПоле
12 дек 17, 10:14    [21026016]     Ответить | Цитировать Сообщить модератору
 Re: Операция сортировки при группировании данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Cammomile,

и получит сортировку на вставке
12 дек 17, 10:18    [21026027]     Ответить | Цитировать Сообщить модератору
 Re: Операция сортировки при группировании данных  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Sandist
подскажите плиз, как можно оптимизировать данный запрос?
Какие критерии оптимизации? Чтобы восклицательного знака не было, или что? А вы уже посмотрели что именно он пишет под знаком?

1. Обновите статистику по date_tt
2. Добавьте памяти.
13 дек 17, 02:56    [21029244]     Ответить | Цитировать Сообщить модератору
 Re: Операция сортировки при группировании данных  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
если таки вам надо разбить на периоды - таки и разбивайте на периоды явно, а не мучте оптимизатор.
13 дек 17, 15:19    [21030951]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить