получение записи с максимальной датой на пользователя и вставка ее во временную таблицу - проблема производительности - PullRequest
0 голосов
/ 04 марта 2020

Мне нужно получить maxdate для useraccount из таблицы операторов и вставить в временную таблицу. Таблицы выписок содержат более 40 миллионов записей. Я попытался следующий запрос, и это заняло более 4 минут. Есть ли лучший способ сделать это?

     select useraccount, max(date) into #temptable from statement
      group by useraccount

1 Ответ

2 голосов
/ 04 марта 2020

Группировка может быть дорогой. И 4 минуты не кажутся такими уж плохими для обработки и создания большого стола. Но если у вас есть индекс на (useraccount, date), вы можете попробовать:

 select useraccount, date
 into #temptable
 from statement s
 where date = (select max(s2.date) from statement s2 where s2.useraccount = s.useraccount);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...