На самом деле я сейчас занимаюсь тестированием производительности с помощью многопоточного Java-процесса на Sybase ASE. Процесс анализирует файл размером 1 ГБ и вставляет в таблицу.
Сначала я боялся, потому что многие старшие программисты предупреждали меня о «блокировке таблиц» и о том, как опасно делать параллельный доступ к БД. Но я пошел дальше и сделал тестирование (потому что я хотел выяснить для себя).
Я создал и сравнил однопоточный процесс с процессом, использующим 4 потока. Я получил только 20% сокращение общего времени выполнения. Я повторил процесс, используя разные числа потоков и размеры пакетных вставок. Максимум, который я мог сжать, составлял 20%.
Мы скоро перейдем на Oracle, поэтому я поделюсь с вами тем, как Oracle обрабатывает параллельные вставки, когда это происходит.