1: using (var connection = new OracleConnection(connectionString))
2: {
3: connection.Open();
4:
5: var sw = Stopwatch.StartNew();
6: using (var cmd = connection.CreateCommand())
7: {
8: var cmdText = new StringBuilder();
9: cmd.BindByName = true;
10: cmd.CommandType = CommandType.Text;
11:
12: cmdText.Append("begin ");
13: for (var i = 0; i < 500; i++)
14: {
15: cmdText.AppendFormat("insert into BulkTesting values (:id{0}, :data{0}); ", i);
16: cmd.Parameters.Add(string.Format(":id{0}", i), i);
17: cmd.Parameters.Add(string.Format(":data{0}", i), string.Format("bit of data for {0} call", i));
18: }
19: cmdText.Append(" end;");
20:
21: cmd.CommandText = cmdText.ToString();
22: cmd.ExecuteNonQuery();
23: }
24: sw.Stop();
25: Console.WriteLine("Batch query took {0}", sw.ElapsedMilliseconds);
26:
27: sw = Stopwatch.StartNew();
28: for (var i = 0; i < 500; i++)
29: {
30: using (var cmd = connection.CreateCommand())
31: {
32: var cmdText = new StringBuilder();
33: cmd.BindByName = true;
34: cmd.CommandType = CommandType.Text;
35:
36: cmdText.AppendFormat("insert into BulkTesting values (:id{0}, :data{0}) ", i);
37: cmd.Parameters.Add(string.Format(":id{0}", i), i);
38: cmd.Parameters.Add(string.Format(":data{0}", i), string.Format("bit of data for {0} call", i));
39:
40: cmd.CommandText = cmdText.ToString();
41: cmd.ExecuteNonQuery();
42: }
43: }
44: sw.Stop();
45: Console.WriteLine("Multiple queries took {0}", sw.ElapsedMilliseconds);
46: }