summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleksii Kovalov <OleksiiKovalov@users.noreply.github.com>2014-07-31 22:05:50 +0000
committerOleksii Kovalov <OleksiiKovalov@users.noreply.github.com>2014-07-31 22:05:50 +0000
commit97ad3a475a7db13c26151bdcbde9bea63cf8344b (patch)
treef90f2e6e181a93817de9cd45e8a689f0b6529f89
parenta526cd2786f955a21a11933252c6e4c23cb37c34 (diff)
downloadexpressprofiler-97ad3a475a7db13c26151bdcbde9bea63cf8344b.zip
expressprofiler-97ad3a475a7db13c26151bdcbde9bea63cf8344b.tar.gz
expressprofiler-97ad3a475a7db13c26151bdcbde9bea63cf8344b.tar.bz2
[1910] The Blocked Process Report
[2197] SPID/Application filter
-rw-r--r--ExpressProfiler/ExpressProfiler/MainForm.cs51
-rw-r--r--ExpressProfiler/ExpressProfiler/TraceProperties.cs35
2 files changed, 53 insertions, 33 deletions
diff --git a/ExpressProfiler/ExpressProfiler/MainForm.cs b/ExpressProfiler/ExpressProfiler/MainForm.cs
index cb8ed16..8679fa7 100644
--- a/ExpressProfiler/ExpressProfiler/MainForm.cs
+++ b/ExpressProfiler/ExpressProfiler/MainForm.cs
@@ -276,22 +276,6 @@ namespace ExpressProfiler
try
{
lvEvents.Columns.Clear();
- /*
- lvEvents.Columns.Add("Event Class", 122);
- lvEvents.Columns.Add("Text Data", 255);
- lvEvents.Columns.Add("Login Name", 79);
- lvEvents.Columns.Add("CPU", 82).TextAlign = HorizontalAlignment.Right;
- lvEvents.Columns.Add("Reads", 78).TextAlign = HorizontalAlignment.Right;
- lvEvents.Columns.Add("Writes", 78).TextAlign = HorizontalAlignment.Right;
- lvEvents.Columns.Add("Duration, ms", 82).TextAlign = HorizontalAlignment.Right;
- lvEvents.Columns.Add("SPID", 50).TextAlign = HorizontalAlignment.Right;
- if(m_currentsettings.EventsColumns.StartTime) lvEvents.Columns.Add("Start time", 140).TextAlign = HorizontalAlignment.Left;
- if (m_currentsettings.EventsColumns.EndTime) lvEvents.Columns.Add("End time", 140).TextAlign = HorizontalAlignment.Left;
- if (m_currentsettings.EventsColumns.Database) lvEvents.Columns.Add("Database", 70).TextAlign = HorizontalAlignment.Left;
- if (m_currentsettings.EventsColumns.ObjectName) lvEvents.Columns.Add("ObjectName", 70).TextAlign = HorizontalAlignment.Left;
- if (m_currentsettings.EventsColumns.ApplicationName) lvEvents.Columns.Add("ApplicationName", 70).TextAlign = HorizontalAlignment.Left;
- lvEvents.Columns.Add("#", 53).TextAlign = HorizontalAlignment.Right;
- */
foreach (PerfColumn pc in m_columns)
{
var l = lvEvents.Columns.Add(pc.Caption, pc.Width);
@@ -573,25 +557,34 @@ namespace ExpressProfiler
ProfilerEventColumns.ApplicationName
);
}
+ if (m_currentsettings.EventsColumns.BlockedProcessPeport)
+ {
+ m_Rdr.SetEvent(ProfilerEvents.ErrorsAndWarnings.Blockedprocessreport,
+ ProfilerEventColumns.TextData,
+ ProfilerEventColumns.LoginName,
+ ProfilerEventColumns.CPU,
+ ProfilerEventColumns.SPID,
+ ProfilerEventColumns.StartTime,
+ ProfilerEventColumns.DatabaseName,
+ ProfilerEventColumns.ApplicationName
+ );
+
+ }
if (null != m_currentsettings.Filters.Duration)
{
SetIntFilter(m_currentsettings.Filters.Duration*1000,
m_currentsettings.Filters.DurationFilterCondition, ProfilerEventColumns.Duration);
}
- SetIntFilter(m_currentsettings.Filters.Reads, m_currentsettings.Filters.ReadsFilterCondition,
- ProfilerEventColumns.Reads);
- SetIntFilter(m_currentsettings.Filters.Writes, m_currentsettings.Filters.WritesFilterCondition,
- ProfilerEventColumns.Writes);
- SetIntFilter(m_currentsettings.Filters.CPU, m_currentsettings.Filters.CpuFilterCondition,
- ProfilerEventColumns.CPU);
-
- SetStringFilter(m_currentsettings.Filters.LoginName, m_currentsettings.Filters.LoginNameFilterCondition,
- ProfilerEventColumns.LoginName);
- SetStringFilter(m_currentsettings.Filters.DatabaseName,
- m_currentsettings.Filters.DatabaseNameFilterCondition, ProfilerEventColumns.DatabaseName);
- SetStringFilter(m_currentsettings.Filters.TextData, m_currentsettings.Filters.TextDataFilterCondition,
- ProfilerEventColumns.TextData);
+ SetIntFilter(m_currentsettings.Filters.Reads, m_currentsettings.Filters.ReadsFilterCondition,ProfilerEventColumns.Reads);
+ SetIntFilter(m_currentsettings.Filters.Writes, m_currentsettings.Filters.WritesFilterCondition,ProfilerEventColumns.Writes);
+ SetIntFilter(m_currentsettings.Filters.CPU, m_currentsettings.Filters.CpuFilterCondition,ProfilerEventColumns.CPU);
+ SetIntFilter(m_currentsettings.Filters.SPID, m_currentsettings.Filters.SPIDFilterCondition, ProfilerEventColumns.SPID);
+
+ SetStringFilter(m_currentsettings.Filters.LoginName, m_currentsettings.Filters.LoginNameFilterCondition,ProfilerEventColumns.LoginName);
+ SetStringFilter(m_currentsettings.Filters.DatabaseName,m_currentsettings.Filters.DatabaseNameFilterCondition, ProfilerEventColumns.DatabaseName);
+ SetStringFilter(m_currentsettings.Filters.TextData, m_currentsettings.Filters.TextDataFilterCondition,ProfilerEventColumns.TextData);
+ SetStringFilter(m_currentsettings.Filters.ApplicationName, m_currentsettings.Filters.ApplicationNameFilterCondition, ProfilerEventColumns.ApplicationName);
m_Cmd.Connection = m_Conn;
diff --git a/ExpressProfiler/ExpressProfiler/TraceProperties.cs b/ExpressProfiler/ExpressProfiler/TraceProperties.cs
index 8bc9544..5c5497e 100644
--- a/ExpressProfiler/ExpressProfiler/TraceProperties.cs
+++ b/ExpressProfiler/ExpressProfiler/TraceProperties.cs
@@ -110,7 +110,8 @@ namespace ExpressProfiler
Database = EventsColumns.Database,
EndTime = EventsColumns.EndTime,
ObjectName = EventsColumns.ObjectName,
- StartTime = EventsColumns.StartTime
+ StartTime = EventsColumns.StartTime,
+ BlockedProcessPeport = EventsColumns.BlockedProcessPeport
}
,Filters = new TraceFilters
{
@@ -128,8 +129,11 @@ namespace ExpressProfiler
TextDataFilterCondition = Filters.TextDataFilterCondition,
Writes = Filters.Writes,
WritesFilterCondition = Filters.WritesFilterCondition,
- MaximumEventCount = Filters.MaximumEventCount
-
+ MaximumEventCount = Filters.MaximumEventCount,
+ SPID = Filters.SPID,
+ SPIDFilterCondition = Filters.SPIDFilterCondition,
+ ApplicationName = Filters.ApplicationName,
+ ApplicationNameFilterCondition = Filters.ApplicationNameFilterCondition
}
}
;
@@ -177,6 +181,12 @@ namespace ExpressProfiler
[DisplayName(@"User Error Message")]
[DefaultValue(false)]
public bool UserErrorMessage { get; set; }
+ [Category(@"Events")]
+ [DisplayName(@"Blocked process report")]
+ [DefaultValue(false)]
+ public bool BlockedProcessPeport { get; set; }
+
+
[Category(@"Columns")]
[DisplayName(@"Start time")]
@@ -250,6 +260,7 @@ namespace ExpressProfiler
[Category(@"Writes")]
[DisplayName(@"Condition")]
public IntFilterCondition WritesFilterCondition { get; set; }
+
[Category(@"Writes")]
[DisplayName(@"Value")]
public int? Writes { get; set; }
@@ -259,6 +270,20 @@ namespace ExpressProfiler
// [DefaultValue(5000)]
public int MaximumEventCount { get; set; }
+ [Category(@"SPID")]
+ [DisplayName(@"Condition")]
+ public IntFilterCondition SPIDFilterCondition { get; set; }
+ [Category(@"SPID")]
+ [DisplayName(@"Value")]
+ public int? SPID { get; set; }
+
+ [Category(@"ApplicationName")]
+ [DisplayName(@"Condition")]
+ public StringFilterCondition ApplicationNameFilterCondition { get; set; }
+ [Category(@"ApplicationName")]
+ [DisplayName(@"Value")]
+ public string ApplicationName { get; set; }
+
}
public TraceProperties()
@@ -295,7 +320,9 @@ namespace ExpressProfiler
|| ts.EventsColumns.RPCStarting
|| ts.EventsColumns.SPStmtCompleted
|| ts.EventsColumns.SPStmtStarting
- || ts.EventsColumns.UserErrorMessage;
+ || ts.EventsColumns.UserErrorMessage
+ ||ts.EventsColumns.BlockedProcessPeport;
+
}
private void btnRun_Click(object sender, EventArgs e)