2012-07-23 47 views
-1

我正在創建運行大量插入/更新查詢的Windows窗體應用程序。即使插入少量信息(700行),您也需要等待幾分鐘。 這裏是我使用的代碼:應用程序插入/更新查詢優化

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

首先,你是否將你的插入包裝在一個事務中?其次,爲什麼不使用a DataAdapter

2

也許這是因爲您使用字符串連接來構建您的查詢。你應該使用參數。有很多使用它們的傾向,包括SQL注入的性能和安全性。