コード例 #1
0
        protected override void WriteIndexUtilizationInfo(IndexUtilizationInfo indexUtilizationInfo)
        {
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, QueryMetricsTextWriter.UtilizedIndexes, indentLevel: 1);

            foreach (IndexUtilizationData indexUtilizationData in indexUtilizationInfo.UtilizedIndexes)
            {
                WriteIndexUtilizationData(indexUtilizationData);
            }

            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, QueryMetricsTextWriter.PotentialIndexes, indentLevel: 1);

            foreach (IndexUtilizationData indexUtilizationData in indexUtilizationInfo.PotentialIndexes)
            {
                WriteIndexUtilizationData(indexUtilizationData);
            }

            void WriteIndexUtilizationData(IndexUtilizationData indexUtilizationData)
            {
                QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, $"{QueryMetricsTextWriter.FilterExpression}: {indexUtilizationData.FilterExpression}", indentLevel: 2);
                QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, $"{QueryMetricsTextWriter.IndexExpression}: {indexUtilizationData.IndexDocumentExpression}", indentLevel: 2);
                QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, $"{QueryMetricsTextWriter.FilterExpressionPrecision}: {indexUtilizationData.FilterExpressionPrecision}", indentLevel: 2);
                //QueryMetricsTextWriter.AppendHeaderToStringBuilder(stringBuilder, $"{QueryMetricsTextWriter.IndexPlanFullFidelity}: {indexUtilizationData.IndexPlanFullFidelity}", indentLevel: 2); //currently not exposed to the users
                QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, IndexUtilizationSeparator, indentLevel: 2);
            }
        }
コード例 #2
0
 protected override void WriteBeforeClientSideMetrics()
 {
     QueryMetricsTextWriter.AppendHeaderToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.ClientSideQueryMetrics,
         indentLevel: 0);
 }
コード例 #3
0
 protected override void WriteAfterPartitionExecutionTimeline()
 {
     QueryMetricsTextWriter.AppendHeaderToStringBuilder(
         this.stringBuilder,
         PartitionExecutionTimelineTable.BottomLine,
         indentLevel: 1);
 }
コード例 #4
0
 protected override void WriteAfterSchedulingMetrics()
 {
     QueryMetricsTextWriter.AppendHeaderToStringBuilder(
         this.stringBuilder,
         SchedulingMetricsTable.BottomLine,
         indentLevel: 1);
 }
コード例 #5
0
 private static void AppendNewlineToStringBuilder(StringBuilder stringBuilder)
 {
     QueryMetricsTextWriter.AppendHeaderToStringBuilder(
         stringBuilder,
         string.Empty,
         indentLevel: 0);
 }
コード例 #6
0
 protected override void WriteBeforeRuntimeExecutionTimes()
 {
     QueryMetricsTextWriter.AppendHeaderToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.RuntimeExecutionTimes,
         indentLevel: 1);
 }
コード例 #7
0
 protected override void WriteBeforeIndexUtilizationInfo()
 {
     QueryMetricsTextWriter.AppendHeaderToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.IndexUtilizationInfo,
         indentLevel: 0);
 }
コード例 #8
0
 protected override void WriteTotalQueryExecutionTime(TimeSpan totalQueryExecutionTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.TotalQueryExecutionTime,
         totalQueryExecutionTime,
         indentLevel: 0);
 }
コード例 #9
0
 protected override void WriteUserDefinedFunctionExecutionTime(TimeSpan userDefinedFunctionExecutionTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.UserDefinedFunctionExecutionTime,
         userDefinedFunctionExecutionTime,
         indentLevel: 2);
 }
コード例 #10
0
 protected override void WriteSystemFunctionExecutionTime(TimeSpan systemFunctionExecutionTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.SystemFunctionExecuteTime,
         systemFunctionExecutionTime,
         indentLevel: 2);
 }
コード例 #11
0
 protected override void WriteQueryEngineExecutionTime(TimeSpan queryEngineExecutionTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.QueryEngineTimes,
         queryEngineExecutionTime,
         indentLevel: 2);
 }
コード例 #12
0
 protected override void WriteRetries(long retries)
 {
     QueryMetricsTextWriter.AppendCountToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.Retries,
         retries,
         indentLevel: 1);
 }
コード例 #13
0
 protected override void WriteIndexHitRatio(double indexHitRatio)
 {
     QueryMetricsTextWriter.AppendPercentageToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.IndexUtilization,
         indexHitRatio,
         indentLevel: 0);
 }
コード例 #14
0
 protected override void WriteOutputDocumentSize(long outputDocumentSize)
 {
     QueryMetricsTextWriter.AppendBytesToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.OutputDocumentSize,
         outputDocumentSize,
         indentLevel: 0);
 }
コード例 #15
0
 protected override void WriteOutputDocumentCount(long outputDocumentCount)
 {
     QueryMetricsTextWriter.AppendCountToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.OutputDocumentCount,
         outputDocumentCount,
         indentLevel: 0);
 }
コード例 #16
0
 protected override void WriteRetrievedDocumentSize(long retrievedDocumentSize)
 {
     QueryMetricsTextWriter.AppendBytesToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.RetrievedDocumentSize,
         retrievedDocumentSize,
         indentLevel: 0);
 }
コード例 #17
0
 protected override void WriteRetrievedDocumentCount(long retrievedDocumentCount)
 {
     QueryMetricsTextWriter.AppendCountToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.RetrievedDocumentCount,
         retrievedDocumentCount,
         indentLevel: 0);
 }
