SqlServer 统计 MVC 每个 Action 的 相应时间

来源:互联网 发布:列宾美院知乎 编辑:程序博客网 时间:2024/06/16 21:01

1.创建MonitorAction表 

CREATE TABLE [dbo].[MonitorAction]([Id] [bigint] IDENTITY(1,1) NOT NULL,[HttpMethod] [varchar](10) NOT NULL,[AreaName] [varchar](50) NULL,[ControllerName] [varchar](70) NOT NULL,[ActionName] [varchar](70) NOT NULL,[ActionDescription] [nvarchar](50) NULL,[IsDeleted] [bit] NOT NULL,[CreatedUserId] [varchar](50) NOT NULL,[CreatedTime] [datetime2](7) NOT NULL,[LastUpdatedTime] [datetime2](7) NOT NULL,[LastUpdatedUserId] [varchar](50) NOT NULL,[MaxExecutedMillisecond] [bigint] NULL,[MinExecutedMillisecond] [bigint] NULL,[AvgExecutedMillisecond] [bigint] NULL,[ExecutedTime] [bigint] NULL,[Remark] [nvarchar](100) NULL, CONSTRAINT [PK_MonitorAction] PRIMARY KEY CLUSTERED ([Id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[MonitorAction] ADD  CONSTRAINT [DF_MonitorAction_IsDeleted]  DEFAULT ((0)) FOR [IsDeleted]GOALTER TABLE [dbo].[MonitorAction] ADD  CONSTRAINT [DF_MonitorAction_CreatedUserId]  DEFAULT ('System') FOR [CreatedUserId]GOALTER TABLE [dbo].[MonitorAction] ADD  CONSTRAINT [DF_MonitorAction_CreatedTime]  DEFAULT (getdate()) FOR [CreatedTime]GOALTER TABLE [dbo].[MonitorAction] ADD  CONSTRAINT [DF_MonitorAction_LastUpdatedTime]  DEFAULT (getdate()) FOR [LastUpdatedTime]GOALTER TABLE [dbo].[MonitorAction] ADD  CONSTRAINT [DF_MonitorAction_LastUpdatedUserId]  DEFAULT ('System') FOR [LastUpdatedUserId]GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'标识列' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'Id'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客户端使用的HTTP传输方法' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'HttpMethod'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Area名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'AreaName'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Controller名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'ControllerName'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Action名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'ActionName'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Action说明' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'ActionDescription'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'逻辑删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'IsDeleted'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建人(标识)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'CreatedUserId'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间(这条业务数据产生的时间)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'CreatedTime'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'LastUpdatedTime'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改人(标识)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'LastUpdatedUserId'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最大执行时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'MaxExecutedMillisecond'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最小执行时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'MinExecutedMillisecond'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'平均执行时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'AvgExecutedMillisecond'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执行总次数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'ExecutedTime'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction', @level2type=N'COLUMN',@level2name=N'Remark'GOEXEC sys.sp_addextendedproperty @name=N'Description', @value=N'监控Action的响应时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonitorAction'GO


2.执行Sql语句 建议 用SqlServer 定时计划进行执行


INSERT INTO MonitorAction (HttpMethod,AreaName,ControllerName,ActionName,ActionDescription,MaxExecutedMillisecond,MinExecutedMillisecond,AvgExecutedMillisecond,ExecutedTime,Remark)SELECT HttpMethod,AreaName,ControllerName,ActionName,max(ActionDescription) ActionDescription,max(ExecutingTimeSpan) MaxExecutedMillisecond, min(ExecutingTimeSpan) MinExecutedMillisecond,AVG(ExecutingTimeSpan) AvgExecutedMillisecond,count(*) ExecutedTime,'数据来源:SqlServer定时计划'FROM LogActionRenderTime GROUP BY  HttpMethod,AreaName,ControllerName,ActionName order by ControllerName,ActionName-- select * from MonitorAction-- truncate table MonitorAction





0 0
原创粉丝点击