Я столкнулся с проблемой в моей компании, которая заключается в том, что скорость нашей программы недостаточно высока.Если быть более точным, то мы являемся телекоммуникационной компанией, и эта программа обрабатывает транзакции вызова / интернет-серфинга, совершаемые всеми пользователями мобильных телефонов в нашем городе.Поскольку объем загружаемого контента пользователями iphone слишком велик, наша программа не может обработать их достаточно быстро.
Ситуация такова, что количество транзакций, выполненных пользователями, вдвое больше транзакций, обрабатываемых нашей программой,Большую часть времени выполнения программы занимают транзакции с БД.
Я искал в Интернете и просматривал некоторые сайты (например: http://www.javaperformancetuning.com/tips/rawtips.shtml), говоря о производительности Java в БД, ноЯ не могу найти предложение, подходящее для нас.
Эти советы не применимы / уже используются, например:
1.Используйте готовые заявления.Использовать параметризованный SQL
Уже использованный подготовленный оператор.Каждый раз будет использоваться другой параметр путем очистки параметров и установки параметров.
2.Настройте SQL для минимизации возвращаемых данных (например, не «SELECT *»).
Конечно, уже используется.
3.Используйте пул соединений.
Мы удерживаем одно соединение во время выполнения программы.И я сомневаюсь, что объединение в пул не может решить проблему, потому что наша программа действует как 1 пользователь, поэтому нет проблем для одновременного доступа к БД.Если кто-то из вас думает, что объединение это хорошо, пожалуйста, скажите мне, почему.Спасибо.
4.Попробуйте объединить запросы и пакетные обновления.
Невозможно это сделать.Каждый запрос / вставка / обновление зависит от информации базы данных.Например, мы ищем в БД информацию о клиенте, если мы не можем найти его использование, мы вставляем его в БД, в противном случае мы делаем обновление.
5.По завершении закройте ресурсы (Соединения, Операторы, Наборы результатов)
Конечно.
6.Выберите самый быстрый драйвер JDBC.
Я не знаю.Я ищу в Интернете тип водителя, и я очень запутался.Мы используем oracle.jdbc.driver.OracleDriver
, и мы используем тонкий вместо oci, это все, что я знаю.Кроме того, наша программа является двухуровневой (java <-> oracle)
7.Отключите автоматическую фиксацию
, которая уже сделала это.
Ожидание любой помощи.