Result:
Code:
[System.Runtime.InteropServices.DllImport("KERNEL32")]
private extern static bool QueryPerformanceCounter(out long counter); 
[System.Runtime.InteropServices.DllImport("KERNEL32")]
private extern static bool QueryPerformanceFrequency(out long frequency); 
private static long _frequency; 
private void Page_Load(object sender, System.EventArgs e)
{
QueryPerformanceFrequency(out _frequency);
// Put user code to initialize the page here
}


/// <summary>
/// OLEDB.NET
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button1_Click(object sender, System.EventArgs e)
{
long start = 0, stop = 0;
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = 
"Provider=OraOLEDB.Oracle;User Id=UID;Password=PWD;Data Source=DS;OLEDB.NET=true;";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from company where rownum<30000";
cmd.CommandType = System.Data.CommandType.Text;
conn.Open();
QueryPerformanceCounter(out start);
cmd.ExecuteNonQuery();
QueryPerformanceCounter(out stop); 
cmd.Dispose();
conn.Close();
conn.Dispose();
Response.Write("throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency);
Response.Write("<br>");
}
}


/// <summary>
/// ODBC Testing
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button2_Click(object sender, System.EventArgs e)
{
long start = 0, stop = 0;
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
{
System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection();
conn.ConnectionString =
"DSN=dsn;UID=UID;PWD=PWD";
System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from company where rownum<30000";
cmd.CommandType = System.Data.CommandType.Text;
conn.Open();

QueryPerformanceCounter(out start);
cmd.ExecuteNonQuery();
QueryPerformanceCounter(out stop); 
cmd.Dispose();
conn.Close();
conn.Dispose();
Response.Write("throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency);
Response.Write("<br>");
}
}


/// <summary>
/// ODPN
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button3_Click(object sender, System.EventArgs e)
{
long start = 0, stop = 0;
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
{
Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection();
conn.ConnectionString =
"Data Source=DS;User Id=UID;Password=PWD;Incr Pool Size=1";
Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from company where rownum<30000";
cmd.CommandType = System.Data.CommandType.Text;
conn.Open();

QueryPerformanceCounter(out start);
cmd.ExecuteNonQuery();
QueryPerformanceCounter(out stop); 
cmd.Dispose();
conn.Close();
conn.Dispose();
Response.Write("throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency);
Response.Write("<br>");
}
}
/// <summary>
/// MicroOra: System.Data.OracleClient
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button4_Click(object sender, System.EventArgs e)
{
long start = 0, stop = 0;
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
{
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();
conn.ConnectionString = "Data Source=DS;User Id=UID;Password=PWD;";
System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from company where rownum<30000";
cmd.CommandType = System.Data.CommandType.Text;
conn.Open();
QueryPerformanceCounter(out start);
cmd.ExecuteNonQuery();
QueryPerformanceCounter(out stop); 
cmd.Dispose();
conn.Close();
conn.Dispose();
Response.Write("throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency);
Response.Write("<br>");
}
}
/// <summary>
/// System.Data.OleDb
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button5_Click(object sender, System.EventArgs e)
{
long start = 0, stop = 0;
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString =
"Provider=MSDAORA.1; User ID=UID; Password=PWD; Data Source=DS";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from company where rownum<30000";
cmd.CommandType = System.Data.CommandType.Text;
conn.Open();
QueryPerformanceCounter(out start);
cmd.ExecuteNonQuery();
QueryPerformanceCounter(out stop); 
cmd.Dispose();
conn.Close();
conn.Dispose();
Response.Write("throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency);
Response.Write("<br>");
}
}

浙公网安备 33010602011771号