Мне часто нужно выбрать последнюю строку в секционированной таблице до определенного времени. Это то, что я использую:
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
не должно возвращать все строки; в худшем случае он должен создавать только список допустимых индексов. Вы видите какое-то резкое замедление с этим запросом по сравнению с тем, что вы ожидаете? Как вообще устроена эта таблица? Это все в памяти? Растянутый? Разделено? - person chrisaycock   schedule 29.05.2013