Dicas .NET - Com o provider OLEDB, utilize commandtype.Text

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Veja nesta dica, como utilizar o commandtype.Text para o provider OLEDB, aumentando com isso o ganho de performance.

Para chamarmos uma stored procedure no servidor de banco normalmente utilizamos o objeto command e definimos o commandtype como storedproc.

Porém quando isso é feito com o Data Provider do OLEDB o que o OLEDB faz é transformar o nome da procedure que configuramos no CommandText na síntaxe do ODBC para chamada de procedures (Calma ! Ele não vai usar ODBC, só a síntaxe!).

 

O mal disso é que essa transformação do nome da procedure para a síntaxe ODBC gasta um tempinho (muito pouco, mas gasta), então se desejarmos uma otimização neste ponto podemos utilizar o commandtype.text e utilizarmos a síntaxe odbc diretamente no commandText. Usando a síntaxe ODBC diretamente, o provider do OLEDB não terá o trabalho de converter a síntaxe.

 

Exemplo:

Dim cmd As New OleDb.OleDbCommand("Call CustOrderHist(?)", CN)

Dim dr As OleDb.OleDbDataReader

cmd.CommandType = CommandType.Text

cmd.Parameters.Add("@CustomerID", OleDb.OleDbType.Char, 5)

cmd.Parameters("@CustomerID").Value = "ALFKI"

CN.Open()

 

dr = cmd.ExecuteReader

 

Já com o Data Provider do SQL Server ocorre justamente o contrário: Temos um overhead de performance se usarmos o commandtype.text, devemos estar usando o commandtype.storedproc.

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?