С ojdbc6 getMetaData () на пиках набора результатов в количестве выполненных sql, не смотрите это с ojdbc5 - PullRequest
2 голосов
/ 05 апреля 2011

мы используем getMetaData () для каждого курсора, возвращаемого из вызова хранимой процедуры оракула. ​​

С ojdbc5 у нас нет всплеска количества выполненных метаданных sql и среднего времени. Но с ojdbc6 мы видим всплеск количества выполненных метаданных sql и увеличение времени выполнения avg sql.

Кто-нибудь знает или знает об этой проблеме с ojdbc6 ... Жаль, что они сделали это с открытым исходным кодом?

кто-нибудь хотя бы пытался декомпилировать jar ojdbc6 в любое время?

1 Ответ

1 голос
/ 14 апреля 2011

проблема в том, как SimpleJdbcCall из Spring работает, он получает метаданные процедуры и аргументы для каждого вызова. даже если они не должны его кэшировать, должна быть настройка, которая включает и отключает кэширование метаданных при использовании SimpleJdbcCall.

При использовании SimpleJdbcCall ... остерегайтесь конфликта метаданных, который случается ... если в вашем приложении слишком много вызовов процедур pl / sql, тогда оракул может получить конфликт защелок, и, следовательно, все приложение замедлится, так как это вызывает узкое место ... серверы даже аварийно завершают работу, делая приложение не отвечающим требованиям. добавьте небольшой кеш, погрузившись в код Spring и сделайте флаг для включения / выключения ... tadaanngggg .. он работает потрясающе быстрее, чем когда-либо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...