Я не уверен, понимаю ли я конкретную проблему хорошо, но в общих чертах я хотел бы сделать это следующим образом:
- Я бы определить условия для максимального количества строк, которые будут вставлены
- я бы определить условия для максимального времени, чтобы иметь возможность пройти, прежде чем запланированная строка вставляется
- я бы нить с очередью записей Params быть вставлен
- всякий раз, когда новая строка необходима, чтобы вставить Я бы добавил его в очередь
- всякий раз, когда строка добавляется в очередь, если количество строк достигает максимального количества строк, я бы выдал объемную вставку и очистил очередь
- , когда очередь инициализирована/очищена. Я установил бы таймер на 0
- когда время истекло достигает максимального времени, определенного в настройке, я бы выполнить объемную вставку и очистит очередь
Ваш подход, по существу, для последовательного насыпной-вставки (один за другим). Мой вопрос заключается в нескольких вставках, которые поступают из разных частей приложения (разные болты - штормовой путь). Как дорого стоит сделать, скажем, 30 объемных вставок, где каждая вставка вставки обрабатывает минимум 15 тыс. Записей? –
@KavithaMadhavaraj, мое предложение состоит в том, чтобы использовать отдельный поток для объемных вставок, поэтому вы можете запускать по одному. Вы можете запускать его асинхронно. Что касается вопроса в вашем комментарии, на самом деле это зависит от вашей текущей ситуации. Как вы собираете данные, сколько столбцов имеет целевая таблица, сколько запросов на выбор выполняется в среднем и какова их сложность. Вам также нужно избегать наводнения сервера, лучше подождать некоторое время, чем сбой сервера ... –
Выполнять одно вставку в один раз за раз? В этом есть смысл. –