Desempenho do OLEDB para ler o Excel

O código a seguir leva 2500 milissegundos em um computador i7- * 3.4 GHz do windows-7 de 64 bits para ler uma planilha do excel com 25.000 linhas e 5 colunas. Cada célula inclui aproximadamente uma string com 10 caracteres. Isso é normal? Como posso ler mais rápido?

 Stopwatch sw1 = Stopwatch.StartNew();
 var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; " +
                                             "Extended Properties=Excel 12.0;", filename);

 var adapter = new OleDbDataAdapter("SELECT * FROM [roots$]", connectionString);
 var ds = new DataSet();
 adapter.Fill(ds, "roots");
 sw1.Stop(); Console.WriteLine("Time taken for excel roots: {0} ms", sw1.Elapsed.TotalMilliseconds);

questionAnswers(1)

yourAnswerToTheQuestion