2011-11-09 26 views
1

我在MySql中有一个存储过程,插入10.000个寄存器。当我从MySql命令行执行它时,查询需要1秒,但是当我从我写的.NET C#应用程序执行时,大约需要8秒。使用MysqlConnector从C#应用程序执行MySql存储过程很慢吗?

你有什么暗示吗?

  • MySQL服务器版本5.5.16是

  • 而且也做了测试,我已经试过了Mysql的净连接器的一些版本,但我得到了相同的结果。

  • 我已经在两台不同的32位和64位计算机上执行了控制台应用程序。

C#代码:

string connStr = "ommited"; 

    MySqlConnection conn = MySqlConnection(connStr); 

    MySqlCommand micomando = new MySqlCommand("CALL my_procedure();", conn); 
    micomando.Connection.Open(); 
    micomando.ExecuteNonQuery(); 

    ArrayList recordSet = new ArrayList(); 

    conn.Close(); 

预先感谢您!

+0

你确定你只执行10.000次通话而不是一些额外的代码,如连接打开/关闭?这些操作非常缓慢。 – Tudor

+0

我确定。我从我的监控中提取了打开/关闭连接的开启/关闭,因为这是我怀疑的第一件事 –

回答

0

Comapare ExecuteNonQuery time和MySql命令行执行时间。

Stopwatch sw = Stopwatch.StartNew(); 
micomando.ExecuteNonQuery(); 
sw.Stop(); 
Console.WriteLine("Time taken: {0}ms", sw.Elapsed.TotalMilliseconds); 

查询执行不是.NET程序完成的唯一任务。

+0

我在第一篇文章中指定了,但我得到了像您说的那样的时间安排! –