Оптимальный способ создания и использования соединения ODP.NET - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь понять, какой самый эффективный и в то же время обслуживаемый способ создания и использования соединений с ODP.NET.

Мой стандартный подход к написанию функций в VB.NET, использующих ODP.NET, выглядит примерно так:

Function GetDataTable() As DataTable

    Using Connection = New OracleConnection(connectionStringNHH)
        Using Command As OracleCommand = Connection.CreateCommand()
            Using DataAdapter As New OracleDataAdapter()

                'Do stuff, fill dt

            End Using
        End Using
    End Using

    Return dt

End Function

Однако, согласно документации Oracle:

вход и выход из базы данных является чрезвычайно ресурсоемкой операцией [ 1 ]

Создание и удаление объекта подключения входит и выходит из базы данных каждыевремя, когда эта функция вызывается, или сеанс как-то сохраняется во всем приложении?

Если нет, должен ли я использовать объект общего подключения через мое приложение?Это кажется плохой практикой по ряду причин.

1 Ответ

1 голос
/ 23 мая 2019

По умолчанию вы получаете пул соединений внутри OracleConnection. Время жизни соединения и соответствующие сеансы, открытые с базой данных, будут контролироваться пулом. См. Документ ODP.NET для всех деталей.

Лучше всего убедиться, что эти соединения и другие объекты оракула закрыты и удалены.

Вот лучшая колода, которая должна помочь:

https://www.oracle.com/technetwork/topics/dotnet/tech-info/oow18dotnetperfbp-5212811.pdf

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