예제 #1
0
        protected override void NativeQueryTest(int count)
        {
            using (var transaction = con.BeginTransaction())
            {
                var cmd = con.CreateCommand();
                cmd.Transaction = transaction;
                cmd.CommandText = "SELECT [Simplests].[Id], [Simplests].[Value] " +
                                  "FROM [dbo].[Simplests] WHERE [Simplests].[id] = @pId";
                cmd.Parameters.Add(new SqlParameter("@pId", SqlDbType.BigInt));
                SqlDataReader dr;

                for (int i = 0; i < count; i++)
                {
                    cmd.Parameters["@pId"].SqlValue = i % InstanceCount;
                    dr = cmd.ExecuteReader();

                    var s = new Simplest();
                    while (dr.Read())
                    {
                        if (!dr.IsDBNull(0))
                        {
                            s.Id = dr.GetInt64(0);
                        }
                        if (!dr.IsDBNull(1))
                        {
                            s.Value = dr.GetInt64(1);
                        }
                    }
                    dr.Close();
                }
                transaction.Commit();
            }
        }
예제 #2
0
        protected override void InsertMultipleTest(int count)
        {
            Simplest min = null;
            Simplest max = null;

            using (var transaction = db.BeginTransaction())
            {
                for (int i = 0; i < count - 1; i++)
                {
                    var simplest = new Simplest {
                        Value = i
                    };
                    db.Add(simplest);
                    if (min == null)
                    {
                        min = simplest;
                    }
                }
                max = new Simplest {
                    Value = count - 1
                };
                db.Add(max);
                db.SaveChanges();
                transaction.Commit();
            }
            InstanceCount = count;
            minId         = min.Id;
            maxId         = max.Id;
        }
예제 #3
0
 protected override void InsertSingleTest(int count)
 {
     for (int i = 0; i < count; i++)
     {
         var simplest = new Simplest {
             Id = i, Value = i
         };
         repo.Add(simplest);
     }
     InstanceCount = count;
 }
예제 #4
0
 protected override void InsertSingleTest(int count)
 {
     for (int i = 0; i < count; i++)
     {
         var s = new Simplest {
             Id = i, Value = i
         };
         context.Add(s);
         context.SaveChanges();
     }
     InstanceCount = count;
 }
예제 #5
0
 protected override void InsertMultipleTest(int count)
 {
     using (var transaction = _context.Database.BeginTransaction())
     {
         for (var i = 0; i < count; i++)
         {
             var s = new Simplest {Id = i, Value = i};
             _context.Simplests.Add(s);
         }
         _context.SaveChanges();
         transaction.Commit();
     }
     InstanceCount = count;
 }
예제 #6
0
 protected override void InsertMultipleTest(int count)
 {
     using (var statelessSession = _factory.OpenStatelessSession())
         using (var transaction = statelessSession.BeginTransaction())
         {
             for (int i = 0; i < count; i++)
             {
                 var s = new Simplest(i, i);
                 statelessSession.Insert(s);
             }
             transaction.Commit();
         }
     InstanceCount = count;
 }
예제 #7
0
 protected override void InsertMultipleTest(int count)
 {
     using (var ts = new TransactionScope()) {
         for (int i = 0; i < count; i++)
         {
             var s = new Simplest {
                 Id = i, Value = i
             };
             context.Add(s);
         }
         context.SaveChanges();
         ts.Complete();
     }
     InstanceCount = count;
 }
예제 #8
0
 protected override void InsertMultipleTest(int count)
 {
     using (var transaction = context.Database.BeginTransaction())
     {
         for (var i = 0; i < count; i++)
         {
             var s = new Simplest {
                 Id = i, Value = i
             };
             context.Simplests.Add(s);
         }
         context.SaveChanges();
         transaction.Commit();
     }
     InstanceCount = count;
 }
예제 #9
0
 protected override void InsertSingleTest(int count)
 {
     using (var insertSession = _factory.OpenSession())
         using (var transaction = insertSession.BeginTransaction())
         {
             for (int i = 0; i < count; i++)
             {
                 var s = new Simplest(i, i);
                 insertSession.Save(s);
                 insertSession.Flush();
                 insertSession.Clear();
             }
             transaction.Commit();
         }
     InstanceCount = count;
 }
예제 #10
0
        protected override void InsertMultipleTest(int count)
        {
            using (_db.Transaction = _db.Connection.BeginTransaction())
            {
                for (var i = 0; i < count; i++)
                {
                    var s = new Simplest {
                        Id = i, Value = i
                    };
                    _db.Simplests.InsertOnSubmit(s);
                }

                _db.SubmitChanges();
                _db.Transaction.Commit();
            }

            InstanceCount = count;
        }
