Как правило, не рекомендуется выполнять длительные запросы к базе данных с частыми обновлениями. Это значительно снижает производительность из-за блокировки.
Это может быть хорошей идеей, чтобы заглянуть в хранилища данных и посмотреть, если это то, что вы могли бы использовать. Это позволит вам размещать транзакции в отдельной базе данных и загружать ее из нее в другую базу данных, которая будет иметь ваш склад.
Это значительно повысит производительность как для вставок, так и для запросов. В транзакционной базе данных могут отсутствовать индексы, а в хранилище могут быть все нужные вам индексы.
Вы также можете поместить склад в базу данных хранилища столбцов. Это дало бы вам лучшее время запроса с минимальными усилиями, потому что нет необходимости создавать индексы в хранилище столбцов, все, что вам нужно сделать, это правильно спроектировать схему. Недостаток хранилищ столбцов заключается в том, что вставки, обновления и удаления очень медленны по сравнению с реляционными базами данных. Но массовая загрузка из транзакционной базы данных должна помочь. Если вам требуется, чтобы данные были очень актуальными, вы можете выполнять массовую загрузку каждые несколько минут. Если вам просто нужны данные за предыдущий день, вы можете загружать их на склад каждую ночь.
Возможности безграничны. Если вы хотите заглянуть в склады колонного магазина, вы можете попробовать MonetDB. Это хранилище столбцов с открытым исходным кодом, так что вы можете попробовать его и посмотреть, подходит ли вам что-нибудь.