Exemple #1
0
        public void TestUnionUnionAllDemo2()
        {
            GetConnection      u  = new GetConnection();
            GetBatches         b  = new GetBatches();
            GetBatchResult     r  = new GetBatchResult();
            GetQueryPlan       qp = new GetQueryPlan();
            GetQueryPlanValues qv = new GetQueryPlanValues();

            string constring_1 = u.GetConnectionString("AdventureWorks2014");

            string[] batches      = b.GetFileContent(@"..\\..\\..\\SabinIO.Performance.UnionUnionAll\\Demos\\UnionUnionAllDemo2.sql");
            string   SqlNamespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan";
            string   XPath        = "//sql:Batch/sql:Statements/sql:StmtSimple/sql:QueryPlan[1]/sql:RelOp[1]/@LogicalOp";

            for (int i = 0; i < batches.Length; i++)
            {
                string  batch = batches[i];
                DataSet ds    = r.GetDataSet(batch, constring_1);

                if (i == 4)
                {
                    string QueryPlan = qp.GetQueryPlanForQuery(constring_1, batch);
                    string _operator = qv.GetSingleValue(QueryPlan, SqlNamespace, XPath);
                    Assert.AreEqual("Distinct Sort", _operator);
                }
            }
        }
Exemple #2
0
        public void TestUDFDemo2()
        {
            GetConnection      u  = new GetConnection();
            GetBatches         b  = new GetBatches();
            GetBatchResult     r  = new GetBatchResult();
            GetQueryPlan       qp = new GetQueryPlan();
            GetQueryPlanValues qv = new GetQueryPlanValues();

            string constring_1 = u.GetConnectionString("AdventureWorks2014");

            string[] batches               = b.GetFileContent(@"..\\..\\..\\SabinIO.Performance.UDF\\Demos\\Udf_Demo2.sql");
            string   SqlNamespace          = "http://schemas.microsoft.com/sqlserver/2004/07/showplan";
            string   XPath                 = "//sql:Batch/sql:Statements/sql:StmtSimple/sql:QueryPlan[1]/sql:RelOp/sql:StreamAggregate/sql:RelOp/sql:Top/sql:RelOp/@LogicalOp";
            long     batchFiveDuration     = 0;
            long     batchSixDuration      = 0;
            long     batchTwelveDuration   = 0;
            long     batchThirteenDuration = 0;

            for (int i = 0; i < batches.Length; i++)
            {
                string  batch = batches[i];
                DataSet ds    = r.GetDataSet(batch, constring_1);

                if (i == 5)
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();
                    DataSet ds_5 = r.GetDataSet(batch, constring_1);
                    sw.Stop();
                    batchFiveDuration = sw.ElapsedMilliseconds;

                    string QueryPlan = qp.GetQueryPlanForQuery(constring_1, batch);
                    string _operator = qv.GetSingleValue(QueryPlan, SqlNamespace, XPath);
                    Assert.AreEqual("Compute Scalar", _operator);
                }

                if (i == 6)
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();
                    DataSet ds_6 = r.GetDataSet(batch, constring_1);
                    sw.Stop();
                    batchSixDuration = sw.ElapsedMilliseconds;
                    Assert.IsTrue(batchFiveDuration < batchSixDuration);
                }

                if (i == 12)
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();
                    DataSet ds_5 = r.GetDataSet(batch, constring_1);
                    sw.Stop();
                    batchTwelveDuration = sw.ElapsedMilliseconds;
                    Assert.IsTrue(batchTwelveDuration < batchSixDuration);
                }

                if (i == 13)
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();
                    DataSet ds_6 = r.GetDataSet(batch, constring_1);
                    sw.Stop();
                    batchThirteenDuration = sw.ElapsedMilliseconds;
                    Assert.IsTrue(batchTwelveDuration <= batchThirteenDuration);
                }
            }
        }