Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимизация запроса / структуры данных / 4 сообщений из 4, страница 1 из 1
20.11.2019, 14:50
    #39891709
stdvb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса / структуры данных
Есть такие данные:

id int,
d datetime

Общее кол-во записей большое.
Кол-во уникальных id ~100.
Добавление и удаление данных происходит редко.

Нужно так хранить данные, что бы быстро получать результаты запросов такого вида:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select id, d
from data
where id = @id and d between @d1 and @d2

select distinct id
from data

select id, min(d), max(d)
from data
group by id



Как лучше всего организовать хранение данных? Или можно запросы как-то по другому написать?

Если просто сохраняю все в одной таблице с кластерным индексом по (id, d), то первый запрос выполняется быстро, а второй и третий - медленно.
Знания ms sql поверхностные. Умею немного писать селекты.
...
Рейтинг: 0 / 0
20.11.2019, 15:03
    #39891728
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса / структуры данных
stdvb,

1.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create view v_data__id
with schemabinding
as
select
 id, count_big(*) as c
from
 data
group by
 id;
go

create unique clustered index CUIX_v_data__id on v_data__id (id);
go

2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select id from v_data__id with (noexpand);

select
 a.id, b.min_d, c.max_d
from
 v_data__id a with (noexpand) cross apply
 (select top (1) d from data where id = a.id order by d) b(min_d) cross apply
 (select top (1) d from data where id = a.id order by d desc) c(max_d);
...
Рейтинг: 0 / 0
20.11.2019, 15:22
    #39891750
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса / структуры данных
stdvb,

Секционирование и колоночный индекс
...
Рейтинг: 0 / 0
20.11.2019, 15:47
    #39891781
stdvb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса / структуры данных
invm,
Спасибо, работает.

Критик,
Спасибо за вариант, но предыдущее решение подошло, пока что остановлюсь на нем.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимизация запроса / структуры данных / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]