예제 #11
0
        private void FetchTest(int count)
        {
            long sum = (long)count * (count - 1) / 2;

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();
            SqlCommand     cmd         = connection.CreateCommand();

            cmd.Transaction = transaction;
            cmd.Parameters.AddWithValue("@pId", 0);
            cmd.CommandText = "SELECT [Simplest].[Id], [Simplest].[Value] " +
                              "FROM [dbo].[Simplest] WHERE [Simplest].[Id] = @pId";
            SqlDataReader dr;

            TestHelper.CollectGarbage();
            using (warmup ? null : new Measurement("Fetch & GetField", count)) {
                for (int i = 0; i < count; i++)
                {
                    cmd.Parameters["@pId"].SqlValue = i % instanceCount;
                    dr = cmd.ExecuteReader();

                    var s = new Simplest();
                    while (dr.Read())
                    {
                        if (!dr.IsDBNull(0))
                        {
                            s.Id = (long)dr.GetValue(0);
                        }
                        if (!dr.IsDBNull(1))
                        {
                            s.Value = (long)dr.GetValue(1);
                        }
                    }
                    sum -= s.Id;
                    dr.Close();
                }
                transaction.Commit();
            }
            if (count <= instanceCount)
            {
                Assert.AreEqual(0, sum);
            }
            connection.Close();
        }
예제 #12
0
 protected override void InsertMultipleTest(int count)
 {
   Simplest min = null;
   Simplest max = null;
   using (var transaction = db.BeginTransaction()) {
     for (int i = 0; i < count - 1; i++) {
       var simplest = new Simplest {Value = i};
       db.Add(simplest);
       if (min == null)
         min = simplest;
     }
     max = new Simplest {Value = count - 1};
     db.Add(max);
     db.SaveChanges();
     transaction.Commit();
   }
   InstanceCount = count;
   minId = min.Id;
   maxId = max.Id;
 }
예제 #13
0
        private void MaterializeTest(int count)
        {
            long sum = 0;
            int  i   = 0;

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();

            TestHelper.CollectGarbage();
            using (warmup ? null : new Measurement("Materialize & GetField", count)) {
                while (i < count)
                {
                    SqlCommand cmd = connection.CreateCommand();
                    cmd.Transaction = transaction;
                    cmd.CommandText = "SELECT [Simplest].[Id], [Simplest].[Value] " +
                                      "FROM [dbo].[Simplest]";
                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        var s = new Simplest();
                        if (!dr.IsDBNull(0))
                        {
                            s.Id = (long)dr.GetValue(0);
                        }
                        if (!dr.IsDBNull(1))
                        {
                            s.Value = (long)dr.GetValue(1);
                        }
                        sum += s.Id;
                        if (++i >= count)
                        {
                            break;
                        }
                    }
                    dr.Close();
                }
                transaction.Commit();
            }
            Assert.AreEqual((long)count * (count - 1) / 2, sum);
            connection.Close();
        }
예제 #14
0
        protected override void FetchTest(int count)
        {
            long sum = (long)count * (count - 1) / 2;

            using (var transaction = con.BeginTransaction())
            {
                var cmd = con.CreateCommand();
                cmd.Transaction = transaction;
                cmd.CommandText = "SELECT [Simplests].[Id], [Simplests].[Value] " +
                                  "FROM [dbo].[Simplests] WHERE [Simplests].[Id] = @pId";
                cmd.Parameters.Add(new SqlParameter("@pId", SqlDbType.BigInt));
                cmd.Prepare();
                SqlDataReader dr;

                for (int i = 0; i < count; i++)
                {
                    cmd.Parameters["@pId"].SqlValue = i % InstanceCount;
                    dr = cmd.ExecuteReader();

                    var s = new Simplest();
                    while (dr.Read())
                    {
                        if (!dr.IsDBNull(0))
                        {
                            s.Id = dr.GetInt64(0);
                        }
                        if (!dr.IsDBNull(1))
                        {
                            s.Value = dr.GetInt64(1);
                        }
                    }
                    sum -= s.Id;
                    dr.Close();
                }
                transaction.Commit();
            }
            if (count <= InstanceCount)
            {
                Assert.AreEqual(0, sum);
            }
        }
예제 #15
0
        private void InsertTest(int insertCount)
        {
            var d = Domain;

            using (var ss = d.OpenSession()) {
                var  s   = ss.Session;
                long sum = 0;
                TestHelper.CollectGarbage();
                using (warmup ? null : new Measurement("Insert", insertCount)) {
                    using (var ts = s.OpenTransaction()) {
                        for (int i = 0; i < insertCount; i++)
                        {
                            var o = new Simplest(i, i);
                            sum += i;
                        }
                        ts.Complete();
                    }
                }
            }
            instanceCount = insertCount;
        }
예제 #16
0
        protected override void NativeMaterializeTest(int count)
        {
            long sum = 0;
            int  i   = 0;

            using (var transaction = con.BeginTransaction())
            {
                while (i < count)
                {
                    SqlCommand cmd = con.CreateCommand();
                    cmd.Transaction = transaction;
                    cmd.CommandText = "SELECT [Simplests].[Id], [Simplests].[Value] " +
                                      "FROM [dbo].[Simplests]";
                    cmd.Prepare();

                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        var s = new Simplest();
                        if (!dr.IsDBNull(0))
                        {
                            s.Id = dr.GetInt64(0);
                        }
                        if (!dr.IsDBNull(1))
                        {
                            s.Value = dr.GetInt64(1);
                        }
                        sum += s.Id;
                        if (++i >= count)
                        {
                            break;
                        }
                    }
                    dr.Close();
                }
                transaction.Commit();
            }
            Assert.AreEqual((long)count * (count - 1) / 2, sum);
        }