Сократить время запроса
От: Funny Rabbit Россия  
Дата: 07.11.18 14:39
Оценка:
Имеется таблица:
create table T (A int not null primary key, b int, c int, d float)
Как сократить время выполнения запроса «select b, sum(d) from T group by b»?
То что меня не убивает, делает меня умнее.
Re: [Ora]Сократить время запроса
От: Funny Rabbit Россия  
Дата: 07.11.18 16:30
Оценка:
Здравствуйте, Funny Rabbit, Вы писали:

FR>Имеется таблица:

FR>create table T (A int not null primary key, b int, c int, d float)
FR>Как сократить время выполнения запроса «select b, sum(d) from T group by b»?

Может так?



1. select distinct b, sum(d) over(partition by b) from T
2. alter table T add index (b);
То что меня не убивает, делает меня умнее.
Re[2]: [Ora]Сократить время запроса
От: Sharov Россия  
Дата: 07.11.18 17:10
Оценка: 4 (1)
Здравствуйте, Funny Rabbit, Вы писали:

FR>Может так?




FR>
FR>1. select distinct b, sum(d) over(partition by b) from T
FR>2. alter table T add index (b);

FR>


Типа того, на запрашиваемое поле должен быть индекс.
Кодом людям нужно помогать!
Re[2]: [Ora]Сократить время запроса
От: Olaf Россия  
Дата: 07.11.18 19:58
Оценка: 6 (2) +2
Здравствуйте, Funny Rabbit, Вы писали:

FR>Может так?


FR>
FR>1. select distinct b, sum(d) over(partition by b) from T
FR>2. alter table T add index (b);

FR>


Я сильно сомневаюсь, что используя distinct и оконную функцию вы увеличите производительность запроса, в котором отсутствует фильтрация данных. Максимум, что можно сделать это создать покрывающий индекс, в идеале аналог в MS SQL Server индекса со включенными столбцами (include columns). Если такой возможности нет, то...
alter table T add index (b, d);
Re: Сократить время запроса
От: vsb Казахстан  
Дата: 07.11.18 21:31
Оценка: 2 (1) +1
Можно кешировать этот запрос в другой таблице раз в сутки, например, тогда останется посчитать только сумма по сегодняшним записям.
Re: Сократить время запроса
От: Sergei MO Россия  
Дата: 08.11.18 13:16
Оценка:
Здравствуйте, Funny Rabbit, Вы писали:

FR>Как сократить время выполнения запроса «select b, sum(d) from T group by b»?


Использовать Materialized View.
Re[2]: Сократить время запроса
От: Funny Rabbit Россия  
Дата: 10.11.18 03:47
Оценка:
Здравствуйте, Sergei MO, Вы писали:

SM>Здравствуйте, Funny Rabbit, Вы писали:


FR>>Как сократить время выполнения запроса «select b, sum(d) from T group by b»?


SM>Использовать Materialized View.


Ну для конкретного примера это очень жестко.
То что меня не убивает, делает меня умнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.