測試環境:
windows2012, sqlserver2016, 64g記憶體的pc伺服器,介面:c# .netframework4.6
記憶體表是:schema_only
測試程式和資料庫伺服器在同一主機
插入10萬條guid字串(id列),純單條insert語句插入:
磁碟表:57s
記憶體表:12s
磁碟表:170ms (直接select id, bh where id='333')
記憶體表:170ms(直接select id, bh where id='333')
記憶體表:250ms (本地編譯的儲存過程,"p1 )
記憶體表:170ms (本地編譯的儲存過程, cmd.parameters[0].value = lst[0];)
結論:插入速度提高很多,如果按照本地編譯儲存過程,可能插入更快,參考:
查詢速度,是否用本地編譯的儲存過程,感覺差不多,我主要是想模擬key-value情況,查詢也是按主鍵查詢的,速度和磁碟表沒有明顯變化
考慮到記憶體表的諸多限制,如表長度不超過8000多,也不清楚記憶體何時釋放,有人說只有drop表時也釋放,delete 表中記錄是不釋放記憶體占用的。
還不如直接用磁碟表方便可控
**參考:
private void button3_click(object sender, eventargs e)
}private void button1_click(object sender, eventargs e)
private void button2_click(object sender, eventargs e)
'";da.fill(ds, "t");
}cn.close();
this.textbox1.text = (datetime.now - t).totalmilliseconds.tostring();
}private void button5_click(object sender, eventargs e)
private void button4_click(object sender, eventargs e)
cn.close();
this.textbox1.text = (datetime.now - t).totalmilliseconds.tostring();
//sqlconnection cn = new system.data.sqlclient.sqlconnection(cnstr);
//sqlcommand cmd = cn.createcommand();
//sqldataadapter da = new sqldataadapter(cmd);
//dataset ds = new dataset();
//datetime t = datetime.now;
//for (int m = 0; m < 1000; m++)
//'";
// da.fill(ds, "t");
//} = (datetime.now - t).totalmilliseconds.tostring();
//sqlconnection cn = new system.data.sqlclient.sqlconnection(cnstr);
//sqlcommand cmd = cn.createcommand();
//sqldataadapter da = new sqldataadapter(cmd);
//dataset ds = new dataset();
//datetime t = datetime.now;
//for (int m = 0; m < 1000; m++)
//'";
// da.fill(ds, "t");
//} = (datetime.now - t).totalmilliseconds.tostring();
}private void 插入表(string tab)
(id,bh) values('','2')";
cmd.executenonquery();
}cn.close();
this.textbox1.text = (datetime.now - t).totalmilliseconds.tostring();}}
}
MSSQLSERVER 儲存過程
系統儲存過程 列出sql server例項中的資料庫 sp databases 返回sql server 資料庫閘道器或基礎資料來源的特性名和匹配值的列表 sp server info 返回當前環境中的儲存過程列表 sp stored procedures 返回當前環境下可查詢的物件的列表 任何可出...
簡單MSSQLServer語句
常見的的sql語句 資料庫 ms sqlserver db 代表資料庫 tb 代表表 col 代表列 表table 行 row 列 column 備份資料庫 backup database db to disk f dbbak db.bak 備份資料表 select into tb 20170116...
MS SQL Server儲存過程
1 create alter和drop create procedure usp categorylist asselect categoryid,categoryname from category 在建立儲存過程時,應該使用一致的規範來命名儲存過程,而不要使用sp 使用sp 只會導致名稱衝突和混...