Мне часто приходится выбирать последнюю строку в многораздельной таблице, до определенного времени. Это то, что я использую:Запросы времени во времени kdb
select last A,last B,last C from mytable where date=2013.05.23,ts<10:30:00,A in (`Bob`Jane)
Этот запрос, вероятно, загружает все `Bob`Jane строки до 10:30:00, затем возвращает последнюю строку. Есть ли более эффективный способ запуска запросов «точно в момент времени» в kdb?
Некоторые исходные данные для моей таблицы:
/select all data
\t t: select ...
1724i
count t
2225311i
\t select ... ts<15:00:00
2040i
\t select ... ts<12:00:00
1092i
\t select ... ts<10:00:00
521i
Предложение 'where' не должно возвращать все строки; в худшем случае он должен только составить список действительных индексов. Вы видите резкое замедление с этим запросом по сравнению с тем, что вы ожидаете? Как эта таблица структурирована в любом случае? Все ли в памяти? Распущенные? Разделенный? – chrisaycock
@chrisaycock Добавлена дополнительная информация к вопросу. –