国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據庫訪問與本地文件訪問實測報告

2024-07-21 02:25:10
字體:
來源:轉載
供稿:網友
注冊會員,創建你的web開發資料庫,一直認為數據庫訪問比本地文件訪問是要慢很多的,但究竟慢多少卻不清楚。終于忍不住作了下比較測試。

測試環境:os---windows 2000 server databaseserver----sqlserver 2000 程序語言:csharp

測試方式:從數據庫中讀取參數表/從xml中讀取配置參數等同數量的記錄并實例化對象。

測試程序如下:

using system;
using system.globalization;
using system.io;
using system.xml.serialization;
using system.xml;
using system.data;
using system.data.sqlclient;

public class demo
{
public static void main()
{
system.console.writeline("===== executexml() =====================================");
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline(executexml());
system.console.writeline("========================================================");

system.console.writeline("===== executesql() =====================================");
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline(executesql());
system.console.writeline("========================================================/n");

}

static double executesql()
{
string _connstring = "server=data-server;user id=sa;password=1234;database=leaddb;min pool size=4;max pool size=4;packet size=3072";
sqlcommand cmd = new sqlcommand();
sqlconnection conn = new sqlconnection(_connstring);

double begin = cultureinfo.invariantculture.calendar.getmilliseconds(datetime.now);
try {
conn.open();

cmd.connection = conn;
cmd.commandtext = "select [categoryid], [name] from [sys_category] where [categorytype] = 2";

cmd.commandtype = commandtype.text;
sqldatareader rdr = cmd.executereader(commandbehavior.closeconnection);
while (rdr.read())
{
new entity(rdr.getint32(0), rdr.getstring(1));
}
rdr.close();
}catch {
conn.close();
throw;
}
begin = cultureinfo.invariantculture.calendar.getmilliseconds(datetime.now) - begin;
return (begin >= 0)?begin:begin+1000.0;
}

static double executexml()
{
double begin = cultureinfo.invariantculture.calendar.getmilliseconds(datetime.now);
xmldocument xmldoc = new xmldocument();
xmldoc.load( @"f:/leadbridge/xcerp/web/onlineservice/sys_category_headship.xml" );

foreach(xmlnode node in xmldoc.selectnodes("items/item")){
new entity(int.parse(node.attributes["id"].value), node.innertext);
}
begin = cultureinfo.invariantculture.calendar.getmilliseconds(datetime.now) - begin;
return (begin >= 0)?begin:begin+1000.0;
}
}

public class entity {
public entity(int age, string name){
this._age = age;
this._name = name;
}
private int _age;
private string _name;
public int age{
get{ return _age; }
set{ _age = value; }
}
public string name{
get{ return _name; }
set{ _name = value; }
}
}

執行結果如下:

===== executexml() =====================================
47
0
0
16
0
0
0
0
16
0
========================================================
===== executesql() =====================================
203
0
0
0
0
0
16
0
0
0
========================================================

做過多次測試,基本上是如上數量級別(一個數量級)的差異(第一次執行差異),因此建議,大家對于無需經常修改的數據保存為本地參數文件形式比直接從數庫讀取效率要高一些。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金山区| 南皮县| 油尖旺区| 电白县| 洛隆县| 苍南县| 辽中县| 东乌珠穆沁旗| 彝良县| 清水河县| 广昌县| 安图县| 黄浦区| 北安市| 许昌县| 垦利县| 山东省| 静安区| 承德市| 白沙| 博白县| 穆棱市| 石阡县| 鄢陵县| 三江| 桐城市| 六安市| 江安县| 安西县| 班玛县| 鄂伦春自治旗| 普定县| 南漳县| 当阳市| 荆州市| 灵丘县| 彝良县| 嘉峪关市| 闽侯县| 楚雄市| 阜城县|