作者SinclairShen (SinclairShen)
看板C_Sharp
標題[問題] 連結MS SQL產生系統效能低落
時間Mon Aug 10 23:25:38 2009
能否請教各位大大一個問題...
目前有一個期貨的資料庫(future2),
裡面有一個資料表(futureData),
共有八百萬筆資料,
在select時就會把電腦3G的記憶體吃完,
也嘗試過改成以"每日"來select資料(每日大約有20萬筆資料),
也是會很快的把記憶體吃完,
最後系統會變得非常慢…
把資料放到DataSet之後,已經有把連資料庫的部份close和dispose了,
那所占的記憶體空間怎麼沒被釋放掉?
謝謝
source code:
DataSet enDataSet = new DataSet();
enDataSet.Tables.Add("future_data");
public void conDB_future(string strSql)
{
string connStr = "Data Source=localhost;
database=future2;uid=sinclair2;
pwd=222;Connection Timeout=3600;pooling=false;";
SqlConnection conn1 = new SqlConnection(connStr);
conn1.Open();
SqlDataAdapter conAdapter1 = new SqlDataAdapter(strSql, conn1);
conAdapter1.Fill(enDataSet, "future_data");
conAdapter1.Dispose();
conn1.Close();
conn1.Dispose();
}
public void button1_Click(object sender, EventArgs e)
{
string strSql = "";
strSql = "select * from futureData ";
//
//strSql = "select * from futureData where 交易日期='" + sData + "'";
//
conDB_future(strSql);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.247.129
1F:→ taicomjp:SQL版本? DataSet就是把資料暫存記憶體 08/11 00:05
2F:→ SinclairShen:SQL server 2005企業版 08/11 00:25
3F:推 pyrochlore:SQL Server的最大伺服器記憶體有設定嗎? 08/11 00:46
4F:→ pico2k:善用分頁的技巧... 08/11 08:28
5F:推 deuter:沒有人會把八百萬筆資料全部抓進dataaset啦! 08/11 11:45
6F:推 ntcbacc:嗯啊,哪個人眼睛這麼強可以看這麼多筆 08/11 12:50
7F:→ Eleganse:不知道bcp(bulk copy)技術能不能解決你的問題 08/11 15:37
8F:→ Eleganse:八百萬筆應該沒什麼才對,請參考 08/11 15:41
10F:→ Eleganse:&entryid=3921 (由於推文一行排不下,分成二行) 08/11 15:42
12F:→ ydchiang:SQL Server 2005預設會盡量使用系統的記憶體 08/11 22:27
13F:→ ydchiang:不知道你的table有多少欄位,八百萬筆都抓到dataset 08/11 22:29
14F:→ ydchiang:Client端浪費太多記憶體,其次I/O的傳輸也會造成效能問題 08/11 22:30
15F:→ ydchiang:用分頁的技巧或是設定篩選條件減少datatable內的資料量吧 08/11 22:32
16F:→ wave1et:資料是存在DataSet,把DataSet 釋放掉吧 08/15 13:38
17F:推 maxi326:DataReader? 08/26 15:38