2011-11-09 2 views
1

10.000 레지스터를 삽입하는 MySql의 저장 프로 시저가 있습니다. MySql 커맨드 라인에서 쿼리를 실행하면 쿼리는 1 초가 걸리지 만, 필자가 작성한 .NET C# 애플리케이션에서 실행하면 약 8 초가 걸립니다.MysqlConnector를 사용하여 C# app에서 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 시간 및 MySql 명령 줄 실행 시간.

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

.net 프로그램에서만 쿼리 실행이 수행되는 것은 아닙니다.

+0

첫 번째 게시물에 명시된 항목을 제외하고 말했지만 여러분에게 말한 것과 같은 타이밍이 있습니다! –

관련 문제