Зависит от :) Вы можете установить размеры кэша, глубину выборки (для внешних объединений), размеры выборки пакета и многое другое.
Возможно, вы не хотите слишком много регистрироваться (show_sql => установлено в false, format_sql => установлено в false, use_sql_comments => установлено в false).
Но на самом деле, это зависит, и вы должны измерить.
Также важно использовать и правильно настроить пул соединений.
Здесь снова: используйте здравый смысл и меру.
Надеемся, эти ссылки окажутся полезными:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html
Важнейшим моментом является правильная модель. Производительность будет проблемой, если генерируется много запросов sql, которые выполняют массовые объединения. Поэтому, если производительность критична, вам придется немного подумать о нормализации или, фактически, о том, чтобы НЕ делать слишком много нормализации в моделировании отношений сущности.
Кроме того, коллекции и то, как вы моделируете / обрабатываете их, могут играть большую роль с точки зрения производительности.
А что касается кэширования: в зависимости от вашего варианта использования вы можете значительно увеличить производительность, если правильно сконфигурируете кэш второго уровня (например, Ehcache). Это опять-таки означает: подумайте о том, что можно кэшировать, а что нет, а также о том, как долго и как долго ваши кэши могут и должны быть. Так что, действительно, действительно зависит:)