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.