powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Следующая запись
14 сообщений из 14, страница 1 из 1
Следующая запись
    #40112061
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Имеется таблица. 2 млн записей. PeopleId, date….
Собственно надо для каждой записи по человеку найти следующую.

Сделал подзапросом с first- ушло в кому.

В результате надо посчитать для каждой записи по челу временной интервал до следующей записи


Мож кто что подскажет. Индексы все в наличии

Спасибо
...
Рейтинг: 0 / 0
Следующая запись
    #40112064
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swv,

Покажи запрос и план
...
Рейтинг: 0 / 0
Следующая запись
    #40112066
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swv,

покажи сам запрос и план. А ещё версию Firebird
...
Рейтинг: 0 / 0
Следующая запись
    #40112083
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select first 100 c, datee,next_date,e_type
,
datediff(minute from cast(datee as date) to cast(next_date as date))  TIMEDIFF
from (
select first 100 site_log_raw.c,site_log_raw.datee, site_log_raw.e_type,
(select first 1 datee  from site_log_raw z where z.orders_all_ext_78_id = site_log_raw.orders_all_ext_78_id and z.datee > site_log_raw.datee )
    next_date
 from site_log_raw
)



индекс по orders_all_ext_78_id,datee

FB 2.5
...
Рейтинг: 0 / 0
Следующая запись
    #40112085
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
план еще нужен.

скорее всего по дате индекс DESC нужен.
...
Рейтинг: 0 / 0
Следующая запись
    #40112086
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swvиндекс по orders_all_ext_78_id,datee

В подзапрос надо добавить ORDER BY orders_all_ext_78_id,datee. Иначе он не
просто будет медленным, но и вообще вернёт чушь. Проследить, что его план стал
ORDER.
Derived table тут совершенно ни к чему. Особенно с first без order.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Следующая запись
    #40112106
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

order by добавил.


план такой

Plan
PLAN (Z ORDER SITE_LOG_RAW_IDX9 INDEX (SITE_LOG_RAW_IDX9))
PLAN (SITE_LOG_RAW NATURAL)


первый сто записей выдал через 31 секунду )

индексных чтений 1097376

для первых ста записей подзапрос "перебирает" 128051 записей (это если вместо first count написать - сумма по 100 записям)
...
Рейтинг: 0 / 0
Следующая запись
    #40112110
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swvплан такой

Неправильный план. Тренируйся на кошках пока не научишься добиваться ORDER.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Следующая запись
    #40112128
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swv,

правильно понимаю - если для конкретного человека 10 записей, то надо выдать 9 интервалов, если 100 записей, то 99 интервалов?
...
Рейтинг: 0 / 0
Следующая запись
    #40112240
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI
Swv,

правильно понимаю - если для конкретного человека 10 записей, то надо выдать 9 интервалов, если 100 записей, то 99 интервалов?


почти. надо на каждую запись выдать или ид или время следующей. последняя запись получается будет с пустым временем следующей записи
...
Рейтинг: 0 / 0
Следующая запись
    #40112249
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
звучит как задача для рекурсивного CTE
...
Рейтинг: 0 / 0
Следующая запись
    #40112277
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

скорее оконные функции.
...
Рейтинг: 0 / 0
Следующая запись
    #40112326
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvскорее оконные функции.
Да. Но, учитывая 2.5 и неопытность аффтара - я бы посоветовал ему использовать
PSQL. Там эта задача решается "в лоб".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Следующая запись
    #40112331
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

kdvскорее оконные функции.

Да. Но, учитывая 2.5 и неопытность аффтара - я бы посоветовал ему использовать
PSQL. Там эта задача решается "в лоб".


+100500. Swv, пиши хранимку. Всё равно просматривать всю таблицу. Пускай цикл в порядке человек-дата-время и считай.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Следующая запись
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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