public AverageDurationHandler(int keeptop,string textDataMatchFilterString,string textDataNotMatchFilterString) { TraceDefinitionFile.ColumnFilter filter = new TraceDefinitionFile.ColumnFilter(TraceColumn.TextData,true); TraceDefinitionFile.ColumnFilter filterDuration = new TraceDefinitionFile.ColumnFilter(TraceColumn.Duration, false); filterDuration.Operations.Add( new TraceDefinitionFile.ColumnFilter.Operation(TraceDefinitionFile.ColumnFilter.OperatorEnum.GreaterOrEqual,(Int64)1)); tracedefinition.ColumnFilters.Add(filter); tracedefinition.ColumnFilters.Add(filterDuration);//1 e8 03 2 d0 07 //tracedefinition = TraceDefinitionFile.Common; //tracedefinition.Remove(TraceEvent.RPCCompleted); this.top = keeptop; result = InitResult(); if(!string.IsNullOrWhiteSpace(textDataMatchFilterString)) textDataMatchFilter = new Regex(textDataMatchFilterString,RegexOptions.IgnoreCase); if (!string.IsNullOrWhiteSpace(textDataNotMatchFilterString)) textDataNotMatchFilter = new Regex(textDataNotMatchFilterString, RegexOptions.IgnoreCase); regexs.Add(new Regex(@"(?<key>[@]{0,1}[\w|\d]+?)[\s|\n]*[=|>|<]+[\s|\n]*(?<value>[\S|\s]+?)[,|and]{1}"), (s) => { decimal decimalvalue = 0; Decimal.TryParse(s, out decimalvalue); return s.Contains('.') && decimalvalue.ToString() != s && !s.Contains("'"); } ); regexs.Add(new Regex(@"in[\s|\n]*[(]{1}(?<value>[\S|\s]+?)[)]{1}"), (s) => { return s.ToLower().Contains("select"); } ); }
private void Init() { List<TraceColumn> columns = new List<TraceColumn>(); columns.Add(TraceColumn.EventClass); columns.Add(TraceColumn.ObjectName); columns.Add(TraceColumn.LineNumber); columns.Add(TraceColumn.NestLevel); columns.Add(TraceColumn.SPID); columns.Add(TraceColumn.TextData); columns.Add(TraceColumn.StartTime); //columns.Add(TraceColumn.CPU); //columns.Add(TraceColumn.Reads); //columns.Add(TraceColumn.Writes); traceDefinition.Add(TraceEventEnum.ShowplanXMLStatisticsProfile, columns); //TraceDefinitionFile.ColumnFilter filter = new TraceDefinitionFile.ColumnFilter(TraceColumn.ObjectName, true); TraceDefinitionFile.ColumnFilter filter = new TraceDefinitionFile.ColumnFilter(TraceColumn.ObjectName,false); filter.Operations.Add(new TraceDefinitionFile.ColumnFilter.Operation(TraceDefinitionFile.ColumnFilter.OperatorEnum.Like, "SP%")); filter.Operations.Add(new TraceDefinitionFile.ColumnFilter.Operation(TraceDefinitionFile.ColumnFilter.OperatorEnum.NotLike, "%PgicCasinoLink30CommunicationsMessageBridge%")); traceDefinition.ColumnFilters.Add(filter); Result = InitResult(); }