SqlServer 统计 MVC 每个 Action 的 相应时间
2017-02-04 16:56
411 查看
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] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[MonitorAction] ADD CONSTRAINT [DF_MonitorAction_IsDeleted] DEFAULT ((0)) FOR [IsDeleted] GO ALTER TABLE [dbo].[MonitorAction] ADD CONSTRAINT [DF_MonitorAction_CreatedUserId] DEFAULT ('System') FOR [CreatedUserId] GO ALTER TABLE [dbo].[MonitorAction] ADD CONSTRAINT [DF_MonitorAction_CreatedTime] DEFAULT (getdate()) FOR [CreatedTime] GO ALTER TABLE [dbo].[MonitorAction] ADD CONSTRAINT [DF_MonitorAction_LastUpdatedTime] DEFAULT (getdate()) FOR [LastUpdatedTime] GO ALTER TABLE [dbo].[MonitorAction] ADD CONSTRAINT [DF_MonitorAction_LastUpdatedUserId] DEFAULT ('System') FOR [LastUpdatedUserId] GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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' GO EXEC 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
相关文章推荐
- 通过拦截器来统计每个action的执行时间
- 通过拦截器来统计每个action的执行时间
- 通过拦截器来统计每个action的执行时间
- 在MVC或WEBAPI中记录每个Action的执行时间和记录下层方法调用时间
- 【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间
- SQLServer 统计查询语句消耗时间
- 在Asp.Net MVC中实现计算页面执行时间及简单流量统计
- 线性时间内统计一个字符串中每个字符出现的次数
- 统计Nginx每个时间点的并发数
- SQLSERVER执行时间统计工具SQLQueryStress
- tomcat Access Log 统计相应时间
- 根据日志统计出每个用户在站点所呆时间最长的前2个的信息
- 统计5分钟内Nginx访问量及平均相应时间
- Spark读取日志,统计每个service所用的平均时间
- 按每天特定时间作为分界来统计数据的sql语句[sqlserver]
- 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
- 从键盘输入一串英文字母(不含空格与其它字符),统计每个字母的个数,并输出字母个数及相应的个数
- 统计5分钟内Nginx访问量及平均相应时间
- 求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
- SQLSERVER语句的执行时间显示的统计结果是什么意思