Я создал торговую базу данных на своей локальной машине, разбитую по дате.Как улучшить время для выбора в kdb
select from trade where date=x
занимает около 100 мс, но когда я делаю:
select from trade where date=x,sym=`alpha
это занимает ~ 1-3 секунд.
Есть трюк, который мне не хватает (с помощью `g#sym
выдается сообщение 'par
).
Я попробовал setattrcol [':/kdb/testdb;' trade; 'sym;' p #]. Это дает мне ошибку типа. Я попробовал его с образцом db с dbmaint.q, и он работал нормально, но с моим образцом db он выдавал ошибку типа. Я пытаюсь проверить, не пропустил ли я что-то при создании образца db. если вы знаете какие-либо очевидные ошибки, посоветуйте PLS. –
Можете ли вы дать мета таблицы? Чтобы применить p #, вам нужно убедиться, что столбец sym упорядочен правильно, т. Е. Все записи для каждого символа рядом друг с другом. Еще одна вещь, я верю в ваш звонок выше, вам не нужно #. должен быть просто [:/kdb/testdb; trade; sym; p] (с необходимыми обратными тиками). – user1895961
Мета выглядит следующим образом: с \t т \t е \t дата \t "д" \t \t с trdId \t "F" \t \t сим \t "с" \t \t symType \t "с" \t \t экспирации \t "г" \t \t вариант \t "s" \t \t corpAction \t "с" \t \t удар \t "е" \t \t время \t "v" \t \t цена \t "е" \t \t количество \t "е" –