SqlServerStorage
Understands how to store a ServiceStack.MiniProfiler.Profiler to a MSSQL database.
Assembly: ServiceStack.NetFramework.dll
View Source
public class SqlServerStorage : DatabaseStorageBase, IStorage
Inherited Properties
ConnectionString
How we connect to the database used to save/load MiniProfiler results.
View Source
protected string ConnectionString { get; set; }
Fields
TableCreationScript
Creates needed tables. Run this once on your database.
View Source
public const string TableCreationScript = "create table MiniProfilers\r\n (\r\n RowId integer not null identity constraint PK_MiniProfilers primary key clustered, -- Need a clustered primary key for SQL Azure\r\n Id uniqueidentifier not null, -- don't cluster on a guid\r\n Name nvarchar(200) not null,\r\n Started datetime not null,\r\n MachineName nvarchar(100) null,\r\n [User] nvarchar(100) null,\r\n Level tinyint null,\r\n RootTimingId uniqueidentifier null,\r\n DurationMilliseconds decimal(7, 1) not null,\r\n DurationMillisecondsInSql decimal(7, 1) null,\r\n HasSqlTimings bit not null,\r\n HasDuplicateSqlTimings bit not null,\r\n HasTrivialTimings bit not null,\r\n HasAllTrivialTimings bit not null,\r\n TrivialDurationThresholdMilliseconds decimal(5, 1) null,\r\n HasUserViewed bit not null,\r\n Json nvarchar(max)\r\n );\r\n -- displaying results selects everything based on the main MiniProfilers.Id column\r\n create unique nonclustered index IX_MiniProfilers_Id on MiniProfilers (Id);\r\n \r\n -- speeds up a query that is called on every .Stop()\r\n create nonclustered index IX_MiniProfilers_User_HasUserViewed_Includes on MiniProfilers ([User], HasUserViewed) include (Id, [Started]);\r\n"
Methods
Save(MiniProfiler)
Stores <param name="profiler" /> to dbo.MiniProfilers under its Profiler.Id; stores all child Timings and SqlTimings to their respective tables.
View Source
public override void Save(MiniProfiler profiler)
Parameters
Type | Name |
---|---|
ServiceStack.MiniProfiler.MiniProfiler | profiler |
Load(Guid)
Loads the MiniProfiler identifed by 'id' from the database.
View Source
public override MiniProfiler Load(Guid id)
Returns
ServiceStack.MiniProfiler.MiniProfiler
Parameters
Type | Name |
---|---|
System.Guid | id |
GetUnviewedIds(String)
Returns a list of Profiler.Ids that haven't been seen by <code data-dev-comment-type="paramref" class="paramref">user</code>.
View Source
public override List<Guid> GetUnviewedIds(string user)
Returns
System.Collections.Generic.List<System.Guid>
Parameters
Type | Name | Description |
---|---|---|
System.String | user | User identified by the current MiniProfiler.Settings.UserProvider. |
|
GetConnection()
Returns a connection to Sql Server.
View Source
protected override DbConnection GetConnection()
Returns
System.Data.Common.DbConnection
Inherited Methods
GetConnection()
Returns a DbConnection for your specific provider.
View Source
protected abstract DbConnection GetConnection()
Returns
System.Data.Common.DbConnection
GetOpenConnection()
Returns a DbConnection already opened for execution.
View Source
protected DbConnection GetOpenConnection()
Returns
System.Data.Common.DbConnection
GetUnviewedIds(String)
Returns a list of ServiceStack.MiniProfiler.MiniProfiler.Ids that haven't been seen by <code data-dev-comment-type="paramref" class="paramref">user</code>.
View Source
public abstract List<Guid> GetUnviewedIds(string user)
Returns
System.Collections.Generic.List<System.Guid>
Parameters
Type | Name | Description |
---|---|---|
System.String | user | User identified by the current MiniProfiler.Settings.UserProvider. |
|
Load(Guid)
Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'.
View Source
public abstract MiniProfiler Load(Guid id)
Returns
ServiceStack.MiniProfiler.MiniProfiler
Parameters
Type | Name |
---|---|
System.Guid | id |
Save(MiniProfiler)
Saves 'profiler' to a database under its ServiceStack.MiniProfiler.MiniProfiler.Id.
View Source
public abstract void Save(MiniProfiler profiler)
Parameters
Type | Name |
---|---|
ServiceStack.MiniProfiler.MiniProfiler | profiler |