{"id":280496,"date":"2016-11-05T21:25:03","date_gmt":"2016-11-05T18:25:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=280496"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=280496","title":{"rendered":"\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 \u0432 MS SQL Server. \u0410\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430"},"content":{"rendered":"<h3>\u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435<\/h3>\n<p>  \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432\u0441\u0435 \u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u041f\u0440\u043e\u0444\u0430\u0439\u043b\u0435\u0440\u0430 \u043d\u0430 \u0446\u0435\u043b\u044b\u0435 \u0441\u0443\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 24&#215;7.<\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432? \u0418 \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430?<\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432:<br \/>  1) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<br \/>  2) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<br \/>  3) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<br \/>  4) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<\/p>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:<br \/>  1) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438:<br \/>  1.1) \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  SET ANSI_PADDING ON GO  CREATE TABLE [srv].[SQL_StatementExecStat]( \t[ID] [bigint] IDENTITY(1,1) NOT NULL, \t[InsertDate] [datetime] NULL, \t[QueryHash] [binary](8) NULL, \t[ExecutionCount] [bigint] NULL, \t[TotalWorkerTime] [bigint] NULL, \t[StatementText] [nvarchar](max) NULL, \t[TotalElapsedTime] [bigint] NULL,  CONSTRAINT [PK_SQL_StatementExecStat] PRIMARY KEY CLUSTERED  ( \t[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] TEXTIMAGE_ON [PRIMARY]  GO  SET ANSI_PADDING ON GO <\/code><\/pre>\n<p>  1.2) \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE TABLE [srv].[SQL_ProcedureExecStat]( \t[ID] [bigint] IDENTITY(1,1) NOT NULL, \t[InsertDate] [datetime] NULL, \t[database_id] [int] NULL, \t[object_id] [int] NULL, \t[ExecutionCount] [bigint] NULL, \t[TotalWorkerTime] [bigint] NULL, \t[TotalElapsedTime] [bigint] NULL, \t[TotalPhysicalReads] [bigint] NULL, \t[TotalLogicalReads] [bigint] NULL, \t[TotalLogicalWrites] [bigint] NULL,  CONSTRAINT [PK_SQL_ProcedureExecStat] PRIMARY KEY CLUSTERED  ( \t[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 <\/code><\/pre>\n<p>  1.3) \u0434\u043b\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE TABLE [srv].[SQL_TriggerExecStat]( \t[ID] [bigint] IDENTITY(1,1) NOT NULL, \t[InsertDate] [datetime] NULL, \t[database_id] [int] NULL, \t[object_id] [int] NULL, \t[ExecutionCount] [bigint] NULL, \t[TotalWorkerTime] [bigint] NULL, \t[TotalElapsedTime] [bigint] NULL ) ON [PRIMARY]  GO <\/code><\/pre>\n<p>  2) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0437\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u044b, \u0442 \u0435 \u0443\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u043c\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0438 \u0442 \u0434)):<br \/>  2.1) \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE view [srv].[vStatementExecInfo] as  with info as ( SELECT \tquery_stats.query_hash\t\t\t\t\tAS QueryHash,      SUM(query_stats.total_worker_time\t) \/ \tSUM(query_stats.execution_count)\t\tAS AvgCPU_Time, \tSUM(query_stats.execution_count\t\t)\tAS ExecutionCount, \tSUM(query_stats.total_worker_time\t)\tAS TotalWorkerTime,     MIN(query_stats.statement_text\t\t)\tAS StatementText,     MIN(query_stats.min_worker_time\t\t)\tAS MinWorkerTime,     MAX(query_stats.max_worker_time\t\t)\tAS MaxWorkerTime, \tSUM(query_stats.total_physical_reads)\tAS TotalPhysicalReads,     MIN(query_stats.min_physical_reads\t)\tAS MinPhysicalReads,     MAX(query_stats.max_physical_reads\t)\tAS MaxPhysicalReads, \tSUM(query_stats.total_physical_reads) \/  \tSUM(query_stats.execution_count)\t\tAS AvgPhysicalReads, \tSUM(query_stats.total_logical_writes)\tAS TotalLogicalWrites,     MIN(query_stats.min_logical_writes\t)\tAS MinLogicalWrites,     MAX(query_stats.max_logical_writes\t)\tAS MaxLogicalWrites, \tSUM(query_stats.total_logical_writes) \/  \tSUM(query_stats.execution_count)\t\tAS AvgLogicalWrites, \tSUM(query_stats.total_logical_reads )\tAS TotalLogicalReads,     MIN(query_stats.min_logical_reads\t)\tAS MinLogicalReads,     MAX(query_stats.max_logical_reads\t)\tAS MaxLogicalReads, \tSUM(query_stats.total_logical_reads ) \/  \tSUM(query_stats.execution_count)\t\tAS AvgLogicalReads, \tSUM(query_stats.total_elapsed_time\t)\tAS TotalElapsedTime,     MIN(query_stats.min_elapsed_time\t)\tAS MinElapsedTime,     MAX(query_stats.max_elapsed_time\t)\tAS MaxElapsedTime, \tSUM(query_stats.total_elapsed_time\t) \/  \tSUM(query_stats.execution_count)\t\tAS AvgElapsedTime,  \tMIN(query_stats.creation_time\t\t)\tAS MinCreationTime, \tMAX(query_stats.last_execution_time\t)\tAS LastExecuteTime FROM      (SELECT QS.query_hash \t\t\t,QS.total_worker_time\t \t\t\t,QS.execution_count\t\t\t \t\t\t,QS.min_worker_time\t\t \t\t\t,QS.max_worker_time\t\t \t\t\t,QS.min_physical_reads\t \t\t\t,QS.max_physical_reads\t \t\t\t,QS.total_physical_reads \t\t\t,QS.total_logical_writes \t\t\t,QS.min_logical_writes\t \t\t\t,QS.max_logical_writes\t \t\t\t,QS.min_logical_reads\t \t\t\t,QS.max_logical_reads\t \t\t\t,QS.total_logical_reads  \t\t\t,QS.min_elapsed_time\t \t\t\t,QS.max_elapsed_time\t \t\t\t,QS.total_elapsed_time\t \t\t\t,QS.creation_time\t\t \t\t\t,QS.last_execution_time     ,SUBSTRING(ST.text, (QS.statement_start_offset\/2) + 1,     ((CASE statement_end_offset          WHEN -1 THEN DATALENGTH(ST.text)         ELSE QS.statement_end_offset END              - QS.statement_start_offset)\/2) + 1) AS statement_text      FROM sys.dm_exec_query_stats AS QS      CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats WHERE execution_count &gt; 1 and last_execution_time &gt;= dateadd(hour,-3,getdate()) GROUP BY query_stats.query_hash) select  \tQueryHash,  \tAvgCPU_Time, \tExecutionCount, \tTotalWorkerTime, \tStatementText, \tMinWorkerTime, \tMaxWorkerTime, \tTotalPhysicalReads, \tMinPhysicalReads, \tMaxPhysicalReads, \tAvgPhysicalReads, \tTotalLogicalWrites, \tMinLogicalWrites, \tMaxLogicalWrites, \tAvgLogicalWrites, \tTotalLogicalReads, \tMinLogicalReads, \tMaxLogicalReads, \tAvgLogicalReads, \tTotalElapsedTime, \tMinElapsedTime, \tMaxElapsedTime, \tAvgElapsedTime, \tMinCreationTime, \tLastExecuteTime from info  GO <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ms189741(v=sql.110).aspx\">sys.dm_exec_query_stats<\/a> \u0438 <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ms181929(v=sql.110).aspx\">sys.dm_exec_sql_text<\/a><br \/>  2.2) \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE view [srv].[vProcedureExecInfo] as  with info as ( SELECT \tprocedure_stats.database_id\t\t\t\t\tAS database_id, \tprocedure_stats.object_id\t\t\t\t\tAS object_id, \tMIN(procedure_stats.type)\t\t\t\t\t\tAS type,      SUM(procedure_stats.total_worker_time\t) \/ \tSUM(procedure_stats.execution_count)\t\tAS AvgCPU_Time, \tSUM(procedure_stats.execution_count\t\t)\tAS ExecutionCount, \tSUM(procedure_stats.total_worker_time\t)\tAS TotalWorkerTime,     MIN(procedure_stats.ProcedureText\t\t)\tAS ProcedureText,     MIN(procedure_stats.min_worker_time\t\t)\tAS MinWorkerTime,     MAX(procedure_stats.max_worker_time\t\t)\tAS MaxWorkerTime, \tSUM(procedure_stats.total_physical_reads)\tAS TotalPhysicalReads,     MIN(procedure_stats.min_physical_reads\t)\tAS MinPhysicalReads,     MAX(procedure_stats.max_physical_reads\t)\tAS MaxPhysicalReads, \tSUM(procedure_stats.total_physical_reads) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgPhysicalReads, \tSUM(procedure_stats.total_logical_writes)\tAS TotalLogicalWrites,     MIN(procedure_stats.min_logical_writes\t)\tAS MinLogicalWrites,     MAX(procedure_stats.max_logical_writes\t)\tAS MaxLogicalWrites, \tSUM(procedure_stats.total_logical_writes) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgLogicalWrites, \tSUM(procedure_stats.total_logical_reads )\tAS TotalLogicalReads,     MIN(procedure_stats.min_logical_reads\t)\tAS MinLogicalReads,     MAX(procedure_stats.max_logical_reads\t)\tAS MaxLogicalReads, \tSUM(procedure_stats.total_logical_reads ) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgLogicalReads, \tSUM(procedure_stats.total_elapsed_time\t)\tAS TotalElapsedTime,     MIN(procedure_stats.min_elapsed_time\t)\tAS MinElapsedTime,     MAX(procedure_stats.max_elapsed_time\t)\tAS MaxElapsedTime, \tSUM(procedure_stats.total_elapsed_time\t) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgElapsedTime,  \tMIN(procedure_stats.cached_time\t\t)\tAS MinCachedTime, \tMAX(procedure_stats.last_execution_time\t)\tAS LastExecuteTime FROM      (SELECT QS.database_id \t\t\t,QS.object_id \t\t\t,QS.type \t\t\t,QS.total_worker_time\t \t\t\t,QS.execution_count\t\t\t \t\t\t,QS.min_worker_time\t\t \t\t\t,QS.max_worker_time\t\t \t\t\t,QS.min_physical_reads\t \t\t\t,QS.max_physical_reads\t \t\t\t,QS.total_physical_reads \t\t\t,QS.total_logical_writes \t\t\t,QS.min_logical_writes\t \t\t\t,QS.max_logical_writes\t \t\t\t,QS.min_logical_reads\t \t\t\t,QS.max_logical_reads\t \t\t\t,QS.total_logical_reads  \t\t\t,QS.min_elapsed_time\t \t\t\t,QS.max_elapsed_time\t \t\t\t,QS.total_elapsed_time\t \t\t\t,QS.cached_time\t\t \t\t\t,QS.last_execution_time \t\t\t,ST.text as Proceduretext      FROM sys.dm_exec_Procedure_stats AS QS      CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as procedure_stats WHERE execution_count &gt; 1 and last_execution_time &gt;= dateadd(hour,-3,getdate()) GROUP BY database_id,object_id) select  \tdatabase_id, \tobject_id, \ttype,  \tAvgCPU_Time, \tExecutionCount, \tTotalWorkerTime, \tProcedureText, \tMinWorkerTime, \tMaxWorkerTime, \tTotalPhysicalReads, \tMinPhysicalReads, \tMaxPhysicalReads, \tAvgPhysicalReads, \tTotalLogicalWrites, \tMinLogicalWrites, \tMaxLogicalWrites, \tAvgLogicalWrites, \tTotalLogicalReads, \tMinLogicalReads, \tMaxLogicalReads, \tAvgLogicalReads, \tTotalElapsedTime, \tMinElapsedTime, \tMaxElapsedTime, \tAvgElapsedTime, \tMinCachedTime, \tLastExecuteTime from info  GO <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/cc280701(v=sql.110).aspx\">sys.dm_exec_Procedure_stats<\/a> \u0438 <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ms181929(v=sql.110).aspx\">sys.dm_exec_sql_text<\/a><br \/>  2.3) \u0434\u043b\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE view [srv].[vTriggerExecInfo] as  with info as ( SELECT \tprocedure_stats.database_id\t\t\t\t\tAS database_id, \tprocedure_stats.object_id\t\t\t\t\tAS object_id, \tMIN(procedure_stats.type)\t\t\t\t\t\tAS type,      SUM(procedure_stats.total_worker_time\t) \/ \tSUM(procedure_stats.execution_count)\t\tAS AvgCPU_Time, \tSUM(procedure_stats.execution_count\t\t)\tAS ExecutionCount, \tSUM(procedure_stats.total_worker_time\t)\tAS TotalWorkerTime,     MIN(procedure_stats.ProcedureText\t\t)\tAS ProcedureText,     MIN(procedure_stats.min_worker_time\t\t)\tAS MinWorkerTime,     MAX(procedure_stats.max_worker_time\t\t)\tAS MaxWorkerTime, \tSUM(procedure_stats.total_physical_reads)\tAS TotalPhysicalReads,     MIN(procedure_stats.min_physical_reads\t)\tAS MinPhysicalReads,     MAX(procedure_stats.max_physical_reads\t)\tAS MaxPhysicalReads, \tSUM(procedure_stats.total_physical_reads) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgPhysicalReads, \tSUM(procedure_stats.total_logical_writes)\tAS TotalLogicalWrites,     MIN(procedure_stats.min_logical_writes\t)\tAS MinLogicalWrites,     MAX(procedure_stats.max_logical_writes\t)\tAS MaxLogicalWrites, \tSUM(procedure_stats.total_logical_writes) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgLogicalWrites, \tSUM(procedure_stats.total_logical_reads )\tAS TotalLogicalReads,     MIN(procedure_stats.min_logical_reads\t)\tAS MinLogicalReads,     MAX(procedure_stats.max_logical_reads\t)\tAS MaxLogicalReads, \tSUM(procedure_stats.total_logical_reads ) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgLogicalReads, \tSUM(procedure_stats.total_elapsed_time\t)\tAS TotalElapsedTime,     MIN(procedure_stats.min_elapsed_time\t)\tAS MinElapsedTime,     MAX(procedure_stats.max_elapsed_time\t)\tAS MaxElapsedTime, \tSUM(procedure_stats.total_elapsed_time\t) \/  \tSUM(procedure_stats.execution_count)\t\tAS AvgElapsedTime,  \tMIN(procedure_stats.cached_time\t\t)\tAS MinCachedTime, \tMAX(procedure_stats.last_execution_time\t)\tAS LastExecuteTime FROM      (SELECT QS.database_id \t\t\t,QS.object_id \t\t\t,QS.type \t\t\t,QS.total_worker_time\t \t\t\t,QS.execution_count\t\t\t \t\t\t,QS.min_worker_time\t\t \t\t\t,QS.max_worker_time\t\t \t\t\t,QS.min_physical_reads\t \t\t\t,QS.max_physical_reads\t \t\t\t,QS.total_physical_reads \t\t\t,QS.total_logical_writes \t\t\t,QS.min_logical_writes\t \t\t\t,QS.max_logical_writes\t \t\t\t,QS.min_logical_reads\t \t\t\t,QS.max_logical_reads\t \t\t\t,QS.total_logical_reads  \t\t\t,QS.min_elapsed_time\t \t\t\t,QS.max_elapsed_time\t \t\t\t,QS.total_elapsed_time\t \t\t\t,QS.cached_time\t\t \t\t\t,QS.last_execution_time \t\t\t,ST.text as Proceduretext      FROM sys.dm_exec_trigger_stats AS QS      CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as procedure_stats WHERE execution_count &gt; 1 and last_execution_time &gt;= dateadd(hour,-3,getdate()) GROUP BY database_id,object_id) select  \tdatabase_id, \tobject_id, \ttype,  \tAvgCPU_Time, \tExecutionCount, \tTotalWorkerTime, \tProcedureText, \tMinWorkerTime, \tMaxWorkerTime, \tTotalPhysicalReads, \tMinPhysicalReads, \tMaxPhysicalReads, \tAvgPhysicalReads, \tTotalLogicalWrites, \tMinLogicalWrites, \tMaxLogicalWrites, \tAvgLogicalWrites, \tTotalLogicalReads, \tMinLogicalReads, \tMaxLogicalReads, \tAvgLogicalReads, \tTotalElapsedTime, \tMinElapsedTime, \tMaxElapsedTime, \tAvgElapsedTime, \tMinCachedTime, \tLastExecuteTime from info  GO <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/cc280646(v=sql.110).aspx\">sys.dm_exec_trigger_stats<\/a> \u0438 <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ms181929(v=sql.110).aspx\">sys.dm_exec_sql_text<\/a><\/p>\n<p>  3) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438:<br \/>  3.1) \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE PROCEDURE [srv].[InsertForSQL_StatementExecStat] \t@koef decimal(12,2)=0.0 --\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430, \t--\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u0440\u0430, \t--\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 0.0, \t--\u0435\u0441\u043b\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0431\u043e\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 5 \u043c\u0438\u043d\u0443\u0442 \t--\u043d\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0432\u043b\u0438\u044f\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u0431\u043e\u0440\u0430 \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 \t--\u0447\u0435\u043c \u0447\u0430\u0449\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0431\u043e\u0440\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 AS BEGIN \tSET NOCOUNT ON;  \tdeclare @AvgCPU_Time bigint        ,@MaxAvgCPU_Time bigint \t   ,@AvgTotalWorkerTime bigint \t   ,@MaxTotalWorkerTime bigint \t   ,@AvgAvgElapsedTime bigint \t   ,@MaxAvgElapsedTime bigint \t   ,@AvgTotalElapsedTime bigint \t   ,@MaxTotalElapsedTime bigint \t \tselect \t\t@AvgCPU_Time\t\t\t= AVG(AvgCPU_Time), \t\t@MaxAvgCPU_Time\t\t\t= max(AvgCPU_Time), \t\t@AvgTotalWorkerTime\t\t= AVG(TotalWorkerTime), \t\t@MaxTotalWorkerTime\t\t= max(TotalWorkerTime), \t\t@AvgAvgElapsedTime\t\t= AVG(AvgElapsedTime), \t\t@MaxAvgElapsedTime\t\t= max(AvgElapsedTime), \t\t@AvgTotalElapsedTime\t= AVG(TotalElapsedTime), \t\t@MaxTotalElapsedTime\t= max(TotalElapsedTime) \tfrom srv.vStatementExecInfo; \t \tinsert into srv.SQL_StatementExecStat \t( \t\t[InsertDate] \t   ,[QueryHash] \t   ,[ExecutionCount] \t   ,[TotalWorkerTime] \t   ,[StatementText] \t   ,[TotalElapsedTime]) \tselect \t\tgetdate() \t   ,[QueryHash] \t   ,[ExecutionCount] \t   ,[TotalWorkerTime] \t   ,[StatementText] \t   ,[TotalElapsedTime] \tfrom srv.vStatementExecInfo \twhere(AvgCPU_Time      &gt; @AvgCPU_Time\t\t  + @koef * (@MaxAvgCPU_Time\t  - @AvgCPU_Time)) \t  or (TotalWorkerTime  &gt; @AvgTotalWorkerTime  + @koef * (@MaxTotalWorkerTime  - @AvgTotalWorkerTime)) \t  or (AvgElapsedTime   &gt; @AvgAvgElapsedTime   + @koef * (@MaxAvgElapsedTime   - @AvgAvgElapsedTime)) \t  or (TotalElapsedTime &gt; @AvgTotalElapsedTime + @koef * (@MaxTotalElapsedTime - @AvgTotalElapsedTime)); END  GO <\/code><\/pre>\n<p>  3.2) \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE PROCEDURE [srv].[InsertForProcedureExecStat] \t@koef decimal(12,2)=0.0 --\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430, \t--\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u0440\u0430, \t--\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 0.0, \t--\u0435\u0441\u043b\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0431\u043e\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 5 \u043c\u0438\u043d\u0443\u0442 \t--\u043d\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0432\u043b\u0438\u044f\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u0431\u043e\u0440\u0430 \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 \t--\u0447\u0435\u043c \u0447\u0430\u0449\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0431\u043e\u0440\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 AS BEGIN \tSET NOCOUNT ON;  \tdeclare @AvgCPU_Time bigint        ,@MaxAvgCPU_Time bigint \t   ,@AvgTotalWorkerTime bigint \t   ,@MaxTotalWorkerTime bigint \t   ,@AvgAvgElapsedTime bigint \t   ,@MaxAvgElapsedTime bigint \t   ,@AvgTotalElapsedTime bigint \t   ,@MaxTotalElapsedTime bigint; \t \tselect \t\t@AvgCPU_Time\t\t\t= AVG(AvgCPU_Time), \t\t@MaxAvgCPU_Time\t\t\t= max(AvgCPU_Time), \t\t@AvgTotalWorkerTime\t\t= AVG(TotalWorkerTime), \t\t@MaxTotalWorkerTime\t\t= max(TotalWorkerTime), \t\t@AvgAvgElapsedTime\t\t= AVG(AvgElapsedTime), \t\t@MaxAvgElapsedTime\t\t= max(AvgElapsedTime), \t\t@AvgTotalElapsedTime\t= AVG(TotalElapsedTime), \t\t@MaxTotalElapsedTime\t= max(TotalElapsedTime) \tfrom srv.vProcedureExecInfo; \t \tinsert into srv.SQL_ProcedureExecStat \t( \t\t[InsertDate] \t   ,database_id \t   ,object_id \t   ,[ExecutionCount] \t   ,[TotalWorkerTime] \t   ,[TotalElapsedTime] \t   ,[TotalPhysicalReads] \t   ,[TotalLogicalReads] \t   ,[TotalLogicalWrites]) \tselect \t\tgetdate() \t   ,database_id \t   ,object_id \t   ,[ExecutionCount] \t   ,[TotalWorkerTime] \t   ,[TotalElapsedTime] \t   ,[TotalPhysicalReads] \t   ,[TotalLogicalReads] \t   ,[TotalLogicalWrites] \tfrom srv.vProcedureExecInfo \twhere(AvgCPU_Time      &gt; @AvgCPU_Time\t\t  + @koef * (@MaxAvgCPU_Time\t  - @AvgCPU_Time)) \t  or (TotalWorkerTime  &gt; @AvgTotalWorkerTime  + @koef * (@MaxTotalWorkerTime  - @AvgTotalWorkerTime)) \t  or (AvgElapsedTime   &gt; @AvgAvgElapsedTime   + @koef * (@MaxAvgElapsedTime   - @AvgAvgElapsedTime)) \t  or (TotalElapsedTime &gt; @AvgTotalElapsedTime + @koef * (@MaxTotalElapsedTime - @AvgTotalElapsedTime)); END  GO <\/code><\/pre>\n<p>  3.3) \u0434\u043b\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE PROCEDURE [srv].[InsertForTriggerExecStat] \t@koef decimal(12,2)=0.0 --\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430, \t--\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u0440\u0430, \t--\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 0.0, \t--\u0435\u0441\u043b\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0431\u043e\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 5 \u043c\u0438\u043d\u0443\u0442 \t--\u043d\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0432\u043b\u0438\u044f\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u0431\u043e\u0440\u0430 \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 \t--\u0447\u0435\u043c \u0447\u0430\u0449\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0431\u043e\u0440\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 AS BEGIN \tSET NOCOUNT ON;  \tdeclare @AvgCPU_Time bigint        ,@MaxAvgCPU_Time bigint \t   ,@AvgTotalWorkerTime bigint \t   ,@MaxTotalWorkerTime bigint \t   ,@AvgAvgElapsedTime bigint \t   ,@MaxAvgElapsedTime bigint \t   ,@AvgTotalElapsedTime bigint \t   ,@MaxTotalElapsedTime bigint \t \tselect \t\t@AvgCPU_Time\t\t\t= AVG(AvgCPU_Time), \t\t@MaxAvgCPU_Time\t\t\t= max(AvgCPU_Time), \t\t@AvgTotalWorkerTime\t\t= AVG(TotalWorkerTime), \t\t@MaxTotalWorkerTime\t\t= max(TotalWorkerTime), \t\t@AvgAvgElapsedTime\t\t= AVG(AvgElapsedTime), \t\t@MaxAvgElapsedTime\t\t= max(AvgElapsedTime), \t\t@AvgTotalElapsedTime\t= AVG(TotalElapsedTime), \t\t@MaxTotalElapsedTime\t= max(TotalElapsedTime) \tfrom srv.vProcedureExecInfo; \t \tinsert into srv.SQL_TriggerExecStat \t( \t\t[InsertDate] \t   ,database_id \t   ,object_id \t   ,[ExecutionCount] \t   ,[TotalWorkerTime] \t   ,[TotalElapsedTime]) \tselect \t\tgetdate() \t   ,database_id \t   ,object_id \t   ,[ExecutionCount] \t   ,[TotalWorkerTime] \t   ,[TotalElapsedTime] \tfrom srv.vTriggerExecInfo \twhere(AvgCPU_Time      &gt; @AvgCPU_Time\t\t  + @koef * (@MaxAvgCPU_Time\t  - @AvgCPU_Time)) \t  or (TotalWorkerTime  &gt; @AvgTotalWorkerTime  + @koef * (@MaxTotalWorkerTime  - @AvgTotalWorkerTime)) \t  or (AvgElapsedTime   &gt; @AvgAvgElapsedTime   + @koef * (@MaxAvgElapsedTime   - @AvgAvgElapsedTime)) \t  or (TotalElapsedTime &gt; @AvgTotalElapsedTime + @koef * (@MaxTotalElapsedTime - @AvgTotalElapsedTime)); END  GO <\/code><\/pre>\n<p>  4) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438, \u0437\u0430\u0442\u0435\u043c \u0437\u0430 \u0447\u0430\u0441):<br \/>  4.1) \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE VIEW [srv].[vStatementExecTotalInfo] as   with info as   (select s.id as ID1,(select ID from [srv].[SQL_StatementExecStat] s2 where InsertDate &gt; dateadd(day,-1,getdate()) --dateadd(hour,-1,getdate()) \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f srv.vStatementExecTotalInfoHour (\u0437\u0430 \u0447\u0430\u0441 \u0441\u0430\u043c\u044b\u0435 \u0442\u044f\u0436\u0435\u043b\u044b\u0435)  and  ID = (select min(ID) from [srv].[SQL_StatementExecStat] where QueryHash = s2.QueryHash and ID &gt; s.ID) and s2.QueryHash = s.QueryHash) as ID2   from [srv].[SQL_StatementExecStat] s) , info1 as   (select s1.ID as ID1,s1.InsertDate as InsertDate1,s1.[QueryHash] as QueryHash1,s1.[ExecutionCount] as ExecutionCount1    ,s1.[TotalWorkerTime] as TotalWorkerTime1,s1.[TotalElapsedTime] as TotalElapsedTime1    ,s2.ID as ID2,s2.InsertDate as InsertDate2,s2.[QueryHash] as QueryHash2,s2.[ExecutionCount] as ExecutionCount2    ,s2.[TotalWorkerTime] as TotalWorkerTime2,s2.[TotalElapsedTime] as TotalElapsedTime2    from info join [srv].[SQL_StatementExecStat] s1    on info.ID1 = s1.ID left join [srv].[SQL_StatementExecStat] s2 on info.ID2 = s2.ID) ,  info2 as    (select * from info1 where ID2 is not null) , info3 as   (select QueryHash1,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1     then (TotalWorkerTime2-TotalWorkerTime1)  \twhen ExecutionCount2=ExecutionCount1 then 0 else TotalWorkerTime2 end as NormTotalWorkerTime           ,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1     then (TotalElapsedTime2-TotalElapsedTime1) \twhen ExecutionCount2=ExecutionCount1 then 0  else TotalElapsedTime2 end as NormTotalElapsedTime \t\t  ,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1     then (TotalWorkerTime2-TotalWorkerTime1)\/(ExecutionCount2-ExecutionCount1) \twhen ExecutionCount2=ExecutionCount1 then null else TotalWorkerTime2\/ExecutionCount2 end as AvgWorkerTime \t\t  ,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1     then (TotalElapsedTime2-TotalElapsedTime1)\/(ExecutionCount2-ExecutionCount1) \twhen ExecutionCount2=ExecutionCount1 then null else TotalElapsedTime2\/ExecutionCount2 end as AvgElapsedTime    from info2    )  , info4 as    (select QueryHash1,count(*) as num,sum(NormTotalWorkerTime) as TotalWorkerTime     ,sum(NormTotalElapsedTime) as TotalElapsedTime \t,avg(AvgWorkerTime) as AvgWorkerTime \t,avg(AvgElapsedTime) as AvgElapsedTime    from info3 group by QueryHash1) ,  info5 as    (select (select top 1 StatementText from [srv].[SQL_StatementExecStat] where QueryHash = info4.QueryHash1) as StatementText, info4.*    from info4) , info6 as    (select avg(TotalWorkerTime) as AvgTotalWorkerTime           ,avg(TotalElapsedTime) as AvgTotalElapsedTime \t\t  ,avg(AvgWorkerTime) as AvgWorkerTime \t\t  ,avg(AvgElapsedTime) as AvgElapsedTime     from info5) ,info7 as \t(select StatementText,Num \t   ,convert(decimal(8,2), \t   Convert(float,AvgWorkerTime)\/(select top 1  AvgWorkerTime from info6)  \t   +Convert(float,AvgElapsedTime)\/(select top 1  AvgElapsedTime from info6) \t   )         as func \t   ,convert(decimal(8,2),TotalWorkerTime\/1000000.\/60.) as TotalWorkerMin \t   ,convert(decimal(8,2),TotalElapsedTime\/1000000.\/60.) as TotalElapsedMin \t   ,convert(decimal(8,2),AvgWorkerTime\/1000000.) as AvgWorkerSec \t   ,convert(decimal(8,2),AvgElapsedTime\/1000000.) as AvgElapsedSec \t   ,QueryHash1 \tfrom info5 \t)  select top 10 * from info7 \twhere func &gt; 0.5 \torder by  \t3 desc  GO <\/code><\/pre>\n<p>  4.2) \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE VIEW [srv].[vProcedureExecTotalInfo] as   with info as   (select s.id as ID1,(select ID from [srv].[SQL_ProcedureExecStat] s2 where InsertDate &gt; dateadd(day,-1,getdate()) --dateadd(hour,-1,getdate()) \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f srv.vProcedureExecTotalInfoHour (\u0437\u0430 \u0447\u0430\u0441 \u0441\u0430\u043c\u044b\u0435 \u0442\u044f\u0436\u0435\u043b\u044b\u0435)    and  ID = (select min(ID) from [srv].[SQL_ProcedureExecStat] where database_id = s2.database_id    and object_id = s2.object_id and ID &gt; s.ID) and s2.database_id = s.database_id and s2.object_id = s.object_id) as ID2   from [srv].[SQL_ProcedureExecStat] s) , info1 as   (select s1.ID as ID1,s1.InsertDate as InsertDate1,s1.database_id as database_id,s1.object_id as object_id,s1.[ExecutionCount] as ExecutionCount1    ,s1.[TotalWorkerTime] as TotalWorkerTime1,s1.[TotalElapsedTime] as TotalElapsedTime1    ,s1.[TotalPhysicalReads] as TotalPhysicalReads1,s1.[TotalLogicalReads] as TotalLogicalReads1,s1.[TotalLogicalWrites] as TotalLogicalWrites1    ,s2.ID as ID2,s2.InsertDate as InsertDate2,s2.database_id as datebase_id2,s2.object_id as object_id2,s2.[ExecutionCount] as ExecutionCount2    ,s2.[TotalWorkerTime] as TotalWorkerTime2,s2.[TotalElapsedTime] as TotalElapsedTime2    ,s2.[TotalPhysicalReads] as TotalPhysicalReads2,s2.[TotalLogicalReads] as TotalLogicalReads2,s2.[TotalLogicalWrites] as TotalLogicalWrites2    from info join [srv].[SQL_ProcedureExecStat] s1    on info.ID1 = s1.ID left join [srv].[SQL_ProcedureExecStat] s2 on info.ID2 = s2.ID) ,  info2 as    (select * from info1 where ID2 is not null) , info3 as   (select database_id,object_id \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1 \t\t\tthen (TotalWorkerTime2-TotalWorkerTime1)  \t\t  when ExecutionCount2=ExecutionCount1 then 0 \t\t\telse TotalWorkerTime2 \t  end as NormTotalWorkerTime     ,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1 \t\t\tthen (TotalElapsedTime2-TotalElapsedTime1) \t\t  when ExecutionCount2=ExecutionCount1 then 0 \t\t\telse TotalElapsedTime2 \t end as NormTotalElapsedTime \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalPhysicalReads2&gt;TotalPhysicalReads1 and TotalElapsedTime2&gt;TotalElapsedTime1 \t\tthen (TotalPhysicalReads2-TotalPhysicalReads1)  \t\twhen ExecutionCount2=ExecutionCount1 then 0 else TotalPhysicalReads2 \t end as NormTotalPhysicalReads     ,case when ExecutionCount2&gt;ExecutionCount1 and TotalLogicalReads2&gt;TotalLogicalReads1 and TotalElapsedTime2&gt;TotalElapsedTime1 \t\tthen (TotalLogicalReads2-TotalLogicalReads1) \t\twhen ExecutionCount2=ExecutionCount1 then 0  else TotalLogicalReads2 \t end as NormTotalLogicalReads \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalLogicalWrites2&gt;TotalLogicalWrites1 and TotalElapsedTime2&gt;TotalElapsedTime1 \t\tthen (TotalLogicalWrites2-TotalLogicalWrites1) \t\twhen ExecutionCount2=ExecutionCount1 then 0  else TotalLogicalWrites2 \t end as NormTotalLogicalWrites  \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1 \t\t\tthen (TotalWorkerTime2-TotalWorkerTime1)\/(ExecutionCount2-ExecutionCount1) \t\t  when ExecutionCount2=ExecutionCount1 then null \t else TotalWorkerTime2\/ExecutionCount2 end as AvgWorkerTime \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalWorkerTime2&gt;TotalWorkerTime1 and  TotalElapsedTime2&gt;TotalElapsedTime1 \t\t\tthen (TotalElapsedTime2-TotalElapsedTime1)\/(ExecutionCount2-ExecutionCount1) \t\t  when ExecutionCount2=ExecutionCount1 then null \t\t  else TotalElapsedTime2\/ExecutionCount2 \t end as AvgElapsedTime \t ,case when ExecutionCount2&gt;ExecutionCount1 and TotalPhysicalReads2&gt;TotalPhysicalReads1 and TotalElapsedTime2&gt;TotalElapsedTime1 \t\tthen (TotalPhysicalReads2-TotalPhysicalReads1)\/(ExecutionCount2-ExecutionCount1) \t\twhen ExecutionCount2=ExecutionCount1 then null else TotalPhysicalReads2\/ExecutionCount2 \t end as AvgPhysicalReads \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalLogicalReads2&gt;TotalLogicalReads1 and TotalElapsedTime2&gt;TotalElapsedTime1 \t\tthen (TotalLogicalReads2-TotalLogicalReads1)\/(ExecutionCount2-ExecutionCount1) \t\twhen ExecutionCount2=ExecutionCount1 then null else TotalLogicalReads2\/ExecutionCount2 \t end as AvgLogicalReads \t,case when ExecutionCount2&gt;ExecutionCount1 and TotalLogicalWrites2&gt;TotalLogicalWrites1 and TotalElapsedTime2&gt;TotalElapsedTime1 \t\tthen (TotalLogicalWrites2-TotalLogicalWrites1)\/(ExecutionCount2-ExecutionCount1) \t\twhen ExecutionCount2=ExecutionCount1 then null else TotalLogicalWrites2\/ExecutionCount2 \t end as AvgLogicalWrites    from info2)  , info4 as    (select database_id,object_id,count(*) as num \t,sum(NormTotalWorkerTime) as TotalWorkerTime     ,sum(NormTotalElapsedTime) as TotalElapsedTime \t,sum(NormTotalPhysicalReads) as TotalPhysicalReads \t,sum(NormTotalLogicalReads) as TotalLogicalReads \t,sum(NormTotalLogicalWrites) as TotalLogicalWrites \t,avg(AvgWorkerTime) as AvgWorkerTime \t,avg(AvgElapsedTime) as AvgElapsedTime \t,avg(AvgPhysicalReads) as AvgPhysicalReads \t,avg(AvgLogicalReads) as AvgLogicalReads \t,avg(AvgLogicalWrites) as AvgLogicalWrites    from info3 group by database_id,object_id) ,  info5 as    (select (select top 1 ProcedureText from [srv].[vProcedureExecInfo] where database_id = info4.database_id and object_id = info4.object_id)     as ProcedureText, info4.*    from info4) , info6 as    (select avg(TotalWorkerTime) as AvgTotalWorkerTime           ,avg(TotalElapsedTime) as AvgTotalElapsedTime \t\t  ,avg(TotalPhysicalReads) as AvgTotalPhysicalReads \t\t  ,avg(TotalLogicalReads) as AvgTotalLogicalReads \t\t  ,avg(TotalLogicalWrites) as AvgTotalLogicalWrites \t\t  ,avg(AvgWorkerTime) as AvgWorkerTime \t\t  ,avg(AvgElapsedTime) as AvgElapsedTime \t\t  ,avg(AvgPhysicalReads) as AvgPhysicalReads \t\t  ,avg(AvgLogicalReads) as AvgLogicalReads \t\t  ,avg(AvgLogicalWrites) as AvgLogicalWrites     from info5) ,info7 as \t(select ProcedureText,Num \t   ,convert(decimal(8,2), \t   Convert(float,TotalWorkerTime)\/(select top(1)  AvgTotalWorkerTime from info6) \t   )         as func \t   ,convert(decimal(8,2),TotalWorkerTime\/1000000.\/60.) as TotalWorkerTime \t   ,convert(decimal(8,2),TotalElapsedTime\/1000000.\/60.) as TotalElapsedTime \t   ,convert(decimal(8,2),AvgWorkerTime\/1000000.) as AvgWorkerSec \t   ,convert(decimal(8,2),AvgElapsedTime\/1000000.) as AvgElapsedSec \t   ,TotalPhysicalReads \t   ,TotalLogicalReads \t   ,TotalLogicalWrites \t   ,AvgPhysicalReads \t   ,AvgLogicalReads \t   ,AvgLogicalWrites \t   ,database_id \t   ,object_id \t   ,db_name(database_id) as DB_Name \t   ,OBJECT_SCHEMA_NAME(object_id, database_id) as Schema_Name \t   ,object_name(object_id, database_id) as Procedure_Name \tfrom info5) \tselect * from info7 GO <\/code><\/pre>\n<p>  4.3) \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0434\u043b\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e). \u041d\u043e \u0432 \u043c\u043e\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0442 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043d\u0438\u043c\u0438 \u043e\u0442\u0440\u0430\u0437\u044f\u0442\u0441\u044f \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>  \u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b \u0434\u0432\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f:<br \/>  1) AvgWorkerSec \u2014 \u0441\u0430\u043c\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445<br \/>  2) AvgElapsedSec \u2014 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f+AvgWorkerSec<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432\u0430\u0436\u043d\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e:<br \/>  AvgWorkerSec=AvgElapsedSec.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a, \u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0438 \u043d\u0435 \u0432 \u043f\u043b\u0430\u043d\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u0440\u0438\u0447\u0438\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u0442\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441\u0430\u043c:<br \/>  1) AvgWorkerSec&gt;AvgElapsedSec \u2014 \u0437\u0434\u0435\u0441\u044c \u043a\u0442\u043e-\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f)<br \/>  2) AvgWorkerSec&lt;AvgElapsedSec \u2014 \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u0434\u043e\u043b\u0433\u043e \u0438\u0449\u0435\u0442 \u043f\u043b\u0430\u043d-\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0430 \u0438\u043b\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043a\u044d\u0448\u0430, \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u0441\u043e\u0444\u0442 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u043b \u0434\u0438\u0441\u043a\u0438 \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0430\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043b\u043e\u0433-\u0444\u0430\u0439\u043b).<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e AvgWorkerSec=AvgElapsedSec \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u043e, \u0442\u043e \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0441\u0430\u043c\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0438 \u0432 \u0435\u0433\u043e \u043f\u043b\u0430\u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0427\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043e\u043b\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f?<br \/>  \u041d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435\u0442. \u0421\u043c\u043e\u0442\u0440\u044f \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0438 \u0433\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f? \u0418 \u0442. \u0434.<\/p>\n<p>  \u0423 \u043c\u0435\u043d\u044f \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440:<br \/>  1) \u0434\u043e 0,5 \u2014 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442 (\u043d\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438)<br \/>  2) \u0434\u043e 0,1 \u2014 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442 (\u043d\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438)<br \/>  3) 0,5 \u2014 1,0 \u2014 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u044d\u0442\u043e \u043d\u0435\u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0435\u0441\u0442\u044c (\u043d\u0435\u0442 \u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438, \u043d\u043e \u043e\u043d\u0438 \u0435\u0441\u0442\u044c, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u0441\u0440\u043e\u0447\u043d\u043e)<br \/>  4) 0,1 \u2014 0,5 \u2014 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u044d\u0442\u043e \u043d\u0435\u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0435\u0441\u0442\u044c (\u043d\u0435\u0442 \u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438, \u043d\u043e \u043e\u043d\u0438 \u0435\u0441\u0442\u044c, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u0441\u0440\u043e\u0447\u043d\u043e)<br \/>  5) \u0431\u043e\u043b\u0435\u0435 1,0 \u2014 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0435\u0441\u0442\u044c (\u043e\u0447\u0435\u043d\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u0440\u043e\u0447\u043d\u043e)<br \/>  6) \u0431\u043e\u043b\u0435\u0435 0,5 \u2014 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0435\u0441\u0442\u044c (\u043e\u0447\u0435\u043d\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u0440\u043e\u0447\u043d\u043e).<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 (\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0442. \u0434.) \u0434\u0430\u043d\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e \u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u0440\u0430\u0437\u044b \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0446\u0435\u043d\u043a\u0438 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0435\u0441\u044c \u0441\u043e\u0444\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0431\u0435\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0442 \u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0430\u043c\u044b\u0445 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0430\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443:<br \/>  1) \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE TABLE [srv].[SQL_TopProcedureExecStat]( \t[Row_GUID] [uniqueidentifier] NOT NULL, \t[SERVER] [nvarchar](255) NOT NULL, \t[DB_ID] [int] NOT NULL, \t[OBJECT_ID] [int] NOT NULL, \t[ExecutionCount] [bigint] NOT NULL, \t[TotalWorkerTime] [bigint] NULL, \t[TotalElapsedTime] [bigint] NULL, \t[Func] [decimal](8, 2) NULL, \t[AvgWorkerSec] [decimal](8, 2) NULL, \t[AvgElapsedSec] [decimal](8, 2) NULL, \t[DB_NAME] [nvarchar](255) NULL, \t[SCHEMA_NAME] [nvarchar](255) NULL, \t[OBJECT_NAME] [nvarchar](255) NULL, \t[InsertUTCDate] [datetime] NOT NULL, \t[TotalPhysicalReads] [bigint] NULL, \t[TotalLogicalReads] [bigint] NULL, \t[TotalLogicalWrites] [bigint] NULL, \t[AvgPhysicalReads] [bigint] NULL, \t[AvgLogicalReads] [bigint] NULL, \t[AvgLogicalWrites] [bigint] NULL, \t[CategoryName] [nvarchar](255) NULL,  CONSTRAINT [PK_SQL_TopProcedureExecStat] PRIMARY KEY CLUSTERED  ( \t[Row_GUID] 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  ALTER TABLE [srv].[SQL_TopProcedureExecStat] ADD  CONSTRAINT [DF_SQL_TopProcedureExecStat_Row_GUID]  DEFAULT (newid()) FOR [Row_GUID] GO  ALTER TABLE [srv].[SQL_TopProcedureExecStat] ADD  CONSTRAINT [DF_SQL_TopProcedureExecStat_SERVER]  DEFAULT (@@servername) FOR [SERVER] GO  ALTER TABLE [srv].[SQL_TopProcedureExecStat] ADD  CONSTRAINT [DF_SQL_TopProcedureExecStat_InsertUTCDate]  DEFAULT (getutcdate()) FOR [InsertUTCDate] GO <\/code><\/pre>\n<p>  2) \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0445\u0440\u0430\u043d\u0438\u043c\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO  CREATE PROCEDURE [srv].[InsertTopProcedureExecStat] \t@top tinyint=24 --\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 (\u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0440\u043e\u043a) \t,@CategoryName nvarchar(255)='AvgWorkerSec' --\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c AS BEGIN \tSET NOCOUNT ON;  \tINSERT INTO [srv].[SQL_TopProcedureExecStat]            ([DB_ID]            ,[OBJECT_ID]            ,[ExecutionCount]            ,[TotalWorkerTime]            ,[TotalElapsedTime]            ,[AvgWorkerSec]            ,[AvgElapsedSec] \t\t   ,[DB_NAME] \t\t   ,[SCHEMA_NAME] \t\t   ,[OBJECT_NAME] \t\t   ,InsertUTCDate \t\t   ,CategoryName \t\t   ,TotalPhysicalReads\t \t\t   ,TotalLogicalReads\t \t\t   ,TotalLogicalWrites\t \t\t   ,AvgPhysicalReads\t \t\t   ,AvgLogicalReads\t \t\t   ,AvgLogicalWrites) \t select top(@top) \t\t  [database_id] \t      ,[object_id] \t\t  ,[Num] \t      ,[TotalWorkerTime] \t      ,[TotalElapsedTime] \t      ,[AvgWorkerSec] \t      ,[AvgElapsedSec] \t\t  ,[DB_NAME] \t\t  ,[SCHEMA_NAME] \t\t  ,[PROCEDURE_NAME] \t\t  ,InsertUTCDate \t\t  ,CategoryName \t\t  ,TotalPhysicalReads\t \t\t  ,TotalLogicalReads\t \t\t  ,TotalLogicalWrites\t \t\t  ,AvgPhysicalReads\t \t\t  ,AvgLogicalReads\t \t\t  ,AvgLogicalWrites \t from( \t\tselect [database_id] \t\t     ,[object_id] \t\t\t ,[Num] \t\t     ,[TotalWorkerTime] \t\t     ,[TotalElapsedTime] \t\t     ,[AvgWorkerSec] \t\t     ,[AvgElapsedSec] \t\t\t ,[DB_NAME] \t\t     ,[SCHEMA_NAME] \t\t     ,[PROCEDURE_NAME] \t\t\t ,getUTCDate() as InsertUTCDate \t\t\t ,@CategoryName as CategoryName \t\t\t ,TotalPhysicalReads\t \t\t\t ,TotalLogicalReads\t \t\t\t ,TotalLogicalWrites\t \t\t\t ,AvgPhysicalReads\t \t\t\t ,AvgLogicalReads\t \t\t\t ,AvgLogicalWrites \t\t FROM [srv].[vProcedureExecTotalInfoHour] \t\t) as t \t\torder by \t\tcase @CategoryName \t\t\t\t\t\twhen 'TotalWorkerTime' then TotalWorkerTime \t\t\t\t\t\twhen 'TotalElapsedTime' then TotalElapsedTime \t\t\t\t\t\twhen 'AvgWorkerSec' then AvgWorkerSec \t\t\t\t\t\twhen 'AvgElapsedSec' then AvgElapsedSec \t\t\t\t\t\twhen 'TotalPhysicalReads' then TotalPhysicalReads \t\t\t\t\t\twhen 'TotalLogicalReads' then TotalLogicalReads \t\t\t\t\t\twhen 'TotalLogicalWrites' then TotalLogicalWrites \t\t\t\t\t\twhen 'AvgPhysicalReads' then AvgPhysicalReads \t\t\t\t\t\twhen 'AvgLogicalReads' then AvgLogicalReads \t\t\t\t\t\twhen 'AvgLogicalWrites' then AvgLogicalWrites \t\t\t\t end \t\t\t\t desc; \t \tdeclare @count int=(select count(*) from [srv].[SQL_TopProcedureExecStat] where CategoryName=@CategoryName); \tdeclare @diff int=@count-@top;  \t\t;with tbl_del as( \t\t\tselect \t\t\tRow_GUID \t\t\tfrom [srv].[SQL_TopProcedureExecStat] \t\t\twhere InsertUTCDate&lt;DateAdd(hour,-24,getUTCDate()) \t\t\tand CategoryName=@CategoryName \t\t)         delete from [srv].[SQL_TopProcedureExecStat] \t\twhere Row_GUID in (select Row_GUID from tbl_del);  \t--\u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u043e @top, \u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \tset @count = (select count(*) from [srv].[SQL_TopProcedureExecStat] where CategoryName=@CategoryName) \tset @diff = @count - @Top - 3 \tif(@diff&gt;0) \tbegin \t\t;with tbl_del as( \t\t\tselect top(@diff) \t\t\tRow_GUID \t\t\tfrom [srv].[SQL_TopProcedureExecStat] \t\t\twhere CategoryName=@CategoryName \t\t\torder by \t\t\t\t\tcase @CategoryName \t\t\t\t\t\twhen 'TotalWorkerTime' then TotalWorkerTime \t\t\t\t\t\twhen 'TotalElapsedTime' then TotalElapsedTime \t\t\t\t\t\twhen 'AvgWorkerSec' then AvgWorkerSec \t\t\t\t\t\twhen 'AvgElapsedSec' then AvgElapsedSec \t\t\t\t\t\twhen 'TotalPhysicalReads' then TotalPhysicalReads \t\t\t\t\t\twhen 'TotalLogicalReads' then TotalLogicalReads \t\t\t\t\t\twhen 'TotalLogicalWrites' then TotalLogicalWrites \t\t\t\t\t\twhen 'AvgPhysicalReads' then AvgPhysicalReads \t\t\t\t\t\twhen 'AvgLogicalReads' then AvgLogicalReads \t\t\t\t\t\twhen 'AvgLogicalWrites' then AvgLogicalWrites \t\t\t\t\tend \t\t)         delete from [srv].[SQL_TopProcedureExecStat] \t\twhere Row_GUID in (select Row_GUID from tbl_del); \tend  \tdeclare @DB_ID int \tdeclare @OBJECT_ID int \tdeclare @top1 int = 3 \tdeclare @diff1 int \tdeclare @count1 int \t-- \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044b \u0431\u043e\u043b\u0435\u0435 @top1 \u0440\u0430\u0437 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \t\tselect top (1) \t\t\t@count1 = tp.num \t\t   ,@DB_ID = tp.DB_ID \t\t   ,@OBJECT_ID = tp.OBJECT_ID \t\tfrom \t     (select count(*) as num, DB_ID, OBJECT_ID \t\t\t from [srv].[SQL_TopProcedureExecStat] \t\t\t where CategoryName=@CategoryName \t\t\t group by DB_ID, OBJECT_ID) as tp \t\torder by tp.num desc;  \t\tset @diff1 = @count1 - @top1;          if(@diff1) &gt; 0 \t\tbegin \t\t\t;with tbl_del as( \t\t\t\tselect top(@diff1) \t\t\t\tRow_GUID \t\t\t\tfrom [srv].[SQL_TopProcedureExecStat] \t\t\t\twhere DB_ID = @DB_ID and OBJECT_ID = @OBJECT_ID \t\t\t\tand CategoryName=@CategoryName \t\t\t\torder by \t\t\t\t\tcase @CategoryName \t\t\t\t\t\twhen 'TotalWorkerTime' then TotalWorkerTime \t\t\t\t\t\twhen 'TotalElapsedTime' then TotalElapsedTime \t\t\t\t\t\twhen 'AvgWorkerSec' then AvgWorkerSec \t\t\t\t\t\twhen 'AvgElapsedSec' then AvgElapsedSec \t\t\t\t\t\twhen 'TotalPhysicalReads' then TotalPhysicalReads \t\t\t\t\t\twhen 'TotalLogicalReads' then TotalLogicalReads \t\t\t\t\t\twhen 'TotalLogicalWrites' then TotalLogicalWrites \t\t\t\t\t\twhen 'AvgPhysicalReads' then AvgPhysicalReads \t\t\t\t\t\twhen 'AvgLogicalReads' then AvgLogicalReads \t\t\t\t\t\twhen 'AvgLogicalWrites' then AvgLogicalWrites \t\t\t\t\tend \t\t\t) \t\t\tdelete from [srv].[SQL_TopProcedureExecStat] \t\t\twhere Row_GUID in (select Row_GUID from tbl_del); \t\tend  \t-- \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044b \u0431\u043e\u043b\u0435\u0435 1 \u0440\u0430\u0437\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 AvgWorkerSec \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \tif @CategoryName = 'AvgWorkerSec' \t begin \t    declare @AvgWorkerSec decimal(8,2) \t\tselect top (1) \t\t\t@count1 = tp.num \t\t   ,@DB_ID = tp.DB_ID \t\t   ,@OBJECT_ID = tp.OBJECT_ID \t\t   ,@AvgWorkerSec = tp.AvgWorkerSec \t\tfrom \t     (select count(*) as num, DB_ID, OBJECT_ID, AvgWorkerSec \t\t\t from [srv].[SQL_TopProcedureExecStat] \t\t\t where CategoryName=@CategoryName \t\t\t group by DB_ID, OBJECT_ID,AvgWorkerSec) as tp \t\torder by tp.num desc;  \t\tset @diff1 = @count1 - 1;          if(@diff1) &gt; 0 \t\tbegin \t\t\t;with tbl_del as( \t\t\t\tselect top(@diff1) \t\t\t\tRow_GUID \t\t\t\tfrom [srv].[SQL_TopProcedureExecStat] \t\t\t\twhere DB_ID = @DB_ID and OBJECT_ID = @OBJECT_ID \t\t\t\tand CategoryName=@CategoryName and AvgWorkerSec = @AvgWorkerSec \t\t\t\torder by InsertUTCDate desc \t\t\t) \t\t\tdelete from [srv].[SQL_TopProcedureExecStat] \t\t\twhere Row_GUID in (select Row_GUID from tbl_del); \t\tend \tend  \tif @CategoryName = 'AvgElapsedSec' \t begin \t    declare @AvgElapsedSec decimal(8,2) \t\tselect top (1) \t\t\t@count1 = tp.num \t\t   ,@DB_ID = tp.DB_ID \t\t   ,@OBJECT_ID = tp.OBJECT_ID \t\t   ,@AvgElapsedSec = tp.AvgElapsedSec \t\tfrom \t     (select count(*) as num, DB_ID, OBJECT_ID, AvgElapsedSec \t\t\t from [srv].[SQL_TopProcedureExecStat] \t\t\t where CategoryName=@CategoryName \t\t\t group by DB_ID, OBJECT_ID,AvgElapsedSec) as tp \t\torder by tp.num desc;  \t\tset @diff1 = @count1 - 1;          if(@diff1) &gt; 0 \t\tbegin \t\t\t;with tbl_del as( \t\t\t\tselect top(@diff1) \t\t\t\tRow_GUID \t\t\t\tfrom [srv].[SQL_TopProcedureExecStat] \t\t\t\twhere DB_ID = @DB_ID and OBJECT_ID = @OBJECT_ID \t\t\t\tand CategoryName=@CategoryName and AvgElapsedSec = @AvgElapsedSec \t\t\t\torder by InsertUTCDate desc \t\t\t) \t\t\tdelete from [srv].[SQL_TopProcedureExecStat] \t\t\twhere Row_GUID in (select Row_GUID from tbl_del); \t\tend \tend END  GO <\/code><\/pre>\n<p>  \u0414\u0430\u043d\u043d\u0443\u044e \u0445\u0440\u0430\u043d\u0438\u043c\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u0440\u043e \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0410\u0433\u0435\u043d\u0442\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u0430\u0436\u0434\u044b\u0435 5-10 \u043c\u0438\u043d\u0443\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432):  <\/p>\n<pre><code class=\"sql\">exec [srv].[InsertForSQL_StatementExecStat]; --\u0441\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c exec [srv].[InsertForTriggerExecStat]; --\u0441\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u043c exec [srv].[InsertForProcedureExecStat]; --\u0441\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043c --\u0441\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0430\u043c\u044b\u0445 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 \u043f\u043e \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c exec [srv].[InsertTopProcedureExecStat] @top=@top, @CategoryName='AvgWorkerSec'; exec [srv].[InsertTopProcedureExecStat] @top=@top, @CategoryName='AvgElapsedSec'; <\/code><\/pre>\n<p>  3) \u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 (\u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0410\u0433\u0435\u043d\u0442\u0430-\u043a\u0430\u0436\u0434\u044b\u0435 5-10 \u043c\u0438\u043d\u0443\u0442, \u043b\u0443\u0447\u0448\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438):  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425]; go  --\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 declare @koef_red numeric(8,3)=1.3;          --\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e         --\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \tif(exists( \tSELECT top(1) 1 \t\t\tFROM [srv].[SQL_TopProcedureExecStat] \t\t\twhere CategoryName='AvgElapsedSec' \t\t\t   or CategoryName='AvgWorkerSec' \t\t\tgroup by CategoryName \t\t\thaving avg([AvgElapsedSec])&gt;=@koef_red \t\t\t    or avg([AvgWorkerSec])&gt;=@koef_red)) \tbegin \t\t--\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443                 exec .[srv].[AutoTrace]; \tend <\/code><\/pre>\n<p>  \u0425\u0440\u0430\u043d\u0438\u043c\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043f\u043e \u0430\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"sql\">USE [\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425] GO  SET ANSI_NULLS ON GO  SET QUOTED_IDENTIFIER ON GO   CREATE PROCEDURE [srv].[AutoTrace] \t@maxfilesize bigint=200 --\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0432 \u041c\u0411 \t,@run_minutes int=60\t--\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u0438\u043d\u0443\u0442\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \t,@file_patch nvarchar(255)=N'\u041f\u0443\u0442\u044c \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443' --\u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t,@file_name nvarchar(255)=N'Profiler' --\u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \t,@res_msg nvarchar(255)=NULL output --\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 AS BEGIN \tSET NOCOUNT ON;      declare @rc int; \tdeclare @TraceID int; \t \tif(@run_minutes&gt;=1200) set @run_minutes=1200; --\u043d\u0435 \u0431\u043e\u043b\u0435\u0435 20 \u0447\u0430\u0441\u043e\u0432! \t \tdeclare @finish_dt datetime=DateAdd(minute,@run_minutes,GetDate()); --\u0434\u043e \u043a\u0430\u043a\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \t \t--\u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \tdeclare @finish_dt_inc nvarchar(255)=N'_'+cast(YEAR(@finish_dt) as nvarchar(255))+'_'+cast(MONTH(@finish_dt) as nvarchar(255))+'_'+cast(DAY(@finish_dt) as nvarchar(255)); \t \tdeclare @File nvarchar(255)=@file_patch+@file_name+@finish_dt_inc; --\u043f\u043e\u043b\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0440\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t \tDECLARE @result bit; \tDECLARE @msgerrors nvarchar(255); \tDECLARE @oldDT datetime; \t \t--\u0412\u0437\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0434\u0430\u0442\u0443 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \tif(object_id('\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425.dbo.TraceTable')&lt;&gt;0) \tbegin \t\tselect @oldDT=max(StartTime) \t\tfrom \u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425.dbo.TraceTable \t\twhere StartTime is not null; \tend \t \t--select @oldDT; \t \t--\u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u0430\u0442\u0430 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u0434\u0430\u0442\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443, \u0438\u043d\u0430\u0447\u0435-\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c \u0432 \u044d\u0442\u0443 \u0434\u0430\u0442\u0443 \tif(@oldDT is null or @oldDT&lt;DATETIMEFROMPARTS(YEAR(@finish_dt), MONTH(@finish_dt), DAY(@finish_dt), 0, 0, 0, 0)) \tbegin \t\t--\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \t\texec @rc = sp_trace_create \t\t\t@TraceID=@TraceID output,\t--\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t\t\t@Options=0,\t\t\t\t\t--\u043e\u043f\u0446\u0438\u0438 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \t\t\t@TraceFile=@File,\t\t\t--\u043a\u0443\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \t\t\t@MaxFileSize=@maxfilesize,\t--\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 (\u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f) \t\t\t@StopTime=@finish_dt--,\t\t--\u0434\u043e \u043a\u0430\u043a\u043e\u0439 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \t\t\t--@FileCount=2;\t\t\t\t--\u043a\u043e\u043b-\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 (\u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0439 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438) \t \t\t--\u0435\u0441\u043b\u0438 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a (\u043a\u043e\u0434 0), \u0442\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0435\u0435 \t\tif (@rc = 0) \t\tbegin \t\t\t-- \u0417\u0430\u0434\u0430\u0435\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043b\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t\t\tdeclare @on bit \t\t\tset @on = 1 \t\t\texec sp_trace_setevent @TraceID, 10, 1, @on \t\t\texec sp_trace_setevent @TraceID, 10, 9, @on \t\t\texec sp_trace_setevent @TraceID, 10, 2, @on \t\t\texec sp_trace_setevent @TraceID, 10, 66, @on \t\t\texec sp_trace_setevent @TraceID, 10, 10, @on \t\t\texec sp_trace_setevent @TraceID, 10, 3, @on \t\t\texec sp_trace_setevent @TraceID, 10, 4, @on \t\t\texec sp_trace_setevent @TraceID, 10, 6, @on \t\t\texec sp_trace_setevent @TraceID, 10, 7, @on \t\t\texec sp_trace_setevent @TraceID, 10, 8, @on \t\t\texec sp_trace_setevent @TraceID, 10, 11, @on \t\t\texec sp_trace_setevent @TraceID, 10, 12, @on \t\t\texec sp_trace_setevent @TraceID, 10, 13, @on \t\t\texec sp_trace_setevent @TraceID, 10, 14, @on \t\t\texec sp_trace_setevent @TraceID, 10, 15, @on \t\t\texec sp_trace_setevent @TraceID, 10, 16, @on \t\t\texec sp_trace_setevent @TraceID, 10, 17, @on \t\t\texec sp_trace_setevent @TraceID, 10, 18, @on \t\t\texec sp_trace_setevent @TraceID, 10, 25, @on \t\t\texec sp_trace_setevent @TraceID, 10, 26, @on \t\t\texec sp_trace_setevent @TraceID, 10, 31, @on \t\t\texec sp_trace_setevent @TraceID, 10, 34, @on \t\t\texec sp_trace_setevent @TraceID, 10, 35, @on \t\t\texec sp_trace_setevent @TraceID, 10, 41, @on \t\t\texec sp_trace_setevent @TraceID, 10, 48, @on \t\t\texec sp_trace_setevent @TraceID, 10, 49, @on \t\t\texec sp_trace_setevent @TraceID, 10, 50, @on \t\t\texec sp_trace_setevent @TraceID, 10, 51, @on \t\t\texec sp_trace_setevent @TraceID, 10, 60, @on \t\t\texec sp_trace_setevent @TraceID, 10, 64, @on \t\t\texec sp_trace_setevent @TraceID, 12, 1, @on \t\t\texec sp_trace_setevent @TraceID, 12, 9, @on \t\t\texec sp_trace_setevent @TraceID, 12, 3, @on \t\t\texec sp_trace_setevent @TraceID, 12, 11, @on \t\t\texec sp_trace_setevent @TraceID, 12, 4, @on \t\t\texec sp_trace_setevent @TraceID, 12, 6, @on \t\t\texec sp_trace_setevent @TraceID, 12, 7, @on \t\t\texec sp_trace_setevent @TraceID, 12, 8, @on \t\t\texec sp_trace_setevent @TraceID, 12, 10, @on \t\t\texec sp_trace_setevent @TraceID, 12, 12, @on \t\t\texec sp_trace_setevent @TraceID, 12, 13, @on \t\t\texec sp_trace_setevent @TraceID, 12, 14, @on \t\t\texec sp_trace_setevent @TraceID, 12, 15, @on \t\t\texec sp_trace_setevent @TraceID, 12, 16, @on \t\t\texec sp_trace_setevent @TraceID, 12, 17, @on \t\t\texec sp_trace_setevent @TraceID, 12, 18, @on \t\t\texec sp_trace_setevent @TraceID, 12, 26, @on \t\t\texec sp_trace_setevent @TraceID, 12, 31, @on \t\t\texec sp_trace_setevent @TraceID, 12, 35, @on \t\t\texec sp_trace_setevent @TraceID, 12, 41, @on \t\t\texec sp_trace_setevent @TraceID, 12, 48, @on \t\t\texec sp_trace_setevent @TraceID, 12, 49, @on \t\t\texec sp_trace_setevent @TraceID, 12, 50, @on \t\t\texec sp_trace_setevent @TraceID, 12, 51, @on \t\t\texec sp_trace_setevent @TraceID, 12, 60, @on \t\t\texec sp_trace_setevent @TraceID, 12, 64, @on \t\t\texec sp_trace_setevent @TraceID, 12, 66, @on \t\t\texec sp_trace_setevent @TraceID, 13, 1, @on \t\t\texec sp_trace_setevent @TraceID, 13, 9, @on \t\t\texec sp_trace_setevent @TraceID, 13, 3, @on \t\t\texec sp_trace_setevent @TraceID, 13, 11, @on \t\t\texec sp_trace_setevent @TraceID, 13, 4, @on \t\t\texec sp_trace_setevent @TraceID, 13, 6, @on \t\t\texec sp_trace_setevent @TraceID, 13, 7, @on \t\t\texec sp_trace_setevent @TraceID, 13, 8, @on \t\t\texec sp_trace_setevent @TraceID, 13, 10, @on \t\t\texec sp_trace_setevent @TraceID, 13, 12, @on \t\t\texec sp_trace_setevent @TraceID, 13, 14, @on \t\t\texec sp_trace_setevent @TraceID, 13, 26, @on \t\t\texec sp_trace_setevent @TraceID, 13, 35, @on \t\t\texec sp_trace_setevent @TraceID, 13, 41, @on \t\t\texec sp_trace_setevent @TraceID, 13, 49, @on \t\t\texec sp_trace_setevent @TraceID, 13, 50, @on \t\t\texec sp_trace_setevent @TraceID, 13, 51, @on \t\t\texec sp_trace_setevent @TraceID, 13, 60, @on \t\t\texec sp_trace_setevent @TraceID, 13, 64, @on \t\t\texec sp_trace_setevent @TraceID, 13, 66, @on \t \t \t\t\t-- \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u044b \t\t\tdeclare @intfilter int; \t\t\tdeclare @bigintfilter bigint; \t \t\t\texec sp_trace_setfilter @TraceID, 10, 0, 7, N'\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 SQL Server Profiler - fa35966e-e426-4d1a-8753-8f971cf89495'; \t\t\texec sp_trace_setfilter @TraceID, 35, 0, 6, N'%\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425%'; \t\t\texec sp_trace_setfilter @TraceID, 35, 1, 6, N'%\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425%'; \t \t \t\t\t--\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \t\t\texec sp_trace_setstatus @TraceID, 1; \t \t\t\t--\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \t\t\tdeclare @run_delay int=@run_minutes+1; --\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 1 \u043c\u0438\u043d\u0443\u0442\u0443 \u043e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t\t\tdeclare @run_delay_hour int=@run_delay\/60; --\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0447\u0430\u0441\u044b \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \t\t\tdeclare @run_delay_minute int=@run_delay-(@run_delay\/60)*60; --\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043c\u0438\u043d\u0443\u0442\u044b \t \t\t\tdeclare @run_delay_hour_str nvarchar(2);\t--\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u043e\u0432 \t\t\tdeclare @run_delay_minute_str nvarchar(2);\t--\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0438\u043d\u0443\u0442 \t \t\t\t--\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043d\u0443\u043b\u0438 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u043e\u0432 \t\t\tif(@run_delay_hour=0) set @run_delay_hour_str='00'; \t\t\telse if(@run_delay_hour&lt;10) set @run_delay_hour_str='0'+cast(@run_delay_hour as nvarchar(255)); \t\t\telse if(@run_delay_hour&gt;=10) set @run_delay_hour_str=cast(@run_delay_hour as nvarchar(255)); \t \t\t\t--select @run_delay_hour, @run_delay_hour_str; \t \t\t\t--\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043d\u0443\u043b\u0438 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0438\u043d\u0443\u0442 \t\t\tif(@run_delay_minute=0) set @run_delay_minute_str='00'; \t\t\telse if(@run_delay_minute&lt;10) set @run_delay_minute_str='0'+cast(@run_delay_minute as nvarchar(255)); \t\t\telse if(@run_delay_minute&gt;=10) set @run_delay_minute_str=cast(@run_delay_minute as nvarchar(255)); \t \t\t\t--select @run_delay_minute, @run_delay_minute_str; \t \t\t\t--\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u044b:\u043c\u0438\u043d\u0443\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \t\t\tdeclare @run_delay_str nvarchar(255)=@run_delay_hour_str+':'+@run_delay_minute_str; \t \t\t\t--\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \t\t\tWAITFOR DELAY @run_delay_str; \t \t\t\t--select @run_delay_str; \t \t\t\t--\u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u0440\u0438 \u0435\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 \t\t\tif(object_id('\u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425.dbo.TraceTable')&lt;&gt;0) \t\t\tbegin \t\t\t\tdrop table \u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425.dbo.TraceTable; \t\t\tend \t \t\t\t--\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t\t\tSELECT \t\t\t\t* \t\t\tINTO \u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425.dbo.TraceTable \t\t\tFROM ::fn_trace_gettable(@File+'.trc', default); \t \t\t\t--\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043f\u043e\u043b\u043d\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \t\t\tset @File=@File+'.trc'; \t \t\t\t--\u0437\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438  \t\t\tdeclare @str_title nvarchar(max)='\u0411\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u0430\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 '+@@servername, \t\t\t@str_pred_mess nvarchar(max)='\u041d\u0430 '+@@servername+' \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u0430\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0418\u041c\u042f_\u0411\u0410\u0417\u042b_\u0414\u0410\u041d\u041d\u042b\u0425.dbo.TraceTable';  \t\t\t--\u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0430\u0432\u0442\u043e\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \t\tend \t \t\t--\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \t\tset @res_msg=N'ErrorCode='+cast(@rc as nvarchar(255))+'\\r\\n'+coalesce(@msgerrors, ''); \tend END  GO <\/code><\/pre>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c <a href=\"https:\/\/technet.microsoft.com\/ru-ru\/library\/ms188662(v=sql.105).aspx\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 (Transact-SQL)<\/a><\/p>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/b><\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0431\u043e\u0440\u0430 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0422\u0430\u043a\u0436\u0435 \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0438 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u0422\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0442\u0447\u0435\u0442\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446. \u0412\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e \u043c\u0435\u0441\u044f\u0446\u0430 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0434\u0432\u0443\u0445 \u043d\u0435\u0434\u0435\u043b\u044c.<\/p>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c \u0442\u0443\u0442 <a href=\"https:\/\/habrahabr.ru\/post\/310328\/\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 tSQLt \u0438 SQLQueryStress<\/a><\/p>\n<h3>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438:<\/h3>\n<p>  \u00bb <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/cc280646(v=sql.110).aspx\">sys.dm_exec_trigger_stats<\/a><br \/>  \u00bb <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/cc280701(v=sql.110).aspx\">sys.dm_exec_procedure_stats<\/a><br \/>  \u00bb <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ms189741(v=sql.110).aspx\">sys.dm_exec_query_stats<\/a><br \/>  \u00bb <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ms181929(v=sql.110).aspx\">sys.dm_exec_sql_text<\/a><br \/>  \u00bb <a href=\"https:\/\/technet.microsoft.com\/ru-ru\/library\/ms188662(v=sql.105).aspx\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 (Transact-SQL)<\/a><br \/>  \u00bb <a href=\"https:\/\/habrahabr.ru\/post\/310328\/\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 tSQLt \u0438 SQLQueryStress<\/a><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/314494\/\"> https:\/\/habrahabr.ru\/post\/314494\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<h3>\u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435<\/h3>\n<p>  \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432\u0441\u0435 \u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u041f\u0440\u043e\u0444\u0430\u0439\u043b\u0435\u0440\u0430 \u043d\u0430 \u0446\u0435\u043b\u044b\u0435 \u0441\u0443\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 24&#215;7.<\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432? \u0418 \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430?<\/p>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-280496","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/280496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=280496"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/280496\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=280496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=280496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=280496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}