コード例 #18
0
 protected override void WriteRequestCharge(double requestCharge)
 {
     QueryMetricsTextWriter.AppendRUToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.RequestCharge,
         requestCharge,
         indentLevel: 1);
 }
コード例 #19
0
 protected override void WritePhysicalPlanBuildTime(TimeSpan physicalPlanBuildTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.PhysicalPlanBuildTime,
         physicalPlanBuildTime,
         indentLevel: 2);
 }
コード例 #20
0
 protected override void WriteIndexLookupTime(TimeSpan indexLookupTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.IndexLookupTime,
         indexLookupTime,
         indentLevel: 1);
 }
コード例 #21
0
 protected override void WriteDocumentWriteTime(TimeSpan documentWriteTime)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.DocumentWriteTime,
         documentWriteTime,
         indentLevel: 1);
 }
コード例 #22
0
        private string ToTextString()
        {
            StringBuilder          stringBuilder          = new StringBuilder();
            QueryMetricsTextWriter queryMetricsTextWriter = new QueryMetricsTextWriter(stringBuilder);

            queryMetricsTextWriter.WriteQueryMetrics(this);
            return(stringBuilder.ToString());
        }
コード例 #23
0
 protected override void WriteRuntimeExecutionTime(RuntimeExecutionTimes runtimeExecutionTimes)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.RuntimeExecutionTime,
         runtimeExecutionTimes.SystemFunctionExecutionTime
         + runtimeExecutionTimes.UserDefinedFunctionExecutionTime,
         indentLevel: 1);
 }
コード例 #24
0
        protected override void WriteBeforePartitionExecutionTimeline()
        {
            QueryMetricsTextWriter.AppendNewlineToStringBuilder(this.stringBuilder);

            // Building the table for fetch execution ranges
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, QueryMetricsTextWriter.FetchExecutionRanges, indentLevel: 1);
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, PartitionExecutionTimelineTable.TopLine, indentLevel: 1);
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, PartitionExecutionTimelineTable.Header, indentLevel: 1);
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, PartitionExecutionTimelineTable.MiddleLine, indentLevel: 1);
        }
コード例 #25
0
        protected override void WriteBeforeSchedulingMetrics()
        {
            QueryMetricsTextWriter.AppendNewlineToStringBuilder(this.stringBuilder);

            // Building the table for scheduling metrics
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, QueryMetricsTextWriter.SchedulingMetrics, indentLevel: 1);
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, SchedulingMetricsTable.TopLine, indentLevel: 1);
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, SchedulingMetricsTable.Header, indentLevel: 1);
            QueryMetricsTextWriter.AppendHeaderToStringBuilder(this.stringBuilder, SchedulingMetricsTable.MiddleLine, indentLevel: 1);
        }
コード例 #26
0
 protected override void WriteQueryPreparationTime(QueryPreparationTimes queryPreparationTimes)
 {
     QueryMetricsTextWriter.AppendTimeSpanToStringBuilder(
         this.stringBuilder,
         QueryMetricsTextWriter.QueryPreparationTime,
         queryPreparationTimes.LogicalPlanBuildTime
         + queryPreparationTimes.PhysicalPlanBuildTime
         + queryPreparationTimes.QueryCompilationTime
         + queryPreparationTimes.QueryOptimizationTime,
         indentLevel: 1);
 }
コード例 #27
0
        private static void AppendRUToStringBuilder(StringBuilder stringBuilder, string property, double requestCharge, int indentLevel)
        {
            const string RequestChargeFormatString = "{0:n2}";
            const string RequestChargeUnitString   = "RUs";

            QueryMetricsTextWriter.AppendToStringBuilder(
                stringBuilder,
                property,
                string.Format(CultureInfo.InvariantCulture, RequestChargeFormatString, requestCharge),
                RequestChargeUnitString,
                indentLevel);
        }
コード例 #28
0
        private static void AppendTimeSpanToStringBuilder(StringBuilder stringBuilder, string property, TimeSpan timeSpan, int indentLevel)
        {
            const string MillisecondsFormatString = "{0:n2}";
            const string MillisecondsUnitString   = "milliseconds";

            QueryMetricsTextWriter.AppendToStringBuilder(
                stringBuilder,
                property,
                string.Format(CultureInfo.InvariantCulture, MillisecondsFormatString, timeSpan.TotalMilliseconds),
                MillisecondsUnitString,
                indentLevel);
        }
コード例 #29
0
        private static void AppendPercentageToStringBuilder(StringBuilder stringBuilder, string property, double percentage, int indentLevel)
        {
            const string PercentageFormatString = "{0:n2}";
            const string PercentageUnitString   = "%";

            QueryMetricsTextWriter.AppendToStringBuilder(
                stringBuilder,
                property,
                string.Format(CultureInfo.InvariantCulture, PercentageFormatString, percentage * 100),
                PercentageUnitString,
                indentLevel);
        }
コード例 #30
0
        private static void AppendCountToStringBuilder(StringBuilder stringBuilder, string property, long count, int indentLevel)
        {
            const string CountFormatString = "{0:n0}";
            const string CountUnitString   = "";

            QueryMetricsTextWriter.AppendToStringBuilder(
                stringBuilder,
                property,
                string.Format(CultureInfo.InvariantCulture, CountFormatString, count),
                CountUnitString,
                indentLevel);
        }