2012-07-23 2 views
-1

많은 삽입/업데이트 쿼리를 실행하는 Windows 양식 응용 프로그램을 만들고 있습니다. 소량의 정보 (700 행)를 삽입하는 경우에도 몇 분 동안 기다려야합니다. 내가 데이터를 복원하고 때 삽입 된 (데이터를 복원 I 쿼리를 삭제/업데이트를 사용하고 있습니다) 저에 대한 이상한 속에서응용 프로그램 삽입/업데이트 쿼리 최적화

foreach (DataRow row in dt.Rows) 
    { 
     for (int i = 0; i < dt.Columns.Count; i++) 
     { 
     listItems.Add(row[dt.Columns[i].ColumnName], ListOperator.Comma); 
     } 
    var insQry = "INSERT INTO table ("; 
    insQry = insQry + colList + ") VALUES (" + listItems.ToString() + ")"; 
    var tbl = server.RunQuery(insQry); 

//at running time this query would look like this "INSERT INTO table (col1,col2) VALUES (value1, value2)" 

는, 쿼리 성능은 몇 초 정도 걸릴 : 여기 은 내가 사용하고 코드입니다.

삽입 쿼리 성능 시간을 단축 할 수있는 요인은 무엇입니까? 스레드가 도움이 될 수 있습니까? (그렇다면 어떤 종류의 스레드? 비동기 병렬 스레드?).

모든 아이디어는 환영합니다! :)

답변

0

첫째, 거래 내에서 인서트를 마무리 했습니까? using (var trans = new TransactionScope(){...}

둘째, DataAdapter을 사용하지 않으시겠습니까?

2

아마도 문자열 연결을 사용하여 쿼리를 작성했기 때문일 수 있습니다. 매개 변수를 사용해야합니다. SQL 인젝션의 성능과 안전성을 포함하여 여러 가지 사용법이 있습니다.