2011-11-09 70 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

我在第一篇文章中指定了,但我得到了像您說的那樣的時間安排! –