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

Откуда:
Сообщений: 2
Подскажите что будет быстрее обрабатываться тип char или date и если можно почему?
количество строк в таблице - более 300 млн.
Требование - скорость формирования отчета
Period - datetime
YEAR - char(4)
MONTH - char(2)

Select YEAR(Period) as YEAR, Month(Period) as MONTH, …
..
GROUP BY YEAR(Period), Month(Period)
ORDER BY YEAR, Month

или

Select YEAR, Month, …
..
GROUP BY YEAR, Month
ORDER BY YEAR, Month
7 сен 12, 19:30    [13132326]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрее обрабатывается char или date  [new]
Читатель неместный
Guest
datetime быстрее будет, если конешно в этой задаче есть вобще что нибудь кроме этого запроса
7 сен 12, 19:35    [13132351]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрее обрабатывается char или date  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
Andrey1965,

думаю, что второй вариант при наличии кластерного индекса по Year + Month будет быстрее. А ещё размер таблицы играет, если сделать Year типа smallint, а Month - tinyint, должно быть ещё чуть быстрее.
7 сен 12, 19:36    [13132353]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрее обрабатывается char или date  [new]
непонятна
Guest
Andrey1965,

непонятна идея со строками. если всегда нужно разбитое по годам и месяцам - хранить отдельно, но в естественном типе. для чисел естественны числовые типы. месяц в tinyint будет занимать 1 байт, в char(2) - соотв. - 2.

брать функции от даты, естественно, медленнее чем не брать.
7 сен 12, 19:44    [13132383]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрее обрабатывается char или date  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
Радикально ускорить можно, если получится сделать indexed view с group by внутри.
7 сен 12, 20:08    [13132489]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрее обрабатывается char или date  [new]
Andrey1965
Member

Откуда:
Сообщений: 2
эта таблица представляет агегат данных по 10 полям. запросы строятся тяжелые, вложенные друг в друга и период данных (месяц и год) используется всегда. период данных используется как фильр, индекс, элемент группировки и т.д.
11 сен 12, 00:14    [13143202]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить