subsonic 与 oracle.client 性能比较
测试的表中有1382910条记录
使用分页查询 每页100条, 查询0-99页
Oracle.Client | SubSonic |
分页: 0, 耗时: 826.5385毫秒. | 分页: 0, 耗时: 1133.3957毫秒. |
分页: 1, 耗时: 1385.9415毫秒. | 分页: 1, 耗时: 1745.3036毫秒. |
分页: 2, 耗时: 1936.3463毫秒. | 分页: 2, 耗时: 2317.2428毫秒. |
分页: 3, 耗时: 2504.3811毫秒. | 分页: 3, 耗时: 2919.5445毫秒. |
分页: 4, 耗时: 3057.8285毫秒. | 分页: 4, 耗时: 3473.8473毫秒. |
分页: 5, 耗时: 3638.4132毫秒. | 分页: 5, 耗时: 4031.557毫秒. |
分页: 6, 耗时: 4242.5174毫秒. | 分页: 6, 耗时: 4590.0191毫秒. |
分页: 7, 耗时: 4841.6544毫秒. | 分页: 7, 耗时: 5189.2377毫秒. |
分页: 8, 耗时: 5442.6531毫秒. | 分页: 8, 耗时: 5803.366毫秒. |
分页: 9, 耗时: 6031.447毫秒. | 分页: 9, 耗时: 6406.7472毫秒. |
分页: 10, 耗时: 6583.466毫秒. | 分页: 10, 耗时: 7016.8733毫秒. |
分页: 11, 耗时: 7136.4176毫秒. | 分页: 11, 耗时: 7570.4507毫秒. |
分页: 12, 耗时: 7697.0553毫秒. | 分页: 12, 耗时: 8129.7511毫秒. |
分页: 13, 耗时: 8250.5879毫秒. | 分页: 13, 耗时: 8683.2706毫秒. |
分页: 14, 耗时: 8843.0663毫秒. | 分页: 14, 耗时: 9233.3363毫秒. |
分页: 15, 耗时: 9438.9186毫秒. | 分页: 15, 耗时: 9807.1562毫秒. |
分页: 16, 耗时: 10035.0823毫秒. | 分页: 16, 耗时: 10409.6766毫秒. |
分页: 17, 耗时: 10634.021毫秒. | 分页: 17, 耗时: 11022.2251毫秒. |
分页: 18, 耗时: 11205.6188毫秒. | 分页: 18, 耗时: 11628.2382毫秒. |
分页: 19, 耗时: 11769.605毫秒. | 分页: 19, 耗时: 12214.1179毫秒. |
分页: 20, 耗时: 12338.9771毫秒. | 分页: 20, 耗时: 12778.852毫秒. |
分页: 21, 耗时: 12887.6273毫秒. | 分页: 21, 耗时: 13334.9341毫秒. |
分页: 22, 耗时: 13453.5344毫秒. | 分页: 22, 耗时: 13887.2485毫秒. |
分页: 23, 耗时: 14053.2967毫秒. | 分页: 23, 耗时: 14443.0236毫秒. |
分页: 24, 耗时: 14666.9568毫秒. | 分页: 24, 耗时: 15036.2439毫秒. |
分页: 25, 耗时: 15284.5532毫秒. | 分页: 25, 耗时: 15645.2549毫秒. |
分页: 26, 耗时: 15909.0099毫秒. | 分页: 26, 耗时: 16254.6899毫秒. |
分页: 27, 耗时: 16464.6056毫秒. | 分页: 27, 耗时: 16869.0814毫秒. |
分页: 28, 耗时: 17019.9153毫秒. | 分页: 28, 耗时: 17439.6975毫秒. |
分页: 29, 耗时: 17585.6543毫秒. | 分页: 29, 耗时: 17996.7856毫秒. |
分页: 30, 耗时: 18160.1896毫秒. | 分页: 30, 耗时: 18548.1559毫秒. |
分页: 31, 耗时: 18751.2912毫秒. | 分页: 31, 耗时: 19106.3668毫秒. |
分页: 32, 耗时: 19351.2046毫秒. | 分页: 32, 耗时: 19672.3692毫秒. |
分页: 33, 耗时: 19964.0038毫秒. | 分页: 33, 耗时: 20270.6142毫秒. |
分页: 34, 耗时: 20566.3236毫秒. | 分页: 34, 耗时: 20874.0848毫秒. |
分页: 35, 耗时: 21140.9156毫秒. | 分页: 35, 耗时: 21488.9339毫秒. |
分页: 36, 耗时: 21715.9496毫秒. | 分页: 36, 耗时: 22091.8345毫秒. |
分页: 37, 耗时: 22274.6237毫秒. | 分页: 37, 耗时: 22655.048毫秒. |
分页: 38, 耗时: 22825.1956毫秒. | 分页: 38, 耗时: 23215.3335毫秒. |
分页: 39, 耗时: 23381.2166毫秒. | 分页: 39, 耗时: 23763.1059毫秒. |
分页: 40, 耗时: 23993.7709毫秒. | 分页: 40, 耗时: 24314.7366毫秒. |
分页: 41, 耗时: 24600.1111毫秒. | 分页: 41, 耗时: 24915.8007毫秒. |
分页: 42, 耗时: 25205.2517毫秒. | 分页: 42, 耗时: 25515.5222毫秒. |
分页: 43, 耗时: 25814.6543毫秒. | 分页: 43, 耗时: 26115.4266毫秒. |
分页: 44, 耗时: 26368.5105毫秒. | 分页: 44, 耗时: 26718.7424毫秒. |
分页: 45, 耗时: 26917.1134毫秒. | 分页: 45, 耗时: 27292.2675毫秒. |
分页: 46, 耗时: 27461.5086毫秒. | 分页: 46, 耗时: 27849.2663毫秒. |
分页: 47, 耗时: 28009.1332毫秒. | 分页: 47, 耗时: 28407.4369毫秒. |
分页: 48, 耗时: 28591.3067毫秒. | 分页: 48, 耗时: 28958.0072毫秒. |
分页: 49, 耗时: 29196.5909毫秒. | 分页: 49, 耗时: 29524.1688毫秒. |
分页: 50, 耗时: 29796.511毫秒. | 分页: 50, 耗时: 30152.7928毫秒. |
分页: 51, 耗时: 30399.7181毫秒. | 分页: 51, 耗时: 30757.2308毫秒. |
分页: 52, 耗时: 30989.3983毫秒. | 分页: 52, 耗时: 31360.2399毫秒. |
分页: 53, 耗时: 31537.4811毫秒. | 分页: 53, 耗时: 31978.2483毫秒. |
分页: 54, 耗时: 32079.2773毫秒. | 分页: 54, 耗时: 32539.2003毫秒. |
分页: 55, 耗时: 32639.4122毫秒. | 分页: 55, 耗时: 33092.2837毫秒. |
分页: 56, 耗时: 33189.9833毫秒. | 分页: 56, 耗时: 33645.1738毫秒. |
分页: 57, 耗时: 33782.5916毫秒. | 分页: 57, 耗时: 34198.0466毫秒. |
分页: 58, 耗时: 34383.7264毫秒. | 分页: 58, 耗时: 34770.9686毫秒. |
分页: 59, 耗时: 35000.4277毫秒. | 分页: 59, 耗时: 35363.9479毫秒. |
分页: 60, 耗时: 35601.4524毫秒. | 分页: 60, 耗时: 35962.9732毫秒. |
分页: 61, 耗时: 36173.0261毫秒. | 分页: 61, 耗时: 36572.7247毫秒. |
分页: 62, 耗时: 36725.6964毫秒. | 分页: 62, 耗时: 37180.3405毫秒. |
分页: 63, 耗时: 37277.1282毫秒. | 分页: 63, 耗时: 37754.6562毫秒. |
分页: 64, 耗时: 37826.289毫秒. | 分页: 64, 耗时: 38307.1261毫秒. |
分页: 65, 耗时: 38376.1198毫秒. | 分页: 65, 耗时: 38863.8542毫秒. |
分页: 66, 耗时: 38988.1599毫秒. | 分页: 66, 耗时: 39436.9745毫秒. |
分页: 67, 耗时: 39584.0119毫秒. | 分页: 67, 耗时: 40047.0752毫秒. |
分页: 68, 耗时: 40175.5505毫秒. | 分页: 68, 耗时: 40642.7629毫秒. |
分页: 69, 耗时: 40776.3525毫秒. | 分页: 69, 耗时: 41244.7439毫秒. |
分页: 70, 耗时: 41328.8364毫秒. | 分页: 70, 耗时: 41849.7314毫秒. |
分页: 71, 耗时: 41893.1802毫秒. | 分页: 71, 耗时: 42408.9871毫秒. |
分页: 72, 耗时: 42450.869毫秒. | 分页: 72, 耗时: 42994.1364毫秒. |
分页: 73, 耗时: 42999.4706毫秒. | 分页: 73, 耗时: 43563.794毫秒. |
分页: 74, 耗时: 43574.488毫秒. | 分页: 74, 耗时: 44128.5381毫秒. |
分页: 75, 耗时: 44165.3333毫秒. | 分页: 75, 耗时: 44690.1167毫秒. |
分页: 76, 耗时: 44765.6473毫秒. | 分页: 76, 耗时: 45290.9911毫秒. |
分页: 77, 耗时: 45356.7584毫秒. | 分页: 77, 耗时: 45907.8712毫秒. |
分页: 78, 耗时: 45947.8294毫秒. | 分页: 78, 耗时: 46515.8574毫秒. |
分页: 79, 耗时: 46509.2926毫秒. | 分页: 79, 耗时: 47103.1354毫秒. |
分页: 80, 耗时: 47072.8444毫秒. | 分页: 80, 耗时: 47660.4884毫秒. |
分页: 81, 耗时: 47626.6902毫秒. | 分页: 81, 耗时: 48227.0148毫秒. |
分页: 82, 耗时: 48187.248毫秒. | 分页: 82, 耗时: 48781.3582毫秒. |
分页: 83, 耗时: 48776.997毫秒. | 分页: 83, 耗时: 49336.5911毫秒. |
分页: 84, 耗时: 49373.1725毫秒. | 分页: 84, 耗时: 49920.8949毫秒. |
分页: 85, 耗时: 49989.338毫秒. | 分页: 85, 耗时: 50521.0109毫秒. |
分页: 86, 耗时: 50585.9286毫秒. | 分页: 86, 耗时: 51126.4646毫秒. |
分页: 87, 耗时: 51170.4043毫秒. | 分页: 87, 耗时: 51742.4767毫秒. |
分页: 88, 耗时: 51737.3638毫秒. | 分页: 88, 耗时: 52313.8139毫秒. |
分页: 89, 耗时: 52299.933毫秒. | 分页: 89, 耗时: 52876.6728毫秒. |
分页: 90, 耗时: 52852.3558毫秒. | 分页: 90, 耗时: 53426.2714毫秒. |
分页: 91, 耗时: 53407.9029毫秒. | 分页: 91, 耗时: 53976.2676毫秒. |
分页: 92, 耗时: 54017.8961毫秒. | 分页: 92, 耗时: 54520.9678毫秒. |
分页: 93, 耗时: 54627.711毫秒. | 分页: 93, 耗时: 55133.8343毫秒. |
分页: 94, 耗时: 55230.4748毫秒. | 分页: 94, 耗时: 55739.5861毫秒. |
分页: 95, 耗时: 55827.4671毫秒. | 分页: 95, 耗时: 56361.0207毫秒. |
分页: 96, 耗时: 56384.8841毫秒. | 分页: 96, 耗时: 56967.1854毫秒. |
分页: 97, 耗时: 56943.0299毫秒. | 分页: 97, 耗时: 57528.1685毫秒. |
分页: 98, 耗时: 57496.5731毫秒. | 分页: 98, 耗时: 58085.4231毫秒. |
分页: 99, 耗时: 58047.2506毫秒. | 分页: 99, 耗时: 58650.3237毫秒. |
总耗时: 58047.2506毫秒. | 总耗时: 58650.3237毫秒. |
oracle client
OracleConnection cn = new OracleConnection(ConfigurationManager.ConnectionStrings[1].ConnectionString);
string temp = string.Empty;
OracleDataAdapter adp = new OracleDataAdapter();
adp.SelectCommand = new OracleCommand();
adp.SelectCommand.Connection = cn;
string sql;
Console.WriteLine("Oracle.Client");
for (int i = 0; i < 100; i++)
{
Console.Write(string.Format("分页: {0}", i));
sw.Start();
sql = string.Format(@"SELECT *
FROM (SELECT ROWNUM RN,
LBS.T_MSG_RECIVE_01.MSG_STATUS, LBS.T_MSG_RECIVE_01.MSG_TYPE, LBS.T_MSG_RECIVE_01.DEAL_FLAG, LBS.T_MSG_RECIVE_01.DEAL_TIME, LBS.T_MSG_RECIVE_01.DEAL_RESULT, LBS.T_MSG_RECIVE_01.MSG_IDX, LBS.T_MSG_RECIVE_01.TERM_CHANNELID, LBS.T_MSG_RECIVE_01.KEYID, LBS.T_MSG_RECIVE_01.TERMID, LBS.T_MSG_RECIVE_01.TERM_IP, LBS.T_MSG_RECIVE_01.TERM_PORT, LBS.T_MSG_RECIVE_01.TERM_SOCKETIDX, LBS.T_MSG_RECIVE_01.RECV_TIME, LBS.T_MSG_RECIVE_01.MSG_TIME, LBS.T_MSG_RECIVE_01.MSG_LATITUDE, LBS.T_MSG_RECIVE_01.MSG_LONGITUDE, LBS.T_MSG_RECIVE_01.MSG_HIGH, LBS.T_MSG_RECIVE_01.MSG_DIRECTION, LBS.T_MSG_RECIVE_01.MSG_DISTANCE, LBS.T_MSG_RECIVE_01.MSG_SPEED, LBS.T_MSG_RECIVE_01.MSG_REGION
FROM LBS.T_MSG_RECIVE_01
)
PagedResults
WHERE RN >= {0} AND RN <= {1}", i * 100 + 1, (i + 1) * 100);
DataSet ds = new DataSet();
adp.SelectCommand.CommandText = sql;
adp.Fill(ds);
sw.Stop();
Console.WriteLine(string.Format(", 耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
}
Console.WriteLine(string.Format("总耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
string temp = string.Empty;
OracleDataAdapter adp = new OracleDataAdapter();
adp.SelectCommand = new OracleCommand();
adp.SelectCommand.Connection = cn;
string sql;
Console.WriteLine("Oracle.Client");
for (int i = 0; i < 100; i++)
{
Console.Write(string.Format("分页: {0}", i));
sw.Start();
sql = string.Format(@"SELECT *
FROM (SELECT ROWNUM RN,
LBS.T_MSG_RECIVE_01.MSG_STATUS, LBS.T_MSG_RECIVE_01.MSG_TYPE, LBS.T_MSG_RECIVE_01.DEAL_FLAG, LBS.T_MSG_RECIVE_01.DEAL_TIME, LBS.T_MSG_RECIVE_01.DEAL_RESULT, LBS.T_MSG_RECIVE_01.MSG_IDX, LBS.T_MSG_RECIVE_01.TERM_CHANNELID, LBS.T_MSG_RECIVE_01.KEYID, LBS.T_MSG_RECIVE_01.TERMID, LBS.T_MSG_RECIVE_01.TERM_IP, LBS.T_MSG_RECIVE_01.TERM_PORT, LBS.T_MSG_RECIVE_01.TERM_SOCKETIDX, LBS.T_MSG_RECIVE_01.RECV_TIME, LBS.T_MSG_RECIVE_01.MSG_TIME, LBS.T_MSG_RECIVE_01.MSG_LATITUDE, LBS.T_MSG_RECIVE_01.MSG_LONGITUDE, LBS.T_MSG_RECIVE_01.MSG_HIGH, LBS.T_MSG_RECIVE_01.MSG_DIRECTION, LBS.T_MSG_RECIVE_01.MSG_DISTANCE, LBS.T_MSG_RECIVE_01.MSG_SPEED, LBS.T_MSG_RECIVE_01.MSG_REGION
FROM LBS.T_MSG_RECIVE_01
)
PagedResults
WHERE RN >= {0} AND RN <= {1}", i * 100 + 1, (i + 1) * 100);
DataSet ds = new DataSet();
adp.SelectCommand.CommandText = sql;
adp.Fill(ds);
sw.Stop();
Console.WriteLine(string.Format(", 耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
}
Console.WriteLine(string.Format("总耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
Subsonic
Console.WriteLine("SubSonic");
for (int i = 0; i < 100; i++)
{
Console.Write(string.Format("分页: {0}", i));
sw.Start();
DB.Select().From<TMsgRecive01>().Paged(i, 100).ExecuteAsCollection<TMsgRecive01Collection>();
sw.Stop();
Console.WriteLine(string.Format(", 耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
}
Console.WriteLine(string.Format("总耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
for (int i = 0; i < 100; i++)
{
Console.Write(string.Format("分页: {0}", i));
sw.Start();
DB.Select().From<TMsgRecive01>().Paged(i, 100).ExecuteAsCollection<TMsgRecive01Collection>();
sw.Stop();
Console.WriteLine(string.Format(", 耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));
}
Console.WriteLine(string.Format("总耗时: {0}毫秒.", sw.Elapsed.TotalMilliseconds));