Download SQL Server, Databases Object

Document related concepts

Entity–attribute–value model wikipedia , lookup

Concurrency control wikipedia , lookup

Database wikipedia , lookup

Oracle Database wikipedia , lookup

Microsoft Access wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Ingres (database) wikipedia , lookup

Tandem Computers wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Team Foundation Server wikipedia , lookup

Btrieve wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

Versant Object Database wikipedia , lookup

Relational model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

SQL wikipedia , lookup

PL/SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
Table of Contents
Overview
Run System Monitor
Monitor Disk Usage
Monitor CPU Usage
Monitor Memory Usage
Create a SQL Server Database Alert
Create Charts, Alerts, Logs, and Reports
Use SQL Server Objects
SQL Server Agent, Alerts Object
SQL Server Agent, Jobs Object
SQL Server Agent, JobSteps Object
SQL Server Agent, Statistics Object
SQL Server, Access Methods Object
SQL Server, Availability Replica
SQL Server, Backup Device Object
SQL Server, Batch Resp Statistics Object
SQL Server, Broker Activation Object
SQL Server, Broker Statistics Object
SQL Server, Broker TO Statistics Object
SQL Server, Broker - DBM Transport Object
SQL Server, Buffer Manager Object
SQL Server, Buffer Node Object
SQL Server, Catalog Metadata Object
SQL Server, CLR Object
SQL Server, Columnstore Object
SQL Server, Cursor Manager by Type Object
SQL Server, Cursor Manager Total Object
SQL Server, Database Mirroring Object
SQL Server, Database Replica
SQL Server, Databases Object
SQL Server, Deprecated Features Object
SQL Server, ExecStatistics Object
SQL Server, External Scripts Object
SQL Server, FileTable Object
SQL Server, General Statistics Object
SQL Server, HTTP_STORAGE_OBJECT
SQL Server, Latches Object
SQL Server, Locks Object
SQL Server, LogPool FreePool Object
SQL Server, Memory Broker Clerks Object
SQL Server, Memory Manager Object
SQL Server, Memory Node
SQL Server, Plan Cache Object
SQL Server, Query Store Object
SQL Server, Resource Pool Stats Object
SQL Server, SQL Errors Object
SQL Server, SQL Statistics Object
SQL Server, Transactions Object
SQL Server, User Settable Object
SQL Server, Wait Statistics Object
SQL Server, Workload Group Stats Object
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Cursors
SQL Server XTP Databases
SQL Server XTP Garbage Collection
SQL Server XTP IO Governor
SQL Server XTP Phantom Processor
SQL Server XTP Storage
SQL Server XTP Transaction Log
SQL Server XTP Transactions
Activity Monitor
Open Activity Monitor (SQL Server Management Studio)
Open Activity Monitor (SQL Server Management Studio)
Monitor Resource Usage (System Monitor)
3/24/2017 • 3 min to read • Edit Online
If you are running Microsoft Windows server operating system, use the System Monitor graphical tool to
measure the performance of SQL Server. You can view SQL Server objects, performance counters, and the
behavior of other objects, such as processors, memory, cache, threads, and processes. Each of these objects
has an associated set of counters that measure device usage, queue lengths, delays, and other indicators of
throughput and internal congestion.
NOTE
System Monitor replaced Performance Monitor after Windows NT 4.0.
Benefits of System Monitor
System Monitor can be useful to monitor Windows operating system and SQL Server counters at the same
time to determine any correlation between the performance of SQL Server and Windows. For example,
monitoring the Windows disk input/output (I/O) counters and the SQL Server Buffer Manager counters at the
same time can reveal the behavior of the entire system.
System Monitor allows you to obtain statistics on current SQL Server activity and performance. Using System
Monitor, you can:
View data simultaneously from any number of computers.
View and change charts to reflect current activity, and show counter values that are updated at a
frequency that the user defines.
Export data from charts, logs, alert logs, and reports to spreadsheet or database applications for further
manipulation and printing.
Add system alerts that list an event in the alert log and can notify you by issuing a network alert.
Run a predefined application the first time or every time a counter value goes over or under a userdefined value.
Create log files that contain data about various objects from different computers.
Append to one file selected sections from other existing log files to form a long-term archive.
View current-activity reports, or create reports from existing log files.
Save individual chart, alert, log, or report settings, or the entire workspace setup for reuse.
NOTE
System Monitor replaced the Performance Monitor after Windows NT 4.0. You can use either the System
Monitor or Performance Monitor to do these tasks.
System Monitor Performance
When you monitor SQL Server and the Microsoft Windows operating system to investigate performance-
related issues, concentrate your initial efforts in three main areas:
Disk activity
Processor utilization
Memory usage
Monitoring a computer on which System Monitor is running can affect computer performance slightly.
Therefore, either log the System Monitor data to another disk (or computer) so that it reduces the
effect on the computer being monitored, or run System Monitor from a remote computer. Monitor
only the counters in which you are interested. If you monitor too many counters, resource usage
overhead is added to the monitoring process and affects the performance of the computer that is
being monitored.
System Monitor Tasks
TASK DESCRIPTION
TOPIC
Describes when to use System Monitor and discusses
performance overhead when you use System Monitor.
Run System Monitor
Describes how to monitor disk counters to determine disk
activity and the amount of I/O generated by their SQL
Server components.
Monitor Disk Usage
Describes how to monitor an instance of Microsoft SQL
Server to determine whether CPU usage rates are within
normal ranges.
Monitor CPU Usage
Describes how to monitor an instance of SQL Server to
confirm that memory usage is within typical ranges.
Monitor Memory Usage
Describes how to create an alert that is raised when a
threshold value for a System Monitor counter has been
reached.
Create a SQL Server Database Alert
Describes how to you create charts, alerts, logs, and
reports to monitor an instance of SQL Server.
Create Charts, Alerts, Logs, and Reports
Lists objects and counters that System Monitor uses to
monitor activity in computers running an instance of SQL
Server.
Use SQL Server Objects
Lists objects and counters that System Monitor uses to
monitor In-Memory OLTP activity.
SQL Server XTP (In-Memory OLTP) Performance Counters
Run System Monitor
3/24/2017 • 1 min to read • Edit Online
System Monitor uses remote procedure calls (RPCs) to collect information from Microsoft SQL Server. Any user
who has Microsoft Windows permissions to run System Monitor can use System Monitor to monitor SQL Server.
NOTE
When using System Monitor or Performance Monitor, you cannot connect to an instance of SQL Server that is running on
Windows 98.
As with all performance monitoring tools, expect some performance overhead when you use System Monitor to
monitor SQL Server. The actual overhead in any specific instance depends on the hardware platform, the number of
counters, and the selected update interval. However, the integration of System Monitor with SQL Server is designed
to minimize any reduction in performance.
NOTE
If you have selected SQL Server performance counters to monitor in the System Monitor snap-in, you will see the counters
even if SQL Server is not running.
For information about starting System Monitor, see Start System Monitor (Windows).
Monitor Disk Usage
3/24/2017 • 1 min to read • Edit Online
Microsoft SQL Server uses Microsoft Windows operating system input/output (I/O) calls to perform read and write
operations on your disk. SQL Server manages when and how disk I/O is performed, but the Windows operating
system performs the underlying I/O operations. The I/O subsystem includes the system bus, disk controller cards,
disks, tape drives, CD-ROM drive, and many other I/O devices. Disk I/O is frequently the cause of bottlenecks in a
system.
Monitoring disk activity involves two areas of focus:
Monitoring Disk I/O and Detecting Excess Paging
Isolating Disk Activity That SQL Server Creates
For more information see, Monitoring Disk Usage
Monitor CPU Usage
3/24/2017 • 2 min to read • Edit Online
Monitor an instance of Microsoft SQL Server periodically to determine whether CPU usage rates are within normal
ranges. A continually high rate of CPU usage may indicate the need to upgrade the CPU or add multiple processors.
Alternatively, a high CPU usage rate may indicate a poorly tuned or designed application. Optimizing the
application can lower CPU utilization.
An efficient way to determine CPU usage is to use the Processor:% Processor Time counter in System Monitor.
This counter monitors the amount of time the CPU spends executing a thread that is not idle. A consistent state of
80 percent to 90 percent may indicate the need to upgrade your CPU or add more processors. For multiprocessor
systems, monitor a separate instance of this counter for each processor. This value represents the sum of processor
time on a specific processor. To determine the average for all processors, use the System: %Total Processor Time
counter instead.
Optionally, you can also monitor the following counters to monitor processor usage:
Processor: % Privileged Time
Corresponds to the percentage of time the processor spends on execution of Microsoft Windows kernel
commands, such as processing of SQL Server I/O requests. If this counter is consistently high when the
Physical Disk counters are high, consider installing a faster or more efficient disk subsystem.
NOTE
Different disk controllers and drivers use different amounts of kernel processing time. Efficient controllers and drivers
use less privileged time, leaving more processing time available for user applications, increasing overall throughput.
Processor: %User Time
Corresponds to the percentage of time that the processor spends on executing user processes such as SQL
Server.
System: Processor Queue Length
Corresponds to the number of threads waiting for processor time. A processor bottleneck develops when
threads of a process require more processor cycles than are available. If more than a few processes attempt
to utilize the processor's time, you might need to install a faster processor. Or, if you have a multiprocessor
system, you could add a processor.
When you examine processor usage, consider the type of work that the instance of SQL Server performs. If
SQL Server performs many calculations, such as queries involving aggregates or memory-bound queries
that require no disk I/O, 100 percent of the processor's time can be used. If this causes the performance of
other applications to suffer, try changing the workload. For example, dedicate the computer to running the
instance of SQL Server.
Usage rates around 100 percent, where many client requests are being processed, may indicate that
processes are queuing up, waiting for processor time, and causing a bottleneck. Resolve the problem by
adding faster processors.
Monitor Memory Usage
3/24/2017 • 2 min to read • Edit Online
Monitor an instance of SQL Server periodically to confirm that memory usage is within typical ranges.
To monitor for a low-memory condition, use the following object counters:
Memory: Available Bytes
Memory: Pages/sec
The Available Bytes counter indicates how many bytes of memory are currently available for use by
processes. The Pages/sec counter indicates the number of pages that either were retrieved from disk due to
hard page faults or written to disk to free space in the working set due to page faults.
Low values for the Available Bytes counter can indicate that there is an overall shortage of memory on the
computer or that an application is not releasing memory. A high rate for the Pages/sec counter could
indicate excessive paging. Monitor the Memory: Page Faults/sec counter to make sure that the disk activity
is not caused by paging.
A low rate of paging (and hence page faults) is typical, even if the computer has plenty of available memory.
The Microsoft Windows Virtual Memory Manager (VMM) takes pages from SQL Server and other processes
as it trims the working-set sizes of those processes. This VMM activity tends to cause page faults. To
determine whether SQL Server or another process is the cause of excessive paging, monitor the Process:
Page Faults/sec counter for the SQL Server process instance.
For more information about resolving excessive paging, see the Windows operating system documentation.
Isolating Memory Used by SQL Server
By default, SQL Server changes its memory requirements dynamically, on the basis of available system resources. If
SQL Server needs more memory, it queries the operating system to determine whether free physical memory is
available and uses the available memory. If SQL Server does not need the memory currently allocated to it, it
releases the memory to the operating system. However, you can override the option to dynamically use memory by
using the minservermemory, and maxservermemory server configuration options. For more information, see
Server Memory Options.
To monitor the amount of memory that SQL Server uses, examine the following performance counters:
Process: Working Set
SQL Server: Buffer Manager: Buffer Cache Hit Ratio
SQL Server: Buffer Manager: Database Pages
SQL Server: Memory Manager: Total Server Memory (KB)
The WorkingSet counter shows the amount of memory that is used by a process. If this number is
consistently below the amount of memory that is set by the min server memory and max server memory
server options, SQL Server is configured to use too much memory.
The Buffer Cache Hit Ratio counter is specific to an application. However, a rate of 90 percent or higher is
desirable. Add more memory until the value is consistently greater than 90 percent. A value greater than 90
percent indicates that more than 90 percent of all requests for data were satisfied from the data cache.
If the TotalServerMemory (KB) counter is consistently high compared to the amount of physical memory
in the computer, it may indicate that more memory is required.
Determining Current Memory Allocation
The following query returns information about currently allocated memory.
SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;
Create a SQL Server Database Alert
3/24/2017 • 1 min to read • Edit Online
You can use System Monitor to create an alert that is raised when a threshold value for a System Monitor counter
has been reached. In response to the alert, System Monitor launches an application, such as a custom application
written to handle the alert condition. For example, you could create an alert that is raised when the number of
deadlocks exceeds a specific value.
Alerts also can be defined by using SQL Server Management Studio and SQL Server Agent. For more information,
see Alerts.
For more information about using System Monitor to set up a SQL Server database alert, see Set Up a SQL Server
Database Alert (Windows) .
See Also
sp_add_alert (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
Create Charts, Alerts, Logs, and Reports
3/24/2017 • 2 min to read • Edit Online
System Monitor lets you create charts, alerts, logs, and reports to monitor an instance of SQL Server.
Charts
Charts can monitor the current performance of selected objects and counters; for example, the CPU usage or disk
I/O. You can add to a chart various combinations of System Monitor objects and counters. You also can add
Microsoft Windows objects and counters to a chart.
Each chart represents a subset of information you want to monitor. For example, one chart can track memory usage
statistics and a second chart can track disk I/O statistics.
Using a chart can be useful for the following tasks:
Investigating why a computer or application is slow or inefficient.
Continually monitoring systems to find intermittent performance problems.
Discovering why you need to increase capacity.
Displaying a trend as a line chart.
Displaying a comparison as a histogram chart.
Charts are useful for short-term, real-time monitoring of a local or remote computer (for example, when you
want to monitor an event as it occurs).
Alerts
Using alerts, System Monitor tracks specific events and notifies you of these events as requested. An alert log can
monitor the current performance of selected counters and instances for objects in SQL Server. When a counter
exceeds a given value, the log records the date and time of the event. An event can also generate a network alert.
You can have a specified program run the first time or every time an event occurs. For example, an alert can send a
network message to all system administrators that the instance of SQL Server is getting low on disk space.
Logs
Logs allow you to record information on the current activity of selected objects and computers for later viewing
and analysis. You can collect data from multiple systems into a single log file. For example, you can create different
logs to accumulate information about the performance of selected objects on various computers for future analysis.
You can save these selections under a file name and reuse them when you want to create another log of similar
information for comparison.
Log files provide a wealth of information for troubleshooting or planning. Whereas charts, alerts, and reports on
current activity provide instant feedback, log files enable you to track counters over a long period of time. Thus, you
can examine information more thoroughly and document system performance.
Reports
Reports allow you to display constantly changing counter and instance values for selected objects. Values appear in
columns for each instance. You can adjust report intervals, print snapshots, and export data. Use reports when you
need to display the raw numbers.
For more information about creating charts, alerts, logs, and reports, or about Windows objects and counters, see
the Windows documentation.
See Also
Monitor Resource Usage (System Monitor)
Use SQL Server Objects
3/24/2017 • 5 min to read • Edit Online
THIS TOPIC APPLIES TO: SQL Server (starting with 2008) Azure SQL Database Azure SQL Data Warehouse
Parallel Data Warehouse
Microsoft SQL Server provides objects and counters that can be used by System Monitor to monitor activity in
computers running an instance of SQL Server. An object is any SQL Server resource, such as a SQL Server lock or
Windows process. Each object contains one or more counters that determine various aspects of the objects to
monitor. For example, the SQL Server Locks object contains counters called Number of Deadlocks/sec and Lock
Timeouts/sec.
Some objects have several instances if multiple resources of a given type exist on the computer. For example, the
Processor object type will have multiple instances if a system has multiple processors. The Databases object type
has one instance for each database on SQL Server. Some object types (for example, the Memory Manager object)
have only one instance. If an object type has multiple instances, you can add counters to track statistics for each
instance, or in many cases, all instances at once. Counters for the default instance appear in the format
SQLServer:<object name>. Counters for named instances appear in the format MSSQL$<instance
name>:<counter name> or SQLAgent$<instance name>:<counter name>.
By adding or removing counters to the chart and saving the chart settings, you can specify the SQL Server objects
and counters that are monitored when System Monitor is started.
You can configure System Monitor to display statistics from any SQL Server counter. In addition, you can set a
threshold value for any SQL Server counter and then generate an alert when a counter exceeds a threshold. For
more information about setting an alert, see Create a SQL Server Database Alert.
TIP
You can also return the performance counter values by querying the sys.dm_os_performance_counters (Transact-SQL)
dynamic management view.
NOTE
SQL Server statistics are displayed only when an instance of SQL Server is installed. If you stop and restart an instance of SQL
Server, the display of statistics is interrupted and resumes automatically. Also note that you will see SQL Server counters in
the System Monitor snap-in even if SQL Server is not running. On a clustered instance, performance counters only function
on the node where SQL Server is running.
This topic contains the following sections:
SQL Server Agent Performance Objects
Service Broker Performance Objects
SQL Server Performance Objects
SQL Server Replication Performance Objects
SSIS Pipeline Counters
Required Permissions
SQL Server Agent Performance Objects
The following table lists the performance objects provided for SQL Server Agent:
PERFORMANCE OBJECT
DESCRIPTION
SQLAgent:Alerts
Provides information about SQL Server Agent alerts.
SQLAgent:Jobs
Provides information about SQL Server Agent jobs.
SQLAgent:JobSteps
Provides information about SQL Server Agent job steps.
SQLAgent:Statistics
Provides general information about SQL Server Agent.
Service Broker Performance Objects
The following table lists the performance objects provided for Service Broker.
PERFORMANCE OBJECT
DESCRIPTION
SQLServer:Broker Activation
Provides information about Service Broker-activated tasks.
SQLServer:Broker Statistics
Provides general Service Broker information.
SQLServer:Broker Transport
Provides information on Service Broker networking.
SQL Server Performance Objects
The following table describes SQL Server objects.
PERFORMANCE OBJECT
DESCRIPTION
SQLServer:Access Methods
Searches through and measures allocation of SQL Server
database objects (for example, the number of index searches
or number of pages that are allocated to indexes and data).
SQLServer:Backup Device
Provides information about backup devices used by backup
and restore operations, such as the throughput of the backup
device.
SQLServer:Batch Resp Statistics
Counters to track SQL Batch Response times.
SQLServer:Buffer Manager
Provides information about the memory buffers used by SQL
Server, such as freememory and buffer cache hit ratio.
SQL Server:Buffer Node
Provides information about how frequently SQL Server
requests and accesses free pages.
SQLServer:Catalog Metadata
This defines a catalog metadata manager object for SQL
Server.
SQLServer:CLR
Provides information about the common language runtime
(CLR).
PERFORMANCE OBJECT
DESCRIPTION
SQLServer:Columnstore
Applies to: SQL Server ( SQL Server 2016 through SQL Server
2016).
Provides information about rowgroups and segments for
columnstore indexes.
SQLServer:Cursor Manager by Type
Provides information about cursors.
SQLServer:Cursor Manager Total
Provides information about cursors.
SQLServer:Database Mirroring
Provides information about database mirroring.
SQLServer:Databases
Provides information about a SQL Server database, such as
the amount of free log space available or the number of active
transactions in the database. There can be multiple instances
of this object.
SQL Server:Deprecated Features
Counts the number of times that deprecated features are
used.
SQLServer:Exec Statistics
Provides information about execution statistics.
SQL Server:External Scripts
Applies to: SQL Server ( SQL Server 2016 through SQL Server
2016).
Provides information about external script execution.
SQLServer:FileTable
Statistics associated with FileTable and non-transacted access.
SQLServer:General Statistics
Provides information about general server-wide activity, such
as the number of users who are connected to an instance of
SQL Server.
SQL Server:HADR Availability Replica
Provides information about SQL Server Always On availability
groups availability replicas.
SQL Server:HADR Database Replica
Provides information about SQL Server Always On availability
groups database replicas.
SQLServer:Latches
Provides information about the latches on internal resources,
such as database pages, that are used by SQL Server.
SQLServer:Locks
Provides information about the individual lock requests made
by SQL Server, such as lock time-outs and deadlocks. There
can be multiple instances of this object.
SQLServer:LogPool FreePool
Describes statistics for the free pool inside the Log Pool.
SQLServer:Memory Broker Clerks
Statistics related to memory broker clerks.
SQLServer:Memory Manager
Provides information about SQL Server memory usage, such
as the total number of lock structures currently allocated.
PERFORMANCE OBJECT
DESCRIPTION
SQLServer:Plan Cache
Provides information about the SQL Server cache used to
store objects such as stored procedures, triggers, and query
plans.
SQLServer: Query Store
Provides information about the Query Store.
SQLServer: Resource Pool Stats
Provides information about Resource Governor resource pool
statistics.
SQLServer:SQL Errors
Provides information about SQL Server errors.
SQLServer:SQL Statistics
Provides information about aspects of Transact-SQL queries,
such as the number of batches of Transact-SQL statements
received by SQL Server.
SQLServer:Transactions
Provides information about the active transactions in SQL
Server, such as the overall number of transactions and the
number of snapshot transactions.
SQLServer:User Settable
Performs custom monitoring. Each counter can be a custom
stored procedure or any Transact-SQL statement that returns
a value to be monitored.
SQLServer: Wait Statistics
Provides information about waits.
SQLServer: Workload Group Stats
Provides information about Resource Governor workload
group statistics.
SQL Server Replication Performance Objects
The following table lists the performance objects provided for SQL Server replication:
PERFORMANCE OBJECT
DESCRIPTION
SQLServer:Replication Agents
Provides information about replication agent activity.
SQLServer:Replication Snapshot
SQLServer:Replication Logreader
SQLServer:Replication Dist.
SQLServer:Replication Merge
For more information, see Monitoring Replication with System
Monitor.
SSIS Pipeline Counters
For the SSIS Pipeline counter, see Performance Counters.
Required Permissions
Use of the SQL Server objects depends on Windows permissions, except SQLAgent:Alerts. Users must be a
member of the sysadmin fixed server role to use SQLAgent:Alerts.
See Also
Use Performance Objects
sys.dm_os_performance_counters (Transact-SQL)
SQL Server Agent, Alerts Object
3/24/2017 • 1 min to read • Edit Online
The SQL Server Agent Alerts performance object contains performance counters that report information about
SQL Server Agent alerts. The table below lists the counters that this object contains.
The table below contains the SQLAgent:Alerts counters.
NAME
DESCRIPTION
Activated alerts
This counter reports the total number of alerts that SQL
Server Agent has activated since the last time that SQL Server
Agent restarted.
Alerts activated/minute
This counter reports the number of alerts that SQL Server
Agent activated within the last minute.
NOTE
To use this SQL Server Agent object, users must be a member of the sysadmin fixed server role.
See Also
Alerts
Use Performance Objects
Monitor Resource Usage (System Monitor)
SQL Server Agent, Jobs Object
3/24/2017 • 1 min to read • Edit Online
The SQL Server Agent Jobs performance object contains performance counters that report information about SQL
Server Agent jobs. The table below lists the counters that this object contains.
The table below contains the SQLAgent:Jobs counters.
NAME
DESCRIPTION
Active Jobs
This counter reports the number of jobs currently running.
Failed jobs
This counter reports the number of jobs that exited with
failure.
Job success rate
This counter reports the percentage of executed jobs that
completed successfully.
Jobs activated/minute
This counter reports the number of jobs launched within the
last minute.
Queued jobs
This counter reports the number of jobs that are ready for
SQL Server Agent to run, but which have not yet started
running.
Successful jobs
This counter reports the number of jobs that exited with
success.
Each counter in the object contains the following instances:
INSTANCE
DESCRIPTION
_Total
Information for all jobs.
Alerts
Information for jobs started by alerts.
Others
Information for jobs that were not started by alerts or
schedules. Typically these are jobs started manually using
sp_start_job.
Schedules
Information for jobs started by schedules.
See Also
Implement Jobs
Use Performance Objects
Monitor Resource Usage (System Monitor)
SQL Server Agent, JobSteps Object
3/24/2017 • 1 min to read • Edit Online
The SQL Server Agent JobSteps performance object contains performance counters that report information about
SQL Server Agent job steps. The table below lists the counters that this object contains.
The table below contains the SQLAgent:JobSteps counters.
NAME
DESCRIPTION
Active steps
This counter reports the number of job steps currently
running.
Queued steps
This counter reports the number of job steps that are ready
for SQL Server Agent to run, but which have not yet started
running.
Total step retries
This counter reports the total number of times that Microsoft
SQL Server has retried a job step since the last server restart.
Each counter in the object contains the following instances:
INSTANCE
DESCRIPTION
_Total
Information for all job steps.
ActiveScripting
Information for job steps that use the ActiveScripting
subsystem.
ANALYSISCOMMAND
Information for job steps that use the ANALYSISCOMMAND
subsystem.
ANALYSISQUERY
Information for job steps that use the ANALYSISQUERY
subsystem.
CmdExec
Information for job steps that use the CmdExec subsystem.
Distribution
Information for job steps that use the Distribution
subsystem.
Dts
Information for job steps that use the Integration Services
subsystem.
LogReader
Information for job steps that use the LogReader subsystem.
Merge
Information for job steps that use the Merge subsystem.
PowerShell
Information for job steps that use the PowerShell subsystem.
QueueReader
Information for job steps that use the QueueReader
subsystem.
INSTANCE
DESCRIPTION
Snapshot
Information for job steps that use the Snapshot subsystem.
TSQL
Information for job steps that execute Transact-SQL.
See Also
Manage Job Steps
Use Performance Objects
Monitor Resource Usage (System Monitor)
SQL Server Agent, Statistics Object
3/24/2017 • 1 min to read • Edit Online
The SQL Server Agent Statistics performance object contains performance counters that report information about
SQL Server Agent.
The table below lists the SQLAgent:Statistics counters.
NAME
DESCRIPTION
SQL Server Restarted
The number of times the Microsoft SQL Server has been
successfully restarted by SQL Server Agent since the last time
that SQL Server Agent started.
See Also
Use Performance Objects
Monitor Resource Usage (System Monitor)
SQL Server, Access Methods Object
3/24/2017 • 6 min to read • Edit Online
The Access Methods object in SQL Server provides counters to monitor how the logical data within the database
is accessed. Physical access to the database pages on disk is monitored using the Buffer Manager counters.
Monitoring the methods used to access data stored in the database can help you to determine whether query
performance can be improved by adding or modifying indexes, adding or moving partitions, adding files or file
groups, defragmenting indexes, or by rewriting queries. The Access Methods counters can also be used to
monitor the amount of data, indexes, and free space within the database, thereby indicating data volume and
fragmentation for each server instance. Excessive index fragmentation can impair performance.
For more detailed information about data volume, fragmentation and usage, use the following dynamic
management views:
sys.dm_db_index_operational_stats (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_partition_stats (Transact-SQL)
sys.dm_db_index_usage_stats (Transact-SQL)
For space consumption in tempdb at the file, task and session level, use these dynamic management views:
sys.dm_db_file_space_usage (Transact-SQL)
sys.dm_db_task_space_usage (Transact-SQL)
sys.dm_db_session_space_usage (Transact-SQL)
This table describes the SQL Server Access Methods counters.
SQL SERVER ACCESS METHODS COUNTERS
DESCRIPTION
AU cleanup batches/sec
The number of batches per second that were completed
successfully by the background task that cleans up deferred
dropped allocation units.
AU cleanups/sec
The number of allocation units per second that were
successfully dropped the background task that cleans up
deferred dropped allocation units. Each allocation unit drop
requires multiple batches.
By-reference Lob Create Count
Count of large object (lob) values that were passed by
reference. By-reference lobs are used in certain bulk
operations to avoid the cost of passing them by value.
By-reference Lob Use Count
Count of by-reference lob values that were used. By-reference
lobs are used in certain bulk operations to avoid the cost of
passing them by-value.
Count Lob Readahead
Count of lob pages on which readahead was issued.
Count Pull In Row
Count of column values that were pulled in-row from off-row.
SQL SERVER ACCESS METHODS COUNTERS
DESCRIPTION
Count Push Off Row
Count of column values that were pushed from in-row to offrow.
Deferred Dropped Aus
The number of allocation units waiting to be dropped by the
background task that cleans up deferred dropped allocation
units.
Deferred Dropped rowsets
The number of rowsets created as a result of aborted online
index build operations that are waiting to be dropped by the
background task that cleans up deferred dropped rowsets.
Dropped rowset cleanups/sec
The number of rowsets per second created as a result of
aborted online index build operations that were successfully
dropped by the background task that cleans up deferred
dropped rowsets.
Dropped rowsets skipped/sec
The number of rowsets per second created as a result of
aborted online index build operations that were skipped by
the background task that cleans up deferred dropped rowsets
created.
Extent Deallocations/sec
Number of extents deallocated per second in all databases in
this instance of SQL Server.
Extents Allocated/sec
Number of extents allocated per second in all databases in this
instance of SQL Server.
Failed AU cleanup batches/sec
The number of batches per second that failed and required
retry, by the background task that cleans up deferred dropped
allocation units. Failure could be due to lack of memory or disk
space, hardware failure and other reasons.
Failed leaf page cookie
The number of times that a leaf page cookie could not be
used during an index search since changes happened on the
leaf page. The cookie is used to speed up index search.
Failed tree page cookie
The number of times that a tree page cookie could not be
used during an index search since changes happened on the
parent pages of those tree pages. The cookie is used to speed
up index search.
Forwarded Records/sec
Number of records per second fetched through forwarded
record pointers.
FreeSpace Page Fetches/sec
Number of pages fetched per second by free space scans.
These scans search for free space within pages already
allocated to an allocation unit, to satisfy requests to insert or
modify record fragments.
FreeSpace Scans/sec
Number of scans per second that were initiated to search for
free space within pages already allocated to an allocation unit
to insert or modify record fragment. Each scan may find
multiple pages.
SQL SERVER ACCESS METHODS COUNTERS
DESCRIPTION
Full Scans/sec
Number of unrestricted full scans per second. These can be
either base-table or full-index scans.
Index Searches/sec
Number of index searches per second. These are used to start
a range scan, reposition a range scan, revalidate a scan point,
fetch a single index record, and search down the index to
locate where to insert a new row.
InSysXact waits/sec
Number of times a reader needs to wait for a page because
the InSysXact bit is set.
LobHandle Create Count
Count of temporary lobs created.
LobHandle Destroy Count
Count of temporary lobs destroyed.
LobSS Provider Create Count
Count of LOB Storage Service Providers (LobSSP) created. One
worktable created per LobSSP.
LobSS Provider Destroy Count
Count of LobSSP destroyed.
LobSS Provider Truncation Count
Count of LobSSP truncated.
Mixed page allocations/sec
Number of pages allocated per second from mixed extents.
These could be used for storing the IAM pages and the first
eight pages that are allocated to an allocation unit.
Page compression attempts/sec
Number of pages evaluated for page-level compression.
Includes pages that were not compressed because significant
savings could be achieved. Includes all objects in the instance
of SQL Server. For information about specific objects, see
sys.dm_db_index_operational_stats (Transact-SQL).
Page Deallocations/sec
Number of pages deallocated per second in all databases in
this instance of SQL Server. These include pages from mixed
extents and uniform extents.
Page Splits/sec
Number of page splits per second that occur as the result of
overflowing index pages.
Pages Allocated/sec
Number of pages allocated per second in all databases in this
instance of SQL Server. These include pages allocations from
both mixed extents and uniform extents.
Pages compressed/sec
Number of data pages that are compressed by using PAGE
compression. Includes all objects in the instance of SQL Server.
For information about specific objects, see
sys.dm_db_index_operational_stats (Transact-SQL).
Probe Scans/sec
Number of probe scans per second that are used to find at
most one single qualified row in an index or base table
directly.
Range Scans/sec
Number of qualified range scans through indexes per second.
SQL SERVER ACCESS METHODS COUNTERS
DESCRIPTION
Scan Point Revalidations/sec
Number of times per second that the scan point had to be
revalidated to continue the scan.
Skipped Ghosted Records/sec
Number of ghosted records per second skipped during scans.
Table Lock Escalations/sec
Number of times locks on a table were escalated to the TABLE
or HoBT granularity.
Used leaf page cookie
Number of times a leaf page cookie is used successfully during
an index search since no change happened on the leaf page.
The cookie is used to speed up index search.
Used tree page cookie
Number of times a tree page cookie is used successfully
during an index search since no change happened on the
parent page of the tree page. The cookie is used to speed up
index search.
Workfiles Created/sec
Number of work files created per second. For example, work
files could be used to store temporary results for hash joins
and hash aggregates.
Worktables Created/sec
Number of work tables created per second. For example, work
tables could be used to store temporary results for query
spool, lob variables, XML variables, and cursors.
Worktables From Cache Base
For internal use only.
Worktables From Cache Ratio
Percentage of work tables created where the initial two pages
of the work table were not allocated but were immediately
available from the work table cache. (When a work table is
dropped, two pages may remain allocated and they are
returned to the work table cache. This increases performance.)
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Availability Replica
3/29/2017 • 1 min to read • Edit Online
The SQLServer:Availability Replica performance object contains performance counters that report information
about the availability replicas in Always On availability groups in SQL Server 2016. All availability replica
performance counters apply to both the primary replica and the secondary replicas, with send/receive counters
reflecting the local replica. For the most part, the primary replica sends most of the data, and the secondary replicas
receive the data. However, secondary replicas send ACKs and some other background traffic to the primary
replicas. Note that on a given availability replica, some counters will show a zero value, depending on the current
role, primary or secondary, of the local replica.
COUNTER NAME
DESCRIPTION
Bytes Received from Replica/sec
Number of bytes received from the availability replica per
second. Pings and status updates will generate network traffic
even on databases with no user updates.
Bytes Sent to Replica/sec
Number of bytes sent to the remote availability replica per
second. On the primary replica this is the number of bytes
sent to the secondary replica. On the secondary replica this is
the number of bytes sent to the primary replica.
Bytes Sent to Transport/sec
Actual number of bytes sent per second over the network to
the remote availability replica. On the primary replica this is
the number of bytes sent to the secondary replica. On the
secondary replica this is the number of bytes sent to the
primary replica.
Flow Control Time (ms/sec)
Time in milliseconds that log stream messages waited for send
flow control, in the last second.
Flow Control/sec
Number of times flow-control initiated in the last second.
Flow Control Time (ms/sec) divided by Flow Control/sec is
the average time per wait.
Receives from Replica/sec
Number of Always On messages received from thereplica per
second.
Resent Messages/sec
Number of Always On messages resent in the last second.
Sends to Replica/sec
Number of Always On messages sent to this availability replica
per second.
Sends to Transport/sec
Actual number of Always On messages sent per second over
the network to the remote availability replica. On the primary
replica this is the number of messages sent to the secondary
replica. On the secondary replica this is the number of
messages sent to the primary replica.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Database Replica
Always On Availability Groups (SQL Server)
SQL Server, Backup Device Object
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The Backup Device object provides counters to monitor Microsoft SQL Server backup devices used for backup
and restore operations. Monitor backup devices when you want to determine the throughput or the progress and
performance of your backup and restore operations on a per device basis. To monitor the throughput of the entire
database backup or restore operation, use the Backup/Restore Throughput/sec counter of the SQL Server
Databases object. For more information, see SQL Server, Databases Object.
This table describes the SQL Server Backup Device counter.
SQL SERVER BACKUP DEVICE COUNTERS
DESCRIPTION
Device Throughput Bytes/sec
Throughput of read and write operations (in bytes per second)
for a backup device used when backing up or restoring
databases. This counter exists only while the backup or restore
operation is executing.
See Also
Backup Devices (SQL Server)
Monitor Resource Usage (System Monitor)
SQL Server, Batch Resp Statistics Object
3/24/2017 • 2 min to read • Edit Online
The SQLServer:Batch Resp Statistics performance object provides counters to track SQL Server batch response
times.
This following table describes the SQL Server Batch Resp Statistics performance objects.
SQL SERVER BATCH RESP STATISTICS COUNTERS
DESCRIPTION
Batches >=000000ms & <000001ms
Number of SQL Batches having response time greater than or
equal to 0ms but less than 1ms
Batches >=000001ms & <000002ms
Number of SQL Batches having response time greater than or
equal to 1ms but less than 2ms
Batches >=000002ms & <000005ms
Number of SQL Batches having response time greater than or
equal to 2ms but less than 5ms
Batches >=000005ms & <000010ms
Number of SQL Batches having response time greater than or
equal to 5ms but less than 10ms
Batches >=000010ms & <000020ms
Number of SQL Batches having response time greater than or
equal to 10ms but less than 20ms
Batches >=000020ms & <000050ms
Number of SQL Batches having response time greater than or
equal to 20ms but less than 50ms
Batches >=000050ms & <000100ms
Number of SQL Batches having response time greater than or
equal to 50ms but less than 100ms
Batches >=000100ms & <000200ms
Number of SQL Batches having response time greater than or
equal to 100ms but less than 200ms
Batches >=000200ms & <000500ms
Number of SQL Batches having response time greater than or
equal to 200ms but less than 500ms
Batches >=000500ms & <001000ms
Number of SQL Batches having response time greater than or
equal to 500ms but less than 1,000ms
Batches >=001000ms & <002000ms
Number of SQL Batches having response time greater than or
equal to 1,000ms but less than 2,000ms
Batches >=002000ms & <005000ms
Number of SQL Batches having response time greater than or
equal to 2,000ms but less than 5,000ms
Batches >=005000ms & <010000ms
Number of SQL Batches having response time greater than or
equal to 5,000ms but less than 10,000ms
Batches >=010000ms & <020000ms
Number of SQL Batches having response time greater than or
equal to 10,000ms but less than 20,000ms
SQL SERVER BATCH RESP STATISTICS COUNTERS
DESCRIPTION
Batches >=020000ms & <050000ms
Number of SQL Batches having response time greater than or
equal to 20,000ms but less than 50,000ms
Batches >=050000ms & <100000ms
Number of SQL Batches having response time greater than or
equal to 50,000ms but less than 100,000ms
Batches >=100000ms
Number of SQL Batches having response time greater than or
equal to 100,000ms
Each counter in the object contains the following instances:
ITEM
DESCRIPTION
CPU Time:Requests
The time the CPU spent on the request.
CPU Time:Total(ms)
The total time the CPU spent on the batch.
Elapsed Time:Requests
The elapsed time of the request.
Elapsed Time:Total(ms)
The elapsed time of the batch.
See Also
SQL Server, Plan Cache Object
Monitor Resource Usage (System Monitor)
SQL Server, Broker Activation Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:BrokerActivation performance object contains performance counters that report information on
stored procedure activation. The table below lists the counters that this object contains.
SQL SERVER BROKER ACTIVATION COUNTERS
DESCRIPTION
Stored Procedures Invoked/sec
This counter reports the total number of activation stored
procedures invoked by all queue monitors in the instance per
second.
Task Limit Reached
This counter reports the total number of times that a queue
monitor would have started a new task, but did not because
the maximum number of tasks for the queue is already
running.
Task Limit Reached/sec
This counter reports the number of times per second that a
queue monitor would have started a new task, but did not
because the maximum number of tasks for the queue is
already running.
Tasks Aborted/sec
This counter reports the number of activation stored
procedure tasks that end with an error, or are aborted by a
queue monitor for failing to receive messages.
Tasks Running
This counter reports the number of activation stored
procedures that are currently running.
Tasks Started/sec
This counter reports the number of activation stored
procedures started per second by all queue monitors in the
instance.
See Also
sys.dm_broker_activated_tasks (Transact-SQL)
sys.dm_broker_queue_monitors (Transact-SQL)
Monitor Resource Usage (System Monitor)
SQL Server, Broker Statistics Object
3/24/2017 • 3 min to read • Edit Online
The SQLServer:Broker Statistics performance object contains performance counters that report general Service
Broker information for an instance of the Database Engine. The following table lists the counters that this object
contains:
SQL SERVER BROKER STATISTICS COUNTERS
DESCRIPTION
Activation Errors Total
The number of times a Service Broker activation stored
procedure exited with an error.
Broker Transaction Rollbacks
The number of rolled-back transactions that contained DML
statements related to Service Broker, such as SEND and
RECEIVE.
Corrupted Messages Total
The number of corrupted messages that were received by the
instance.
Dequeued Transmission Msgs/sec
The number of messages that have been removed from the
Service Broker transmission queue per second.
Dialog timer event count
The number of timers active in the dialog protocol layer. This
number corresponds to the number of active dialogs.
Dropped Messages Total
The number of messages that were received by the instance,
but could not be delivered to a queue.
Enqueued Local Messages Total
The number of messages that have been put into the queues
in the instance, counting only messages that did not arrive
through the network.
Enqueued Local Messages/sec
The number of messages per second that have been put into
the queues in the instance, counting only messages that did
not arrive through the network.
Enqueued Messages Total
The total number of messages that have been put into the
queues in the instance.
Enqueued Messages/sec
The number of messages per second that have been put into
the queues in the instance. This includes messages of all
priority levels.
Enqueued P1 Msgs/sec
The number of priority 1 messages per second that have been
put into the queues in the instance.
Enqueued P2 Msgs/sec
The number of priority 2 messages per second that have been
put into the queues in the instance.
Enqueued P3 Msgs/sec
The number of priority 3 messages per second that have been
put into the queues in the instance.
SQL SERVER BROKER STATISTICS COUNTERS
DESCRIPTION
Enqueued P4 Msgs/sec
The number of priority 4 messages per second that have been
put into the queues in the instance.
Enqueued P5 Msgs/sec
The number of priority 5 messages per second that have been
put into the queues in the instance.
Enqueued P6 Msgs/sec
The number of priority 6 messages per second that have been
put into the queues in the instance.
Enqueued P7 Msgs/sec
The number of priority 7 messages per second that have been
put into the queues in the instance.
Enqueued P8 Msgs/sec
The number of priority 8 messages per second that have been
put into the queues in the instance.
Enqueued P9 Msgs/sec
The number of priority 9 messages per second that have been
put into the queues in the instance.
Enqueued P10 Msgs/sec
The number of priority 10 messages per second that have
been put into the queues in the instance.
Enqueued Transmission Msgs/sec
The number of messages that have been placed in the Service
Broker transmission queue per second.
Enqueued Transport Msg Frag Tot
The number of message fragments that have been put into
the queues in the instance, counting only messages that
arrived through the network.
Enqueued Transport Msg Frags/sec
The number of message fragments per second that have been
put into the queues in the instance.
Enqueued Transport Msgs Total
The number of messages that have been put into the queues
in the instance, counting only messages that arrived through
the network.
Enqueued Transport Msgs/sec
The number of messages per second that have been put into
the queues in the instance, counting only messages that
arrived through the network.
Forwarded Messages Total
The total number of Service Broker messages forwarded by
this computer.
Forwarded Messages/sec
The number of messages per second forwarded by this
computer.
Forwarded Msg Byte Total
The total size, in bytes, of the messages forwarded by this
computer.
Forwarded Msg Bytes/sec
The size, in bytes, of messages per second forwarded by this
computer.
Forwarded Msg Discarded Total
The number of messages that this computer received for
forwarding, but did not successfully forward.
SQL SERVER BROKER STATISTICS COUNTERS
DESCRIPTION
Forwarded Msg Discarded/sec
The number of messages per second that this computer
received for forwarding, but did not successfully forward.
Forwarded Pending Msg Bytes
The total size of the messages currently held for forwarding.
Forwarded Pending Msg Count
The total number of messages currently held for forwarding.
SQL RECEIVE Total
The total number of Transact-SQL RECEIVE statements
processed.
SQL RECEIVEs/sec
The number of Transact-SQL RECEIVE statements processed
per second.
SQL SEND Total
The total number of Transact-SQL SEND statements executed.
SQL SENDs/sec
The number of Transact-SQL SEND statements executed per
second.
See Also
SQL Server Service Broker
Monitor Resource Usage (System Monitor)
SQL Server, Broker TO Statistics Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Broker TO Statistics performance object reports information about how many times Service Broker
dialogs request transmission objects, and how often transmission objects are written to tempdb.
Transmission objects record the state of message transmissions for a Service Broker dialog. They are stored in
memory. To free memory, Service Broker periodically writes batches of inactive transmission objects to work tables
in tempdb.
The following table lists the counters that this object contains.
SQL SERVER BROKER TO STATISTICS COUNTERS
DESCRIPTION
Avg. Length of Batched Writes
The average number of transmission objects saved in a batch.
Avg. Time To Write Batch (ms)
The average number of milliseconds required to save a batch
of transmission objects.
Avg. Time to Write Batch Base
For internal use only.
Avg. Time Between Batches (ms)
The average number of milliseconds between writes of
transmission object batches.
Avg. Time Between Batches Base
For internal use only.
Tran Object Gets/sec
The number of times per second that dialogs requested
transmission objects.
Tran Objects Marked Dirty/sec
The number of times per second that transmission objects
were marked as dirty. Transmission objects are marked as dirty
by the first modification that causes the in-memory copy to
differ from the copy stored in tempdb. Transmission objects
are modified when Service Broker has to record a change in
the state of message transmissions for the dialog.
Tran Object Writes/sec
The number of times per second that a batch of transmission
objects were written to tempdb work tables. Large numbers
of writes could indicate that SQL Server memory is being
stressed.
See Also
SQL Server, Access Methods Object
SQL Server, Memory Manager Object
Monitor Resource Usage (System Monitor)
SQL Server, Broker - DBM Transport Object
3/24/2017 • 4 min to read • Edit Online
The Broker / DBM Transport performance object contains performance counters that report networking
information for Service Broker and database mirroring. The table below lists the counters that this object contains.
SQL SERVER BROKER / DBM TRANSPORT COUNTER
DESCRIPTION
Current Bytes for Recv I/O
This counter reports the number of bytes to be read by the
currently running transport receive operations.
Current Bytes for Send I/O
This counter reports the number of bytes in message
fragments that are currently in the process of being sent over
the network.
Current Msg Frags for Send I/O
This counter reports the total number of message fragments
that are in the process of being sent over the network.
Message Fragment P1 Sends/sec
This counter reports the number of priority 1 message
fragments sent over the network per second.
Message Fragment P2 Sends/sec
This counter reports the number of priority 2 message
fragments sent over the network per second.
Message Fragment P3 Sends/sec
This counter reports the number of priority 3 message
fragments sent over the network per second.
Message Fragment P4 Sends/sec
This counter reports the number of priority 4 message
fragments sent over the network per second.
Message Fragment P5 Sends/sec
This counter reports the number of priority 5 message
fragments sent over the network per second.
Message Fragment P6 Sends/sec
This counter reports the number of priority 6 message
fragments sent over the network per second.
Message Fragment P7 Sends/sec
This counter reports the number of priority 7 message
fragments sent over the network per second.
Message Fragment P8 Sends/sec
This counter reports the number of priority 8 message
fragments sent over the network per second.
Message Fragment P9 Sends/sec
This counter reports the number of priority 9 message
fragments sent over the network per second.
Message Fragment P10 Sends/sec
This counter reports the number of priority 10 message
fragments sent over the network per second.
Message Fragment Receives/sec
This counter reports the number of message fragments
received over the network per second.
SQL SERVER BROKER / DBM TRANSPORT COUNTER
DESCRIPTION
Message Fragment Sends/sec
This counter reports the number of message fragments of all
priorities sent over the network per second.
Msg Fragment Recv Size Avg
This counter reports the average size of message fragments
received over the network.
Msg Fragment Recv Size Avg Base
For internal use only.
Msg Fragment Send Size Avg
This counter reports the average size of the message
fragments sent over the network.
Msg Fragment Send Size Avg Base
For internal use only.
Open Connection Count
This counter reports the number of network connections that
Service Broker currently has open.
Pending Bytes for Recv I/O
This counter reports the number of bytes contained in
message fragments that have been received from the network
but have not yet been placed on a queue or discarded.
Pending Bytes for Send I/O
This counter reports the total number of bytes in message
fragments that are ready to be sent over the network.
Pending Msg Frags for Recv I/O
This counter reports the number of message fragments that
have been received from the network, but that have not yet
been placed on a queue or discarded.
Pending Msg Frags for Send I/O
This counter reports the total number of message fragments
that are ready to be sent over the network.
Receive I/O bytes/sec
This counter reports the number of bytes per second received
over the network by Service Broker endpoints and Database
Mirroring endpoints.
Receive I/O Bytes Total
This counter reports the total number of bytes received over
the network by Service Broker endpoints and Database
Mirroring endpoints.
Receive I/O Len Avg
This counter reports the average number of bytes for a
transport receive operation.
Receive I/O Len Avg Base
For internal use only.
Receive I/Os/sec
This counter reports the number of transport receive I/O
operations per second that the Service Broker / DBM
transport layer has completed. Notice that a transport receive
operation may contain more than one message fragment.
Recv I/O Buffer Copies bytes/sec
The rate at which transport receive I/O operations had to
move buffer fragments in memory.
Recv I/O Buffer Copies Count
The number of times when transport receive I/O operations
had to move buffer fragments in memory.
SQL SERVER BROKER / DBM TRANSPORT COUNTER
DESCRIPTION
Send I/O bytes/sec
This counter reports the number of bytes per second sent
over the network by Service Broker endpoints and Database
Mirroring endpoints.
Send I/O Bytes Total
This counter reports the total number of bytes sent over the
network by Service Broker endpoints and Database Mirroring
endpoints.
Send I/O Len Avg
This counter reports the average size in bytes of each
transport send operation. Notice that a transport send
operation may contain more than one message fragment.
Send I/O Len Avg Base
For internal use only.
Send I/Os/sec
This counter reports the number of transport send I/O
operations per second that have completed. Notice that a
transport send operation may contain more than one
message fragment.
See Also
sys.dm_broker_forwarded_messages (Transact-SQL)
SQL Server Service Broker
Monitor Resource Usage (System Monitor)
SQL Server, Buffer Manager Object
3/24/2017 • 3 min to read • Edit Online
The Buffer Manager object provides counters to monitor how SQL Server uses:
Memory to store data pages.
Counters to monitor the physical I/O as SQL Server reads and writes database pages.
Buffer pool extension to extend the buffer cache by using fast non-volatile storage such as solid-state drives
(SSD).
Monitoring the memory and the counters used by SQL Server helps you determine:
If bottlenecks exist from inadequate physical memory. If it cannot store frequently accessed data in cache,
SQL Server must retrieve the data from disk.
If query performance can be improved by adding more memory, or by making more memory available to
the data cache or SQL Server internal structures.
How often SQL Server needs to read data from disk. Compared with other operations, such as memory
access, physical I/O consumes a lot of time. Minimizing physical I/O can improve query performance.
Buffer Manager Performance Objects
This table describes the SQL Server Buffer Manager performance objects.
SQL SERVER BUFFER MANAGER COUNTERS
DESCRIPTION
Background writer pages/sec
Number of pages flushed to enforce the recovery interval
settings.
Buffer cache hit ratio
Indicates the percentage of pages found in the buffer cache
without having to read from disk. The ratio is the total
number of cache hits divided by the total number of cache
lookups over the last few thousand page accesses. After a
long period of time, the ratio moves very little. Because
reading from the cache is much less expensive than reading
from disk, you want this ratio to be high. Generally, you can
increase the buffer cache hit ratio by increasing the amount of
memory available to SQL Server or by using the buffer pool
extension feature.
Buffer cache hit ratio base
For internal use only.
Checkpoint pages/sec
Indicates the number of pages flushed to disk per second by a
checkpoint or other operation that require all dirty pages to
be flushed.
Database pages
Indicates the number of pages in the buffer pool with
database content.
Extension allocated pages
Total number of non-free cache pages in the buffer pool
extension file.
SQL SERVER BUFFER MANAGER COUNTERS
DESCRIPTION
Extension free pages
Total number of free cache pages in the buffer pool extension
file.
Extension in use as percentage
Percentage of the buffer pool extension paging file occupied
by buffer manager pages.
Extension outstanding IO counter
I/O queue length for the buffer pool extension file.
Extension page evictions/sec
Number of pages evicted from the buffer pool extension file
per second.
Extension page reads/sec
Number of pages read from the buffer pool extension file per
second.
Extension page unreferenced time
Average seconds a page will stay in the buffer pool extension
without references to it.
Extension pages writes/sec
Number of pages written to the buffer pool extension file per
second.
Free list stalls/sec
Indicates the number of requests per second that had to wait
for a free page.
Integral Controller Slope
The slope that integral controller for the buffer pool last used,
times -10 billion.
Lazy writes/sec
Indicates the number of buffers written per second by the
buffer manager's lazy writer. The lazy writer is a system
process that flushes out batches of dirty, aged buffers (buffers
that contain changes that must be written back to disk before
the buffer can be reused for a different page) and makes them
available to user processes. The lazy writer eliminates the need
to perform frequent checkpoints in order to create available
buffers.
Page life expectancy
Indicates the number of seconds a page will stay in the buffer
pool without references.
Page lookups/sec
Indicates the number of requests per second to find a page in
the buffer pool.
Page reads/sec
Indicates the number of physical database page reads that are
issued per second. This statistic displays the total number of
physical page reads across all databases. Because physical I/O
is expensive, you may be able to minimize the cost, either by
using a larger data cache, intelligent indexes, and more
efficient queries, or by changing the database design.
Page writes/sec
Indicates the number of physical database page writes that
are issued per second.
Readahead pages/sec
Indicates the number of pages read per second in anticipation
of use.
Readahead time/sec
Time (microseconds) spent issuing readahead.
SQL SERVER BUFFER MANAGER COUNTERS
DESCRIPTION
Target pages
Ideal number of pages in the buffer pool.
See Also
SQL Server:Buffer Node
Server Memory Server Configuration Options
SQL Server, Plan Cache Object
Monitor Resource Usage (System Monitor)
sys.dm_os_performance_counters (Transact-SQL)
Buffer Pool Extension
SQL Server:Buffer Node
3/24/2017 • 1 min to read • Edit Online
The Buffer Node object provides counters that complement counters provided by the Buffer Manager object. It
allows you to monitor the SQL Server buffer pool page distribution for each non-uniform memory access (NUMA)
node. There is an instance of the Buffer Node object for each NUMA node in use. On non-NUMA architecture,
there will be a single instance of the Buffer Node object.
Buffer Node Performance Objects
This table describes the SQL Server Buffer Node performance objects.
SQL SERVER BUFFER NODE COUNTERS
DESCRIPTION
Database pages
Indicates the number of pages in the buffer pool on this node
with database content.
Page life expectancy
Indicates the minimum number of seconds a page will stay in
the buffer pool on this node without references.
Local Node page lookups/sec
Indicates the number of lookup requests from this node which
were satisfied from this node.
Remote Note page lookups/sec
Indicates the number of lookup requests from this node which
were satisfied from other nodes.
If SQL Server is running on non-NUMA hardware, the counters of Buffer Node and Buffer Manager objects
should match.
On NUMA hardware, sums of respective counters of all Buffer Nodes should match their counterparts of Buffer
Manager.
NOTE
The counter values and sums may not match precisely due to the dynamic nature of the counters and the sampling
accuracy.
See Also
SQL Server, Buffer Manager Object
Server Memory Server Configuration Options
Monitor Resource Usage (System Monitor)
sys.dm_os_performance_counters (Transact-SQL)
SQL Server, Catalog Metadata Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Catalog Metadata performance object provides counters for catalog metadata for SQL Server.
This following table describes the SQL Server Catalog Metadata performance objects.
SQL SERVER CATALOG METADATA COUNTERS
DESCRIPTION
Cache Entries Count
Number of entries in the catalog metadata cache.
Cache Entries Pinned Count
Number of catalog metadata cache entries that are pinned.
Cache Hit Ratio
Ratio between catalog metadata cache hits and lookups.
Cache Hit Ratio Base
For internal use only.
There is one instance of the counter for each database.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, CLR Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:CLR object provides counters to monitor common language runtime (CLR) execution in Microsoft
SQL Server.
The following table describes the SQL Server CLR counters.
CLR COUNTERS
DESCRIPTION
CLR Execution
Total execution time in CLR (microseconds)
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Columnstore Object
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQLServer:Columnstore object provides counters to monitor columnstore index execution in Microsoft SQL
Server.
The following table describes the SQL Server Columnstore counters.
COLUMNSTORE COUNTERS
DESCRIPTION
Delta Rowgroups Closed
Number of delta rowgroups closed.
Delta Rowgroups Compressed
Number of delta rowgroups compressed.
Delta Rowgroups Created
Number of delta rowgroups created.
Segment Cache Hit Raio
Percentage of column segments that were found in the
columnstore pool without having to incur a read from disk.
Segment Cache Hit Ratio Base
For internal use only.
Segment Reads/Sec
Number of physical segment reads issued.
Total Delete Buffers Migrated
Number of times tuple mover has cleaned up the delete
buffer.
Total Merge Policy Evaluations
Number of times the merge policy for columnstore was
evaluated.
Total Rowgroups Compressed
Total number of rowgroups compressed.
Total Rowgroups Fit For Merge
Number of source rowgroups fit for MERGE since the start of
SQL Server.
Total Rowgroups Merge Compressed
Number of compressed target rowgroups created with MERGE
since the start of SQL Server.
Total Source Rowgroups Merged
Number of source rowgroups merged since the start of SQL
Server.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Cursor Manager by Type Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Cursor Manager by Type object provides counters to monitor cursors, grouped by type.
This table describes the SQL Server Cursor Manager by Type counters.
CURSOR MANAGER BY TYPE COUNTERS
DESCRIPTION
Active cursors
Number of active cursors.
Cache Hit Ratio
Ratio between cache hits and lookups.
Cache Hit Ratio Base
For internal use only.
Cached Cursor Counts
Number of cursors of a given type in the cache.
Cursor Cache Use Count/sec
Times each type of cached cursor has been used.
Cursor memory usage
Amount of memory consumed by cursors in kilobytes (KB).
Cursor Requests/sec
Number of SQL cursor requests received by server.
Cursor worktable usage
Number of worktables used by cursors.
Number of active cursor plans
Number of cursor plans.
Each counter in the object contains the following instances:
CURSOR MANAGER INSTANCE
DESCRIPTION
_Total
Information for all cursors.
API Cursor
Only the API cursor information.
TSQL Global Cursor
Only the Transact-SQL global cursor information.
TSQL Local Cursor
Only the Transact-SQL local cursor information.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Cursor Manager Total Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Cursor Manager Total object provides counters to monitor cursors.
This table describes the SQL Server Cursor Manager Total counters.
CURSOR MANAGER TOTAL COUNTERS
DESCRIPTION
Async population count
Number of cursors being populated asynchronously.
Cursor conversion rate
Number of cursor conversions per second.
Cursor flushes
Total number of run-time statement recreations by cursors.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Database Mirroring Object
3/24/2017 • 3 min to read • Edit Online
The SQLServer:Database Mirroring performance object contains performance counters that report information
about SQL Server database mirroring. The table below lists the counters that this object contains.
NAME
DESCRIPTION
Bytes Received/sec
Number of bytes received per second.
Bytes Sent/sec
Number of bytes sent per second.
Log Bytes Received/sec
Number of bytes of log received per second.
Log Bytes Redone from Cache/sec
Number of redone log bytes that were obtained from the
mirroring log cache, in the last second.
This counter is used on only the mirror server. On the
principal server the value is always 0.
Log Bytes Sent from Cache/sec
Number of sent log bytes that were obtained from the
mirroring log cache, in the last second.
This counter is used on only the principal server. On the
mirror server the value is always 0.
Log Bytes Sent/sec
Number of bytes of log sent per second.
Log Compressed Bytes Rcvd/sec
Number of compressed bytes of log received, in the last
second.
Log Compressed Bytes Sent/sec
Number of compressed bytes of log sent, in the last second.
Log Harden Time (ms)
Milliseconds that log blocks waited to be hardened to disk, in
the last second.
Log Remaining for Undo KB
Total kilobytes of log that remain to be scanned by the new
mirror server after failover.
This counter is used on only the mirror server during the undo
phase. After the undo phase completes, the counter is reset to
0. On the principal server the value is always 0.
Log Scanned for Undo KB
Total kilobytes of log that have been scanned by the new
mirror server since failover.
This counter is used on only the mirror server during the undo
phase. After the undo phase completes, the counter is reset to
0. On the principal server the value is always 0.
NAME
DESCRIPTION
Log Send Flow Control Time (ms)
Milliseconds that log stream messages waited for send flow
control, in the last second.
Sending log data and metadata to the mirroring partner is the
most data-intensive operation in database mirroring and
might monopolize the database mirroring and Service Broker
send buffers. Use this counter to monitor the use of this
buffer by the database mirroring session.
Log Send Queue KB
Total number of kilobytes of log that have not yet been sent
to the mirror server.
Mirrored Write Transactions/sec
Number of transactions that wrote to the mirrored database
and waited for the log to be sent to the mirror in order to
commit, in the last second.
This counter is incremented only when the principal server is
actively sending log records to the mirror server.
Pages Sent/sec
Number of pages sent per second.
Receives/sec
Number of mirroring messages received per second.
Redo Bytes/sec
Number of bytes of log rolled forward on the mirror database
per second.
Redo Queue KB
Total number of kilobytes of hardened log that currently
remain to be applied to the mirror database to roll it forward.
This is sent to the Principal from the Mirror.
Send/Receive Ack Time
Milliseconds that messages waited for acknowledgement from
the partner, in the last second.
This counter is helpful in troubleshooting a problem that
might be caused by a network bottleneck, such as unexplained
failovers, a large send queue, or high transaction latency. In
such cases, you can analyze the value of this counter to
determine whether the network is causing the problem.
Sends/sec
Number of mirroring messages sent per second.
Transaction Delay
Delay in waiting for unterminated commit acknowledgement.
NOTE
On each partner, some of the counters show a zero value depending on what role the partner is currently performing.
Remarks
The performance counters let you monitor database mirroring performance. For example, you can examine the
Transaction Delay counter to see if database mirroring is impacting performance on the principal server, you can
examine the Redo Queue and Log Send Queue counters to see how well the mirror database is keeping up with
the principal database. You can examine the Log Bytes Sent/sec counter to monitor the amount of log sent per
second.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Database Replica
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Database Replica performance object contains performance counters that report information
about the secondary databases of an Always On availability group in SQL Server 2016. This object is valid only on
an instance of SQL Server that hosts a secondary replica.
COUNTER NAME
DESCRIPTION
VIEW ON…
File Bytes Received/sec
Amount of FILESTREAM data received
by the secondary replica for the
secondary database in the last second.
Secondary replica
Log Apply Pending Queue
Number of log blocks that is waiting to
be applied to the database replica.
Secondary replica
Log Apply Ready Queue
Number of log blocks that is waiting
and ready to be applied to the
database replica.
Secondary replica
Log Bytes Received/sec
Amount of log records received by the
secondary replica for the database in
the last second.
Secondary replica
Log remaining for undo
The amount of log in kilobytes
remaining to complete the undo phase.
Secondary replica
Log Send Queue
Amount of log records in the log files of
the primary database, in kilobytes, that
has not yet been sent to the secondary
replica. This value is sent to the
secondary replica from the primary
replica. Queue size does not include
FILESTREAM files that are sent to a
secondary.
Secondary replica
Mirrored Write Transaction/sec
Number of transactions that were
written to the primary database and
then waited to commit until the log was
sent to the secondary database, in the
last second.
Primary replica
Recovery Queue
Amount of log records in the log files of
the secondary replica that has not yet
been redone.
Secondary replica
Redo blocked/sec
Number of times the redo thread is
blocked on locks held by readers of the
database.
Secondary replica
Redo Bytes Remaining
The amount of log in kilobytes
remaining to be redone to finish the
reverting phase.
Secondary replica
COUNTER NAME
DESCRIPTION
VIEW ON…
Redone Bytes/sec
Amount of log records redone on the
secondary database in the last second.
Secondary replica
Total Log requiring undo
Total kilobytes of log that must be
undone.
Secondary replica
Transaction Delay
Delay in waiting for unterminated
commit acknowledgement, in
milliseconds.
Primary replica
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Availability Replica
SQL Server, Databases Object
Always On Availability Groups (SQL Server)
SQL Server, Databases Object
3/24/2017 • 5 min to read • Edit Online
The SQLServer:Databases object in SQL Server provides counters to monitor bulk copy operations, backup and
restore throughput, and transaction log activities. Monitor transactions and the transaction log to determine how
much user activity is occurring in the database and how full the transaction log is becoming. The amount of user
activity can determine the performance of the database and affect log size, locking, and replication. Monitoring
low-level log activity to gauge user activity and resource usage can help you to identify performance bottlenecks.
Multiple instances of the Databases object, each representing a single database, can be monitored at the same
time.
This table describes the SQL Server Databases counters.
SQL SERVER DATABASES COUNTERS
DESCRIPTION
Active Transactions
Number of active transactions for the database.
Avg Dist From EOL/LP Request
Average distance in bytes from end of log per log pool
request, for requests in the last VLF.
Backup/Restore Throughput/sec
Read/write throughput for backup and restore operations of a
database per second. For example, you can measure how the
performance of the database backup operation changes when
more backup devices are used in parallel or when faster
devices are used. Throughput of a database backup or restore
operation allows you to determine the progress and
performance of your backup and restore operations.
Bulk Copy Rows/sec
Number of rows bulk copied per second.
Bulk Copy Throughput/sec
Amount of data bulk copied (in kilobytes) per second.
Commit table entries
The size of the in-memory portion of the commit table for the
database. For more information, see
sys.dm_tran_commit_table (Transact-SQL).
Data File(s) Size (KB)
Cumulative size (in kilobytes) of all the data files in the
database including any automatic growth. Monitoring this
counter is useful, for example, for determining the correct size
of tempdb.
DBCC Logical Scan Bytes/sec
Number of logical read scan bytes per second for database
console commands (DBCC).
Group Commit Time/sec
Group stall time (microseconds) per second.
Log Bytes Flushed/sec
Total number of log bytes flushed.
Log Cache Hit Ratio
Percentage of log cache reads satisfied from the log cache.
Log Cache Hit Ratio Base
For internal use only.
SQL SERVER DATABASES COUNTERS
DESCRIPTION
Log Cache Reads/sec
Reads performed per second through the log manager cache.
Log File(s) Size (KB)
Cumulative size (in kilobytes) of all the transaction log files in
the database.
Log File(s) Used Size (KB)
The cumulative used size of all the log files in the database.
Log Flush Wait Time
Total wait time (in milliseconds) to flush the log. On an Always
On secondary database, this value indicates the wait time for
log records to be hardened to disk.
Log Flush Waits/sec
Number of commits per second waiting for the log flush.
Log Flush Write Time (ms)
Time in milliseconds for performing writes of log flushes that
were completed in the last second.
Log Flushes/sec
Number of log flushes per second.
Log Growths
Total number of times the transaction log for the database
has been expanded.
Log Pool Cache Misses/sec
Number of requests for which the log block was not available
in the log pool. The log pool is an in-memory cache of the
transaction log. This cache is used to optimize reading the log
for recovery, transaction replication, rollback, and Always On
availability groups.
Log Pool Disk Reads/sec
Number of disk reads that the log pool issued to fetch log
blocks.
Log Pool Hash Deletes/sec
Rate of raw hash entry deletes from the Log Pool.
Log Pool Hash Inserts/sec
Rate of raw hash entry inserts into the Log Pool.
Log Pool Invalid Hash Entry/sec
Rate of hash lookups failing due to being invalid.
Log Pool Log Scan Pushes/sec
Rate of Log block pushes by log scans, which may come from
disk or memory.
Log Pool LogWriter Pushes/sec
Rate of Log block pushes by log writer thread.
Log Pool Push Empty FreePool/sec
Rate of Log block push fails due to empty free pool.
Log Pool Push Low Memory/sec
Rate of Log block push fails due to being low on memory.
Log Pool Push No Free Buffer/sec
Rate of Log block push fails due to free buffer unavailable.
Log Pool Req. Behind Trunc/sec
Log pool cache misses due to block requested being behind
truncation LSN.
Log Pool Requests Base
For internal use only.
SQL SERVER DATABASES COUNTERS
DESCRIPTION
Log Pool Requests Old VLF/sec
Log Pool requests that were not in the last VLF of the log.
Log Pool Requests/sec
The number of log-block requests processed by the log pool.
Log Pool Total Active Log Size
Current total active log stored in the shared cache buffer
manager in bytes.
Log Pool Total Shared Pool Size
Current total memory usage of the shared cache buffer
manager in bytes.
Log Shrinks
Total number of log shrinks for this database.
Log Truncations
The number of times the transaction log has been shrunk.
Percent Log Used
Percentage of space in the log that is in use.
Repl. Pending Xacts
Number of transactions in the transaction log of the
publication database marked for replication, but not yet
delivered to the distribution database.
Repl. Trans. Rate
Number of transactions per second read out of the
transaction log of the publication database and delivered to
the distribution database.
Shrink Data Movement Bytes/sec
Amount of data being moved per second by autoshrink
operations, or DBCC SHRINKDATABASE or DBCC SHRINKFILE
statements.
Tracked transactions/sec
Number of committed transactions recorded in the commit
table for the database.
Transactions/sec
Number of transactions started for the database per second.
Transactions/sec does not count XTP-only transactions
(transactions started by a natively compiled stored
procedure)..
Write Transactions/sec
Number of transactions that wrote to the database and
committed, in the last second.
XTP Controller DLC Latency Base
For internal use only.
XTP Controller DLC Latency/Fetch
Average latency in microseconds between log blocks entering
the Direct Log Consumer and being retrieved by the XTP
controller, per second.
XTP Controller DLC Peak Latency
The largest recorded latency, in microseconds, of a fetch from
the Direct Log Consumer by the XTP controller.
XTP Controller Log Processed/sec
The amount of log bytes processed by the XTP controller
thread, per second.
XTP Memory Used (KB)
The amount of memory used by XTP in the database.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Database Replica
SQL Server, Deprecated Features Object
4/6/2017 • 23 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQLServer:Deprecated Features object in SQL Server provides a counter to monitor the features designated as
deprecated. In each case the counter provides a usage count that lists the number of times the deprecated feature
was encountered since SQL Server last started.
The value of these counters are also available by executing the following statement:
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name = 'SQLServer:Deprecated Features';
This following table describes the SQL Server Deprecated Features performance object.
SQL SERVER DEPRECATED FEATURES COUNTER
DESCRIPTION
Usage
Feature usage since last SQL Server startup.
The following table describes the SQL Server Deprecated Features counter instances.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
'#' and '##' as the name of temporary tables and stored
procedures
An identifier was encountered that did not contain any
characters other than #. Use at least one additional character.
Occurs once per compilation.
'::' function calling syntax
The :: function calling syntax was encountered for a tablevalued function. Replace with SELECT column_list FROM <
function_name> () . For example, replace
SELECT * FROM ::fn_virtualfilestats(2,1) with
SELECT * FROM sys.fn_virtualfilestats(2,1) . Occurs
once per compilation.
'@' and names that start with '@@' as Transact-SQL
identifiers
An identifier was encountered that began with @ or @@. Do
not use @ or @@ or names that begin with @@ as identifiers.
Occurs once per compilation.
ADDING TAPE DEVICE
The deprecated feature sp_addumpdevice'tape' was
encountered. Use sp_addumpdevice'disk' instead. Occurs
once per use.
ALL Permission
Total number of times the GRANT ALL, DENY ALL, or REVOKE
ALL syntax was encountered. Modify the syntax to deny
specific permissions. Occurs once per query.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
ALTER DATABASE WITH TORN_PAGE_DETECTION
Total number of times the deprecated feature
TORN_PAGE_DETECTION option of ALTER DATABASE has
been used since the server instance was started. Use the
PAGE_VERIFY syntax instead. Occurs once per use in a DDL
statement.
ALTER LOGIN WITH SET CREDENTIAL
The deprecated feature syntax ALTER LOGIN WITH SET
CREDENTIAL or ALTER LOGIN WITH NO CREDENTIAL was
encountered. Use ADD or DROP CREDENTIAL syntax instead.
Occurs once per compilation.
Azeri_Cyrilllic_90
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation.
Azeri_Latin_90
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation.
BACKUP DATABASE or LOG TO TAPE
The deprecated feature BACKUP { DATABASE | LOG } TO TAPE
or BACKUP { DATABASE | LOG } TO device_that_is_a_tape was
encountered.
Use BACKUP { DATABASE | LOG } TO DISK or BACKUP {
DATABASE | LOG } TO device_that_is_a_disk, instead. Occurs
once per use.
BACKUP DATABASE or LOG WITH MEDIAPASSWORD
The deprecated feature BACKUP DATABASE WITH
MEDIAPASSWORD or BACKUP LOG WITH MEDIAPASSWORD
was encountered. Do not use WITH MEDIAPASSWORD.
BACKUP DATABASE or LOG WITH PASSWORD
The deprecated feature BACKUP DATABASE WITH PASSWORD
or BACKUP LOG WITH PASSWORD was encountered. Do not
use WITH PASSWORD.
COMPUTE [BY]
The COMPUTE or COMPUTE BY syntax was encountered.
Rewrite the query to use GROUP BY with ROLLUP. Occurs
once per compilation.
CREATE FULLTEXT CATLOG IN PATH
A CREATE FULLTEXT CATLOG statement with the IN PATH
clause was encountered. This clause has no effect in this
version of SQL Server. Occurs once per use.
CREATE TRIGGER WITH APPEND
A CREATE TRIGGER statement with the WITH APPEND clause
was encountered. Re-create the whole trigger instead. Occurs
once per use in a DDL statement.
CREATE_DROP_DEFAULT
The CREATE DEFAULT or DROP DEFAULT syntax was
encountered. Rewrite the command by using the DEFAULT
option of CREATE TABLE or ALTER TABLE. Occurs once per
compilation.
CREATE_DROP_RULE
The CREATE RULE syntax was encountered. Rewrite the
command by using constraints. Occurs once per compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
Data types: text ntext or image
A text, ntext, or image data types was encountered. Rewrite
applications to use the varchar(max) data type and removed
text, ntext, and image data type syntax. Occurs once per
query.
The total number of times a database was changed to
compatibility level 80. Plan to upgrade the database and
application before the next release. Also occurs when a
database at compatibility level 80 is started.
Database compatibility level 100, 110. 120
The total number of times a database compatibility level was
changed. Plan to upgrade the database and application for a
future release. Also occurs when a database at a deprecated
compatibility level is started.
DATABASE_MIRRORING
References to database mirroring feature were encountered.
Plan to upgrade to Always On Availability Groups, or if you
are running an edition of SQL Server that does not support
Always On Availability Groups, plan to migrate to log
shipping.
database_principal_aliases
References to the deprecated sys.database_principal_aliases
were encountered. Use roles instead of aliases. Occurs once
per compilation.
DATABASEPROPERTY
A statement referenced DATABASEPROPERTY. Update the
statement DATABASEPROPERTY to DATABASEPROPERTYEX.
Occurs once per compilation.
DATABASEPROPERTYEX('IsFullTextEnabled')
A statement referenced the DATABASEPROPERTYEX
IsFullTextEnabled property. The value of this property has no
effect. User databases are always enabled for full-text search.
Do not use this property. Occurs once per compilation.
DBCC [UN]PINTABLE
The DBCC PINTABLE or DBCC UNPINTABLE statement was
encountered. This statement has no effect and should be
removed. Occurs once per query.
DBCC DBREINDEX
The DBCC DBREINDEX statement was encountered. Rewrite
the statement to use the REBUILD option of ALTER INDEX.
Occurs once per query.
DBCC INDEXDEFRAG
The DBCC INDEXDEFRAG statement was encountered. Rewrite
the statement to use the REORGANIZE option of ALTER
INDEX. Occurs once per query.
DBCC SHOWCONTIG
The DBCC SHOWCONTIG statement was encountered. Query
sys.dm_db_index_physical_stats for this information. Occurs
once per query.
DEFAULT keyword as a default value
Syntax that uses the DEFAULT keyword as a default value was
encountered. Do not use. Occurs once per compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
Deprecated encryption algorithm
Deprecated encryption algorithm rc4 will be removed in the
next version of SQL Server. Avoid using this feature in new
development work, and plan to modify applications that
currently use it. The RC4 algorithm is weak and is only
supported for backward compatibility. New material can only
be encrypted using RC4 or RC4_128 when the database is in
compatibility level 90 or 100. (Not recommended.) Use a
newer algorithm such as one of the AES algorithms instead. In
SQL Server 2012 and higher material encrypted using RC4 or
RC4_128 can be unencrypted in any compatibility level.
Deprecated hash algorithm
Use of the MD2, MD4, MD5, SHA, or SHA1 algorithms.
DESX algorithm
Syntax that uses the DESX encryption algorithm was
encountered. Use another algorithm for encryption. Occurs
once per compilation.
dm_fts_active_catalogs
The dm_fts_active_catalogs counter always remains at 0
because some columns of the sys.dm_fts_active_catalogs view
are not deprecated. To monitor a deprecated column, use the
column-specific counter; for example,
dm_fts_active_catalogs.is_paused.
dm_fts_active_catalogs.is_paused
The is_paused column of the sys.dm_fts_active_catalogs
dynamic management view was encountered. Avoid using this
column. Occurs every time the server instance detects a
reference to the column.
dm_fts_active_catalogs.previous_status
The previous_status column of the sys.dm_fts_active_catalogs
dynamic management view was encountered. Avoid using this
column. Occurs every time the server instance detects a
reference to the column.
dm_fts_active_catalogs.previous_status_description
The previous_status_description column of the
sys.dm_fts_active_catalogs dynamic management view was
encountered. Avoid using this column. Occurs every time the
server instance detects a reference to the column.
dm_fts_active_catalogs.row_count_in_thousands
The row_count_in_thousands column of the
sys.dm_fts_active_catalogs dynamic management view was
encountered. Avoid using this column. Occurs every time the
server instance detects a reference to the column.
dm_fts_active_catalogs.status
The status column of the sys.dm_fts_active_catalogs dynamic
management view was encountered. Avoid using this column.
Occurs every time the server instance detects a reference to
the column.
dm_fts_active_catalogs.status_description
The status_description column of the
sys.dm_fts_active_catalogs dynamic management view was
encountered. Avoid using this column. Occurs every time the
server instance detects a reference to the column.
dm_fts_active_catalogs.worker_count
The worker_count column of the sys.dm_fts_active_catalogs
dynamic management view was encountered. Avoid using this
column. Occurs every time the server instance detects a
reference to the column.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
dm_fts_memory_buffers
The dm_fts_memory_buffers counter always remains at 0
because most columns of the sys.dm_fts_memory_buffers view
are not deprecated. To monitor the deprecated column, use
the column-specific counter:
dm_fts_memory_buffers.row_count.
dm_fts_memory_buffers.row_count
The row_count column of the sys.dm_fts_memory_buffers
dynamic management view was encountered. Avoid using this
column. Occurs every time the server instance detects a
reference to the column.
DROP INDEX with two-part name
The DROP INDEX syntax contained the format
table_name.index_name syntax in DROP INDEX. Replace with
index_name ON table_name syntax in the DROP INDEX
statement. Occurs once per compilation.
EXT_CREATE_ALTER_SOAP_ENDPOINT
The CREATE or ALTER ENDPOINT statement with the FOR
SOAP option was encountered. Native XML Web Services is
deprecated. Use Windows Communications Foundation (WCF)
or ASP.NET instead.
EXT_endpoint_webmethods
sys.endpoint_webmethods was encountered. Native XML Web
Services is deprecated. Use Windows Communications
Foundation (WCF) or ASP.NET instead.
EXT_soap_endpoints
sys.soap_endpoints was encountered. Native XML Web
Services is deprecated. Use Windows Communications
Foundation (WCF) or ASP.NET instead.
EXTPROP_LEVEL0TYPE
TYPE was encountered at a level0type. Use SCHEMA as the
level0type, and TYPE as the level1type. Occurs once per query.
EXTPROP_LEVEL0USER
A level0type USER when a level1type was also specified. Use
USER only as a level0type for extended properties directly on a
user. Occurs once per query.
FASTFIRSTROW
The FASTFIRSTROW syntax was encountered. Rewrite
statements to use the OPTION (FAST n) syntax. Occurs once
per compilation.
FILE_ID
The FILE_ID syntax was encountered. Rewrite statements to
use FILE_IDEX. Occurs once per compilation.
fn_get_sql
The fn_get_sql function was compiled. Use
sys.dm_exec_sql_text instead. Occurs once per compilation.
fn_servershareddrives
The fn_servershareddrives function was compiled. Use
sys.dm_io_cluster_shared_drives instead. Occurs once per
compilation.
fn_virtualservernodes
The fn_virtualservernodes function was compiled. Use
sys.dm_os_cluster_nodes instead. Occurs once per
compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
fulltext_catalogs
The fulltext_catalogs counter always remains at 0 because
some columns of the sys.fulltext_catalogs view are not
deprecated. To monitor a deprecated column, use its columnspecific counter; for example, fulltext_catalogs.data_space_id.
Occurs every time the server instance detects a reference to
the column.
fulltext_catalogs.data_space_id
The data_space_id column of the sys.fulltext_catalogs catalog
view was encountered. Do not use this column. Occurs every
time the server instance detects a reference to the column.
fulltext_catalogs.file_id
The file_id column of the sys.fulltext_catalogs catalog view was
encountered. Do not use this column. Occurs every time the
server instance detects a reference to the column.
fulltext_catalogs.path
The path column of the sys.fulltext_catalogs catalog view was
encountered. Do not use this column. Occurs every time the
server instance detects a reference to the column.
FULLTEXTCATALOGPROPERTY('LogSize')
The LogSize property of the FULLTEXTCATALOGPROPERTY
function was encountered. Avoid using this property.
FULLTEXTCATALOGPROPERTY('PopulateStatus')
The PopulateStatus property of the
FULLTEXTCATALOGPROPERTY function was encountered.
Avoid using this property.
FULLTEXTSERVICEPROPERTY('ConnectTimeout')
The ConnectTimeout property of the
FULLTEXTSERVICEPROPERTY function was encountered. Avoid
using this property.
FULLTEXTSERVICEPROPERTY('DataTimeout')
The DataTimeout property of the FULLTEXTSERVICEPROPERTY
function was encountered. Avoid using this property.
FULLTEXTSERVICEPROPERTY('ResourceUsage')
The ResourceUsage property of the
FULLTEXTSERVICEPROPERTY function was encountered. Avoid
using this property.
GROUP BY ALL
Total number of times the GROUP BY ALL syntax was
encountered. Modify the syntax to group by specific tables.
Hindi
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation. Use
Indic_General_90 instead.
HOLDLOCK table hint without parentheses
IDENTITYCOL
The INDENTITYCOL syntax was encountered. Rewrite
statements to use the $identity syntax. Occurs once per
compilation.
Index view select list without COUNT_BIG(*)
The select list of an aggregate indexed view must contain
COUNT_BIG (*) .
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
INDEX_OPTION
Encountered CREATE TABLE, ALTER TABLE, or CREATE INDEX
syntax without parentheses around the options. Rewrite the
statement to use the current syntax. Occurs once per query.
INDEXKEY_PROPERTY
The INDEXKEY_PROPERTY syntax was encountered. Rewrite
statements to query sys.index_columns. Occurs once per
compilation.
Indirect TVF hints
The indirect application, through a view, of table hints to an
invocation of a multistatement table-valued function (TVF) will
be removed in a future version of SQL Server.
INSERT NULL into TIMESTAMP columns
A NULL value was inserted to a TIMESTAMP column. Use a
default value instead. Occurs once per compilation.
INSERT_HINTS
Korean_Wansung_Unicode
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation.
Lithuanian_Classic
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation.
Macedonian
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation. Use
Macedonian_FYROM_90 instead.
MODIFY FILEGROUP READONLY
The MODIFY FILEGROUP READONLY syntax was
encountered. Rewrite statements to use the READ_ONLY
syntax. Occurs once per compilation.
MODIFY FILEGROUP READWRITE
The MODIFY FILEGROUP READWRITE syntax was
encountered. Rewrite statements to use the READ_WRITE
syntax. Occurs once per compilation.
More than two-part column name
A query used a 3-part or 4-part name in the column list.
Change the query to use the standard-compliant 2-part
names. Occurs once per compilation.
Multiple table hints without comma
A space was used as the separator between table hints. Use a
comma instead. Occurs once per compilation.
NOLOCK or READUNCOMMITTED in UPDATE or DELETE
NOLOCK or READUNCOMMITTED was encountered in the
FROM clause of an UPDATE or DELETE statement. Remove the
NOLOCK or READUNCOMMITTED table hints from the FROM
clause.
Non-ANSI = or =\ outer join operators
A statement that uses the = or =\ join syntax was
encountered. Rewrite the statement to use the ANSI join
syntax. Occurs once per compilation.
numbered_stored_procedures
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
numbered_procedure_parameters
References to the deprecated
sys.numbered_procedure_parameters were encountered. Do
not use. Occurs once per compilation.
numbered_procedures
References to the deprecated sys.numbered_procedures were
encountered. Do not use. Occurs once per compilation.
Oldstyle RAISEERROR
The deprecated RAISERROR (Format: RAISERROR integer
string) syntax was encountered. Rewrite the statement using
the current RAISERROR syntax. Occurs once per compilation.
OLEDB for ad hoc connections
SQLOLEDB is not a supported provider. Use SQL Server
Native Client for ad hoc connections.
PERMISSIONS
References to the PERMISSIONS intrinsic function were
encountered. Query sys.fn_my_permissions instead. Occurs
once per query.
ProcNums
The deprecated ProcNums syntax was encountered. Rewrite
statements to remove the references. Occurs once per
compilation.
READTEXT
The READTEXT syntax was encountered. Rewrite applications
to use the varchar(max) data type and removed text data
type syntax. Occurs once per query.
RESTORE DATABASE or LOG WITH DBO_ONLY
The RESTORE … WITH DBO_ONLY syntax was encountered.
Use RESTORE … RESTRICTED_USER instead.
RESTORE DATABASE or LOG WITH MEDIAPASSWORD
The RESTORE … WITH MEDIAPASSWORD syntax was
encountered. WITH MEDIAPASSWORD provides weak security
and should be removed.
RESTORE DATABASE or LOG WITH PASSWORD
The RESTORE … WITH PASSWORD syntax was encountered.
WITH PASSWORD provides weak security and should be
removed.
Returning results from trigger
This event occurs once per trigger invocation. Rewrite the
trigger so that it does not return result sets.
ROWGUIDCOL
The ROWGUIDCOL syntax was encountered. Rewrite
statements to use the $rowguid syntax. Occurs once per
compilation.
SET ANSI_NULLS OFF
The SET ANSI_NULLS OFF syntax was encountered. Remove
this deprecated syntax. Occurs once per compilation.
SET ANSI_PADDING OFF
The SET ANSI_PADDING OFF syntax was encountered.
Remove this deprecated syntax. Occurs once per compilation.
SET CONCAT_NULL_YIELDS_NULL OFF
The SET CONCAT_NULL_YIELDS_NULL OFF syntax was
encountered. Remove this deprecated syntax. Occurs once per
compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
SET DISABLE_DEF_CNST_CHK
The SET DISABLE_DEF_CNST_CHK syntax was encountered.
This has no effect. Remove this deprecated syntax. Occurs
once per compilation.
SET FMTONLY ON
The SET FMTONLY syntax was encountered. Remove this
deprecated syntax. Occurs once per compilation.
SET OFFSETS
The SET OFFSETS syntax was encountered. Remove this
deprecated syntax. Occurs once per compilation.
SET REMOTE_PROC_TRANSACTIONS
The SET REMOTE_PROC_TRANSACTIONS syntax was
encountered. Remove this deprecated syntax. Use linked
servers and sp_serveroption instead.
SET ROWCOUNT
The SET ROWCOUNT syntax was encountered in a DELETE,
INSERT, or UPDATE statement. Rewrite the statement by using
TOP. Occurs once per compilation.
SETUSER
The SET USER statement was encountered. Use EXECUTE AS
instead. Occurs once per query.
sp_addapprole
The sp_addapprole procedure was encountered. Use CREATE
APPLICATION ROLE instead. Occurs once per query.
sp_addextendedproc
The sp_addextendedproc procedure was encountered. Use
CLR instead. Occurs once per compilation.
sp_addlogin
The sp_addlogin procedure was encountered. Use CREATE
LOGIN instead. Occurs once per query.
sp_addremotelogin
The sp_addremotelogin procedure was encountered. Use
linked servers instead.
sp_addrole
The sp_addrole procedure was encountered. Use CREATE
ROLE instead. Occurs once per query.
sp_addserver
The sp_addserver procedure was encountered. Use linked
servers instead.
sp_addtype
The sp_addtype procedure was encountered. Use CREATE
TYPE instead. Occurs once per compilation.
sp_adduser
The sp_adduser procedure was encountered. Use CREATE
USER instead. Occurs once per query.
sp_approlepassword
The sp_approlepassword procedure was encountered. Use
ALTER APPLICATION ROLE instead. Occurs once per query.
sp_attach_db
The sp_attach_db procedure was encountered. Use CREATE
DATABASE FOR ATTACH instead. Occurs once per query.
sp_attach_single_file_db
The sp_single_file_db procedure was encountered. Use CREATE
DATABASE FOR ATTACH_REBUILD_LOG instead. Occurs once
per query.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sp_bindefault
The sp_bindefault procedure was encountered. Use the
DEFAULT keyword of ALTER TABLE or CREATE TABLE instead.
Occurs once per compilation.
sp_bindrule
The sp_bindrule procedure was encountered. Use check
constraints instead. Occurs once per compilation.
sp_bindsession
The sp_bindsession procedure was encountered. Use Multiple
Active Result Sets (MARS) or distributed transactions instead.
Occurs once per compilation.
sp_certify_removable
The sp_certify_removable procedure was encountered. Use
sp_detach_db instead. Occurs once per query.
sp_changeobjectowner
The sp_changeobjectowner procedure was encountered. Use
ALTER SCHEMA or ALTER AUTHORIZATION instead. Occurs
once per query.
sp_change_users_login
The sp_change_users_login procedure was encountered. Use
ALTER USER instead. Occurs once per query.
sp_configure 'allow updates'
The allow updates option of sp_configure was encountered.
System tables are no longer updatable. Do not use. Occurs
once per query.
sp_configure 'disallow results from triggers'
The disallow result sets from triggers option of sp_configure
was encountered. To disallow result sets from triggers, use
sp_configure to set the option to 1. Occurs once per query.
sp_configure 'ft crawl bandwidth (max)'
The ft crawl bandwidth (max) option of sp_configure was
encountered. Do not use. Occurs once per query.
sp_configure 'ft crawl bandwidth (min)'
The ft crawl bandwidth (min) option of sp_configure was
encountered. Do not use. Occurs once per query.
sp_configure 'ft notify bandwidth (max)'
The ft notify bandwidth (max) option of sp_configure was
encountered. Do not use. Occurs once per query.
sp_configure 'ft notify bandwidth (min)'
The ft notify bandwidth (min) option of sp_configure was
encountered. Do not use. Occurs once per query.
sp_configure 'locks'
The locks option of sp_configure was encountered. Locks are
no longer configurable. Do not use. Occurs once per query.
sp_configure 'open objects'
The open objects option of sp_configure was encountered. The
number of open objects is no longer configurable. Do not use.
Occurs once per query.
sp_configure 'priority boost'
The priority boost option of sp_configure was encountered.
Do not use. Occurs once per query. Use the Windows start
/high … program.exe option instead.
sp_configure 'remote proc trans'
The remote proc trans option of sp_configure was
encountered. Do not use. Occurs once per query.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sp_configure 'set working set size'
The set working set size option of sp_configure was
encountered. The working set size is no longer configurable.
Do not use. Occurs once per query.
sp_control_dbmasterkey_password
The sp_control_dbmasterkey_password stored procedure does
not check whether a master key exists. This is permitted for
backward compatibility, but displays a warning. This behavior
is deprecated. In a future release the master key must exist
and the password used in the stored procedure
sp_control_dbmasterkey_password must be the same
password as one of the passwords used to encrypt the
database master key.
sp_create_removable
The sp_create_removable procedure was encountered. Use
CREATE DATABASE instead. Occurs once per query.
sp_db_vardecimal_storage_format
Use of vardecimal storage format was encountered. Use data
compression instead.
sp_dbcmptlevel
The sp_dbcmptlevel procedure was encountered. Use ALTER
DATABASE … SET COMPATIBILITY_LEVEL instead. Occurs once
per query.
sp_dbfixedrolepermission
The sp_dbfixedrolepermission procedure was encountered. Do
not use. Occurs once per query.
sp_dboption
The sp_dboption procedure was encountered. Use ALTER
DATABASE and DATABASEPROPERTYEX instead. Occurs once
per compilation.
sp_dbremove
The sp_dbremove procedure was encountered. Use DROP
DATABASE instead. Occurs once per query.
sp_defaultdb
The sp_defaultdb procedure was encountered. Use ALTER
LOGIN instead. Occurs once per compilation.
sp_defaultlanguage
The sp_defaultlanguage procedure was encountered. Use
ALTER LOGIN instead. Occurs once per compilation.
sp_denylogin
The sp_denylogin procedure was encountered. Use ALTER
LOGIN DISABLE instead. Occurs once per query.
sp_depends
The sp_depends procedure was encountered. Use
sys.dm_sql_referencing_entities and
sys.dm_sql_referenced_entities instead. Occurs once per query.
sp_detach_db @keepfulltextindexfile
The @keepfulltextindexfile argument was encountered in a
sp_detach_db statement. Do not use this argument.
sp_dropalias
The sp_dropalias procedure was encountered. Replace aliases
with a combination of user accounts and database roles. Use
sp_dropalias to remove aliases in upgraded databases. Occurs
once per compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sp_dropapprole
The sp_dropapprole procedure was encountered. Use DROP
APPLICATION ROLE instead. Occurs once per query.
sp_dropextendedproc
The sp_dropextendedproc procedure was encountered. Use
CLR instead. Occurs once per compilation.
sp_droplogin
The sp_droplogin procedure was encountered. Use DROP
LOGIN instead. Occurs once per query.
sp_dropremotelogin
The sp_dropremotelogin procedure was encountered. Use
linked servers instead.
sp_droprole
The sp_droprole procedure was encountered. Use DROP ROLE
instead. Occurs once per query.
sp_droptype
The sp_droptype procedure was encountered. Use DROP TYPE
instead.
sp_dropuser
The sp_dropuser procedure was encountered. Use DROP USER
instead. Occurs once per query.
sp_estimated_rowsize_reduction_for_vardecimal
Use of vardecimal storage format was encountered. Use data
compression and sp_estimate_data_compression_savings
instead.
sp_fulltext_catalog
The sp_fulltext_catalog procedure was encountered. Use
CREATE/ALTER/DROP FULLTEXT CATALOG instead. Occurs
once per compilation.
sp_fulltext_column
The sp_fulltext_column procedure was encountered. Use
ALTER FULLTEXT INDEX instead. Occurs once per compilation.
sp_fulltext_database
The sp_fulltext_database procedure was encountered. Use
ALTER DATABASE instead. Occurs once per compilation.
sp_fulltext_service @action=clean_up
The clean_up option of the sp_fulltext_service procedure was
encountered. Occurs once per query.
sp_fulltext_service @action=connect_timeout
The connect_timeout option of the sp_fulltext_service
procedure was encountered. Occurs once per query.
sp_fulltext_service @action=data_timeout
The data_timeout option of the sp_fulltext_service procedure
was encountered. Occurs once per query.
sp_fulltext_service @action=resource_usage
The resource_usage option of the sp_fulltext_service procedure
was encountered. This option has no function. Occurs once
per query.
sp_fulltext_table
The sp_fulltext_table procedure was encountered. Use
CREATE/ALTER/DROP FULLTEXT INDEX instead. Occurs once
per compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sp_getbindtoken
The sp_getbindtoken procedure was encountered. Use
Multiple Active Result Sets (MARS) or distributed transactions
instead. Occurs once per compilation.
sp_grantdbaccess
The sp_grantdbaccess procedure was encountered. Use
CREATE USER instead. Occurs once per query.
sp_grantlogin
The sp_grantlogin procedure was encountered. Use CREATE
LOGIN instead. Occurs once per query.
sp_help_fulltext_catalog_components
The sp_help_fulltext_catalog_components procedure was
encountered. This procedure returns empty rows. Do not use
this procedure. Occurs once per compilation.
sp_help_fulltext_catalogs
The sp_help_fulltext_catalogs procedure was encountered.
Query sys.fulltext_catalogs instead. Occurs once per
compilation.
sp_help_fulltext_catalogs_cursor
The sp_help_fulltext_catalogs_cursor procedure was
encountered. Query sys.fulltext_catalogs instead. Occurs once
per compilation.
sp_help_fulltext_columns
The sp_help_fulltext_columns procedure was encountered.
Query sys.fulltext_index_columns instead. Occurs once per
compilation.
sp_help_fulltext_columns_cursor
The sp_help_fulltext_columns_cursor procedure was
encountered. Query sys.fulltext_index_columns instead. Occurs
once per compilation.
sp_help_fulltext_tables
The sp_help_fulltext_tables procedure was encountered. Query
sys.fulltext_indexes instead. Occurs once per compilation.
sp_help_fulltext_tables_cursor
The sp_help_fulltext_tables_cursor procedure was encountered.
Query sys.fulltext_indexes instead. Occurs once per
compilation.
sp_helpdevice
The sp_helpdevice procedure was encountered. Query
sys.backup_devices instead. Occurs once per query.
sp_helpextendedproc
The sp_helpextendedproc procedure was encountered. Use
CLR instead. Occurs once per compilation.
sp_helpremotelogin
The sp_helpremotelogin procedure was encountered. Use
linked servers instead.
sp_indexoption
The sp_indexoption procedure was encountered. Use ALTER
INDEX instead. Occurs once per compilation.
sp_lock
The sp_lock procedure was encountered. Query
sys.dm_tran_locks instead. Occurs once per query.
sp_password
The sp_password procedure was encountered. Use ALTER
LOGIN instead. Occurs once per query.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sp_remoteoption
The sp_remoteoption procedure was encountered. Use linked
servers instead.
sp_renamedb
The sp_renamedb procedure was encountered. Use ALTER
DATABASE instead. Occurs once per query.
sp_resetstatus
The sp_resetstatus procedure was encountered. Use ALTER
DATABASE instead. Occurs once per query.
sp_revokedbaccess
The sp_revokedbaccess procedure was encountered. Use
DROP USER instead. Occurs once per query.
sp_revokelogin
The sp_revokelogin procedure was encountered. Use DROP
LOGIN instead. Occurs once per query.
sp_srvrolepermission
The deprecated sp_srvrolepermission procedure was
encountered. Do not use. Occurs once per query.
sp_unbindefault
The sp_unbindefault procedure was encountered. Use the
DEFAULT keyword in CREATE TABLE or ALTER TABLE
statements instead. Occurs once per compilation.
sp_unbindrule
The sp_unbindrule procedure was encountered. Use check
constraints instead of rules. Occurs once per compilation.
SQL_AltDiction_CP1253_CS_AS
Event occurs once per database start and once per collation
use. Plan to modify applications that use this collation.
String literals as column aliases
Syntax that contains a string that is used as a column alias in a
SELECT statement, such as 'string' = expression , was
encountered. Do not use. Occurs once per compilation.
sys.sql_dependencies
References to sys.sql_dependencies were encountered. Use
sys.sql_expression_dependencies instead. Occurs once per
compilation.
sysaltfiles
References to sysaltfiles were encountered. Use
sys.master_files instead. Occurs once per compilation.
syscacheobjects
References to syscacheobjects were encountered. Use
sys.dm_exec_cached_plans, sys.dm_exec_plan_attributes, and
sys.dm_exec_sql_text instead. Occurs once per compilation.
syscolumns
References to syscolumns were encountered. Use sys.columns
instead. Occurs once per compilation.
syscomments
References to syscomments were encountered. Use
sys.sql_modules instead. Occurs once per compilation.
sysconfigures
References to the sysconfigures table were encountered.
Reference the sys.sysconfigures view instead. Occurs once per
compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sysconstraints
References to sysconstraints were encountered Use
sys.check_constraints, sys.default_constraints,
sys.key_constraints, sys.foreign_keys instead. Occurs once per
compilation.
syscurconfigs
References to syscurconfigs were encountered. Use
sys.configurations instead. Occurs once per compilation.
sysdatabases
References to sysdatabases were encountered. Use
sys.databases instead. Occurs once per compilation.
sysdepends
References to sysdepends were encountered. Use
sys.sql_dependencies instead. Occurs once per compilation.
sysdevices
References to sysdevices were encountered. Use
sys.backup_devices instead. Occurs once per compilation.
sysfilegroups
References to sysfilegroups were encountered. Use
sys.filegroups instead. Occurs once per compilation.
sysfiles
References to sysfiles were encountered. Use sys.database_files
instead. Occurs once per compilation.
sysforeignkeys
References to sysforeignkeys were encountered. Use
sys.foreign_keys instead. Occurs once per compilation.
sysfulltextcatalogs
References to sysfulltextcatalogs were encountered. Use
sys.fulltext_catalogs instead. Occurs once per compilation.
sysindexes
References to sysindexes were encountered. Use sys.indexes,
sys.partitions, sys.allocation_units, and
sys.dm_db_partition_stats instead. Occurs once per
compilation.
sysindexkeys
References to sysindexkeys were encountered. Use
sys.index_columns instead. Occurs once per compilation.
syslockinfo
References to syslockinfo were encountered. Use
sys.dm_tran_locks instead. Occurs once per compilation.
syslogins
References to syslogins were encountered. Use
sys.server_principals and sys.sql_logins instead. Occurs once
per compilation.
sysmembers
References to sysmembers were encountered. Use
sys.database_role_members instead. Occurs once per
compilation.
sysmessages
References to sysmessages were encountered. Use
sys.messages instead. Occurs once per compilation.
sysobjects
References to sysobjects were encountered. Use sys.objects
instead. Occurs once per compilation.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
sysoledbusers
References to sysoledbusers were encountered. Use
sys.linked_logins instead. Occurs once per compilation.
sysopentapes
References to sysopentapes were encountered. Use
sys.dm_io_backup_tapes instead. Occurs once per compilation.
sysperfinfo
References to sysperfinfo were encountered. Use
sys.dm_os_performance_counters. instead. Occurs once per
compilation.
syspermissions
References to syspermissions were encountered. Use
sys.database_permissions and sys.server_permissions instead.
Occurs once per compilation.
sysprocesses
References to sysprocesses were encountered. Use
sys.dm_exec_connections, sys.dm_exec_sessions, and
sys.dm_exec_requests instead. Occurs once per compilation.
sysprotects
References to sysprotects were encountered. Use
sys.database_permissions and sys.server_permissions instead.
Occurs once per compilation.
sysreferences
References to sysreferences were encountered. Use
sys.foreign_keys instead. Occurs once per compilation.
sysremotelogins
References to sysremotelogins were encountered. Use
sys.remote_logins instead. Occurs once per compilation.
sysservers
References to sysservers were encountered. Use sys.servers
instead. Occurs once per compilation.
systypes
References to systypes were encountered. Use sys.types
instead. Occurs once per compilation.
sysusers
References to sysusers were encountered. Use
sys.database_principals instead. Occurs once per compilation.
Table hint without WITH
A statement that used table hints but did not use the WITH
keyword was encountered. Modify statements to include the
word WITH. Occurs once per compilation.
Text in row table option
References to the 'text in row' table option were encountered.
Use sp_tableoption 'large value types out of row' instead.
Occurs once per query.
TEXTPTR
References to the TEXTPTR function were encountered. Rewrite
applications to use the varchar(max) data type and removed
text, ntext, and image data type syntax. Occurs once per
query.
TEXTVALID
References to the TEXTVALID function were encountered.
Rewrite applications to use the varchar(max) data type and
removed text, ntext, and image data type syntax. Occurs
once per query.
SQL SERVER DEPRECATED FEATURES COUNTER INSTANCES
DESCRIPTION
TIMESTAMP
Total number of times the deprecated timestamp data type
was encountered in a DDL statement. Use the rowversion
data type instead.
UPDATETEXT or WRITETEXT
The UPDATETEXT or WRITETEXT statement was encountered.
Rewrite applications to use the varchar(max) data type and
removed text, ntext, and image data type syntax. Occurs
once per query.
USER_ID
References to the USER_ID function were encountered. Use
the DATABASE_PRINCIPAL_ID function instead. Occurs once
per compilation.
Using OLEDB for linked servers
Vardecimal storage format
Use of vardecimal storage format was encountered. Use data
compression instead.
XMLDATA
The FOR XML syntax was encountered. Use XSD generation
for RAW and AUTO modes. There is no replacement for the
explicit mode. Occurs once per compilation.
XP_API
An extended stored procedure statement was encountered.
Do not use.
xp_grantlogin
The xp_grantlogin procedure was encountered. Use CREATE
LOGIN instead. Occurs once per compilation.
xp_loginconfig
The xp_loginconfig procedure was encountered. Use the
IsIntegratedSecurityOnly argument of SERVERPROPERTY
instead. Occurs once per query.
xp_revokelogin
The xp_revokelogin procedure was encountered. Use ALTER
LOGIN DISABLE or DROP LOGIN instead. Occurs once per
compilation.
See Also
Deprecated Database Engine Features in SQL Server 2016
Deprecated Full-Text Search Features in SQL Server 2016
Deprecation Announcement Event Class
Deprecation Final Support Event Class
Discontinued Database Engine Functionality in SQL Server 2016
Discontinued Full-Text Search Features in SQL Server 2016
Use SQL Server Objects
SQL Server, ExecStatistics Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:ExecStatistics object in Microsoft SQL Server provides counters to monitor various executions.
This table describes the SQL Server Exec Statistics counters.
SQL SERVER EXEC STATISTICS COUNTERS
DESCRIPTION
Distributed Query
Statistics relevant to execution of distributed queries.
DTC calls
Statistics relevant to execution of DTC calls.
Extended Procedures
Statistics relevant to execution of extended procedures.
OLEDB calls
Statistics relevant to execution of OLEDB calls.
Each counter in the object contains the following instances:
ITEM
DESCRIPTION
Average execution time (ms)
Average execution time of the selected type of execution.
Cumulative execution time (ms) per second
Aggregated execution time per second, of the selected type of
execution.
Execs in progress
Number of execs in progress of the selected type of execution.
Exec started per second
Number of exes started per second of the selected type of
execution.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, External Scripts Object
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQLServer:External Scripts object in SQL Server provides counters to monitor the actions associated with
executing external scripts. For information about executing external scripts, see sp_execute_external_script
(Transact-SQL).
This table describes the SQL Server External Scripts counters.
SQL SERVER EXTERNAL SCRIPTS COUNTERS
DESCRIPTION
Execution Errors
The number of errors in executing external scripts.
Implied Auth. Logins
The number of logins from satellite processes authenticated
by using implied authentication.
Parallel Executions
The number of external scripts executed with @parallel = 1.
SQL CC Executions
The number of external scripts executed using SQL Compute
Context.
Streaming Executions
The number of external scripts executed with the
@r_rowsPerRead parameter.
Total Execution Time (ms)
The total time spent in executing external scripts.
Total Executions
The number of external scripts executed.
See Also
Monitor Resource Usage (System Monitor)
sys.resource_governor_external_resource_pools (Transact-SQL)
sys.dm_resource_governor_external_resource_pool_affinity (Transact-SQL)
SQL Server, FileTable Object
3/24/2017 • 2 min to read • Edit Online
The SQLServer:FileTable performance object provides counters for statistics associated with FileTable and nontransacted access.
This following table describes the SQL Server FileTable performance objects.
SQL SERVER FILETABLE COUNTERS
DESCRIPTION
Avg time delete FileTable item
Average time (in milliseconds) taken to delete a FileTable item.
Avg time FileTable enumeration
Average time (in milliseconds) taken for a FileTable
enumeration request.
Avg time FileTable handle kill
Average time (in milliseconds) taken to kill a FileTable handle.
Avg time move FileTable item
Average time (in milliseconds) taken to move a FileTable item.
Avg time per file I/O request
Average time (in milliseconds) spent handling an incoming file
I/O request.
Avg time per file I/O response
Average time (in milliseconds) spent handling an outgoing file
I/O response.
Avg time rename FileTable item
Average time (in milliseconds) taken to rename a FileTable
item.
Avg time to get FileTable item
Average time (in milliseconds) taken to retrieve a FileTable
item.
Avg time update FileTable item
Average time (in milliseconds) taken to update a FileTable
item.
FileTable db operations/sec
Total number of database operational events processed by the
FileTable store component per second.
FileTable enumeration reqs/sec
Total number of FileTable enumeration requests per second.
FileTable file I/O requests/sec
Total number of incoming FileTable file I/O requests per
second.
FileTable file I/O response/sec
Total number of outgoing file I/O responses per second.
FileTable item delete reqs/sec
Total number of FileTable delete item requests per second.
FileTable item get requests/sec
Total number of FileTable retrieve item requests per second.
FileTable item move reqs/sec
Total number of FileTable move item requests per second.
FileTable item rename reqs/sec
Total number of FileTable rename item requests per second.
SQL SERVER FILETABLE COUNTERS
DESCRIPTION
FileTable item update reqs/sec
Total number of FileTable update item requests per second.
FileTable kill handle ops/sec
Total number of FileTable handle kill operations per second.
FileTable table operations/sec
Total number of table operational events processed by the
FileTable store component per second.
Time delete FileTable item BASE
For internal use only.
Time FileTable enumeration BASE
For internal use only.
Time FileTable handle kill BASE
For internal use only.
Time move FileTable item BASE
For internal use only.
Time per file I/O request BASE
For internal use only.
Time per file I/O response BASE
For internal use only.
Time rename FileTable item BASE
For internal use only.
Time to get FileTable item BASE
For internal use only.
Time update FileTable item BASE
For internal use only.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, General Statistics Object
3/24/2017 • 2 min to read • Edit Online
The SQLServer:General Statistics object in SQL Server provides counters to monitor general server-wide activity,
such as the number of current connections and the number of users connecting and disconnecting per second
from computers running an instance of SQL Server. This can be useful when you are working on large online
transaction processing (OLTP) type systems where there are many clients connecting and disconnecting from an
instance of SQL Server.
This table describes the SQL Server General Statistics counters.
SQL SERVER GENERAL STATISTICS COUNTERS
DESCRIPTION
Active Temp Tables
Number of temporary tables/table variables in use.
Connection resets/sec
Total number of logins started from the connection pool.
Event Notifications Delayed Drop
Number of event notifications waiting to be dropped by a
system thread.
HTTP Authenticated Requests
Number of authenticated HTTP requests started per second.
Logical Connections
Number of logical connections to the system.
The main purpose of logical connections is to service multiple
active result sets (MARS) requests. For MARS requests, every
time that an application makes a connection to SQL Server,
there may be more than one logical connection that
corresponds to a physical connection.
When MARS is not used, the ratio between physical and
logical connections is 1:1. Therefore, every time that an
application makes a connection to SQL Server, logical
connections will increase by 1.
Logins/sec
Total number of logins started per second. This does not
include pooled connections.
Logouts/sec
Total number of logout operations started per second.
Mars Deadlocks
Number of MARS deadlocks detected.
Non-atomic yield rate
Number of non-atomic yields per second.
Processes blocked
Number of currently blocked processes.
SOAP Empty Requests
Number of empty SOAP requests started per second.
SOAP Method Invocations
Number of SOAP method invocations started per second.
SOAP Session Initiate Requests
Number of SOAP Session initiate requests started per second.
SQL SERVER GENERAL STATISTICS COUNTERS
DESCRIPTION
SOAP Session Terminate Requests
Number of SOAP Session terminate requests started per
second.
SOAP SQL Requests
Number of SOAP SQL requests started per second.
SOAP WSDL Requests
Number of SOAP Web Service Description Language requests
started per second.
SQL Trace IO Provider Lock Waits
Number of waits for the File IO Provider lock per second.
Temp Tables Creation Rate
Number of temporary tables/table variables created per
second.
Temp Tables For Destruction
Number of temporary tables/table variables waiting to be
destroyed by the cleanup system thread.
Tempdb recovery unit id
Number of duplicate tempdb recovery unit id generated.
Tempdb rowset id
Number of duplicate tempdb rowset id generated.
Trace Event Notifications Queue
Number of trace event notification instances waiting in the
internal queue to be sent through Service Broker.
Transactions
Number of transaction enlistments (local, DTC, bound all
combined).
User Connections
Counts the number of users currently connected to SQL
Server.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, HTTP_STORAGE_OBJECT
3/24/2017 • 1 min to read • Edit Online
The SQLServer:HTTP_STORAGE_OBJECT performance object consists of performance counters that monitor
Windows Azure Storage account. Using SQL Server Data Files in Microsoft Azure feature, you can store database
files in Windows Azure Storage Blobs. This performance object treats each Windows Azure Storage account as a
different drive.
COUNTER NAME
DESCRIPTION
Read Bytes/sec
Amount of data being transferred from the HTTP storage per
second during read operations.
Write Bytes/sec
Amount of data being transferred from the HTTP storage per
second during write operations.
Total Bytes/sec
Amount of data being transferred from the HTTP storage per
second during read or write operations.
Reads/sec
Number of reads per second on the HTTP storage.
Writes/sec
Number of writer per second on the HTTP storage.
Transfers/sec
Number of read and write operations per second on the HTTP
storage.
Avg. Bytes/Read
Average number of bytes transferred from the HTTP storage
per read.
Avg. Bytes/Read BASE
For internal use only.
Avg. Bytes/Transfer
Average number of bytes transferred from the HTTP storage
during read or write operations.
Avg. Bytes/Transfer BASE
For internal use only.
Avg. Bytes/Write
Average number of bytes transferred from the HTTP storage
per write.
Avg. Bytes/Write BASE
For internal use only.
Avg. microsec/Read
The average number of microseconds it takes to do each read
from the HTTP storage.
Avg. microsec/Read BASE
For internal use only.
Avg. microsec/Read Comp
The average number of microseconds it takes for HTTP to
complete the read to storage.
Avg. microsec/Read Comp BASE
For internal use only.
COUNTER NAME
DESCRIPTION
Avg. microsec/Write
The average number of microseconds it takes to do each write
to the HTTP storage.
Avg. microsec/Transfer
The average number of microseconds it takes to do each
transfer to the HTTP storage.
Avg. microsec/Transfer BASE
For internal use only.
Avg. microsec/Write BASE
For internal use only.
Avg. microsec/Write Comp
The average number of microseconds it takes for HTTP to
complete the write to storage.
Avg. microsec/Write Comp BASE
For internal use only.
Outstanding HTTP Storage I/O
The total number of outstanding I/Os towards a HTTP storage.
HTTP Storage IO failed/sec
Number of failed write requests sent to the HTTP storage per
second.
HTTP Storage I/O Retry/sec
Number of retry requests sent to the HTTP storage per
second.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Latches Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Latches object in Microsoft SQL Server provides counters to monitor internal SQL Server resource
locks called latches. Monitoring the latches to determine user activity and resource usage can help you to identify
performance bottlenecks.
This table describes the SQL Server Latches counters.
SQL SERVER LATCHES COUNTERS
DESCRIPTION
Average Latch Wait Time (ms)
Average latch wait time (in milliseconds) for latch requests that
had to wait.
Average Latch Wait Time Base
For internal use only.
Latch Waits/sec
Number of latch requests that could not be granted
immediately.
Number of SuperLatches
Number of latches that are currently SuperLatches.
SuperLatch Demotions/sec
Number of SuperLatches that have been demoted to regular
latches in the last second.
SuperLatch Promotions/sec
Number of latches that have been promoted to SuperLatches
in the last second.
Total Latch Wait Time (ms)
Total latch wait time (in milliseconds) for latch requests in the
last second.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Locks Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Locks object in Microsoft SQL Server provides information about SQL Server locks on individual
resource types. Locks are held on SQL Server resources, such as rows read or modified during a transaction, to
prevent concurrent use of resources by different transactions. For example, if an exclusive (X) lock is held on a row
within a table by a transaction, no other transaction can modify that row until the lock is released. Minimizing locks
increases concurrency, which can improve performance. Multiple instances of the Locks object can be monitored at
the same time, with each instance representing a lock on a resource type.
This table describes the SQL Server Locks counters.
SQL SERVER LOCKS COUNTERS
DESCRIPTION
Average Wait Time (ms)
Average amount of wait time (in milliseconds) for each lock
request that resulted in a wait.
Average Wait Time Base
For internal use only.
Lock Requests/sec
Number of new locks and lock conversions per second
requested from the lock manager.
Lock Timeouts (timeout > 0)/sec
Number of lock requests per second that timed out, but
excluding requests for NOWAIT locks.
Lock Timeouts/sec
Number of lock requests per second that timed out, including
requests for NOWAIT locks.
Lock Wait Time (ms)
Total wait time (in milliseconds) for locks in the last second.
Lock Waits/sec
Number of lock requests per second that required the caller to
wait.
Number of Deadlocks/sec
Number of lock requests per second that resulted in a
deadlock.
SQL Server can lock these resources.
ITEM
DESCRIPTION
_Total
Information for all locks.
AllocUnit
A lock on an allocation unit.
Application
A lock on an application-specified resource.
Database
A lock on a database, including all objects in the database.
Extent
A lock on a contiguous group of 8 pages.
ITEM
DESCRIPTION
File
A lock on a database file.
Heap/BTree
Heap or BTree (HOBT). A lock on a heap of data pages, or on
the BTree structure of an index.
Key
A lock on a row in an index.
Metadata
A lock on a piece of catalog information, also called metadata.
Object
A lock on table, stored procedure, view, etc, including all data
and indexes. The object can be anything that has an entry in
sys.all_objects.
Page
A lock on an 8-kilobyte (KB) page in a database.
RID
Row ID. A lock on a single row in a heap.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, LogPool FreePool Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:LogPool FreePool performance object provides counters for statistics for the free pool inside the
Log Pool.
This following table describes the SQL Server LogPool FreePool performance objects.
SQL SERVER LOGPOOL FREEPOOL COUNTERS
DESCRIPTION
Free Buffer Refills/sec
Number of buffers being allocated for refill, per second.
Free List Length
Length of the free list.
There is one instance of the counter for each category of log pool.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Memory Broker Clerks Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Memory Broker Clerks performance object provides counters for statistics related to memory
broker clerks.
This following table describes the SQL Server Memory Broker Clerks performance objects.
SQL SERVER MEMORY BROKER CLERKS COUNTERS
DESCRIPTION
Internal benefit
The internal value of memory for entry count pressure, in ms
per page per ms, multiplied by 10 billion and truncated to an
integer.
Memory broker clerk size
The size of the the clerk, in pages.
Periodic evictions (pages)
The number of pages evicted from the broker clerk by last
periodic eviction.
Pressure evictions (pages/sec)
TThe number of pages per second evicted from the broker
clerk by memory pressure.
Simulation benefit
The value of memory to the clerk, in ms per page per ms,
multiplied by 10 billion and truncated to an integer.
Simulation size
The current size of the clerk simulation, in pages.
There is an instance of the counter for the buffer pool, and the column store object pool.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Memory Manager Object
3/24/2017 • 3 min to read • Edit Online
The Memory Manager object in Microsoft SQL Server provides counters to monitor overall server memory
usage. Monitoring overall server memory usage to gauge user activity and resource usage can help you to identify
performance bottlenecks. Monitoring the memory used by an instance of SQL Server can help determine:
If bottlenecks exist from inadequate physical memory for storing frequently accessed data in cache. If
memory is inadequate, SQL Server must retrieve the data from disk.
If query performance can be improved by adding more memory or by making more memory available to
the data cache or SQL Server internal structures.
Memory Manager Counters
This table describes the SQL Server Memory Manager counters.
SQL SERVER MEMORY MANAGER COUNTERS
DESCRIPTION
Connection Memory (KB)
Specifies the total amount of dynamic memory the server is
using for maintaining connections.
Database Cache Memory (KB)
Specifies the amount of memory the server is currently using
for the database pages cache.
External benefit of memory
The external value of memory, in ms per page per ms,
multiplied by 10 billion and truncated to an integer.
Free Memory (KB)
Specifies the amount of committed memory currently not
used by the server.
Granted Workspace Memory (KB)
Specifies the total amount of memory currently granted to
executing processes, such as hash, sort, bulk copy, and index
creation operations.
Lock Blocks
Specifies the current number of lock blocks in use on the
server (refreshed periodically). A lock block represents an
individual locked resource, such as a table, page, or row.
Lock Blocks Allocated
Specifies the current number of allocated lock blocks. At server
startup, the number of allocated lock blocks plus the number
of allocated lock owner blocks depends on the SQL Server
Locks configuration option. If more lock blocks are needed,
the value increases.
Lock Memory (KB)
Specifies the total amount of dynamic memory the server is
using for locks.
SQL SERVER MEMORY MANAGER COUNTERS
DESCRIPTION
Lock Owner Blocks
Specifies the number of lock owner blocks currently in use on
the server (refreshed periodically). A lock owner block
represents the ownership of a lock on an object by an
individual thread. Therefore, if three threads each have a
shared (S) lock on a page, there will be three lock owner
blocks.
Lock Owner Blocks Allocated
Specifies the current number of allocated lock owner blocks.
At server startup, the number of allocated lock owner blocks
and the number of allocated lock blocks depend on the SQL
Server Locks configuration option. If more lock owner blocks
are needed, the value increases dynamically.
Log Pool Memory (KB)
Total amount of dynamic memory the server is using for Log
Pool.
Maximum Workspace Memory (KB)
Indicates the maximum amount of memory available for
executing processes, such as hash, sort, bulk copy, and index
creation operations.
Memory Grants Outstanding
Specifies the total number of processes that have successfully
acquired a workspace memory grant.
Memory Grants Pending
Specifies the total number of processes waiting for a
workspace memory grant.
Optimizer Memory (KB)
Specifies the total amount of dynamic memory the server is
using for query optimization.
Reserved Server Memory (KB)
Indicates the amount of memory the server has reserved for
future usage. This counter shows the current unused amount
of memory initially granted that is shown in Granted
Workspace Memory (KB).
SQL Cache Memory (KB)
Specifies the total amount of dynamic memory the server is
using for the dynamic SQL cache.
Stolen Server Memory (KB)
Specifies the amount of memory the server is using for
purposes other than database pages.
Target Server Memory (KB)
Indicates the ideal amount of memory the server can
consume.
Total Server Memory (KB)
Specifies the amount of memory the server has committed
using the memory manager.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Buffer Manager Object
sys.dm_os_performance_counters (Transact-SQL)
SQL Server, Memory Node
3/24/2017 • 1 min to read • Edit Online
The Memory Node object in Microsoft SQL Server provides counters to monitor server memory usage on NUMA
nodes.
Memory Node Counters
This table describes the SQL Server Memory Node counters.
SQL SERVER MEMORY MANAGER COUNTERS
DESCRIPTION
Database Node Memory (KB)
Specifies the amount of memory the server is currently using
on this node for database pages.
Free Node Memory (KB)
Specifies the amount of memory the server is not using on
this node.
Foreign Node Memory (KB)
Specifies the amount of non NUMA-local memory on this
node.
Stolen Memory Node (KB)
Specifies the amount of memory the server is using on this
node for purposes other than database pages.
Target Node Memory
Specifies the ideal amount of memory for this node.
Total Node Memory
Indicates the total amount of memory the server has
committed on this node.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Buffer Manager Object
sys.dm_os_performance_counters (Transact-SQL)
SQL Server, Plan Cache Object
3/24/2017 • 1 min to read • Edit Online
The Plan Cache object provides counters to monitor how SQL Server uses memory to store objects such as
stored procedures, ad hoc and prepared Transact-SQL statements, and triggers. Multiple instances of the Plan
Cache object can be monitored at the same time, with each instance representing a different type of plan to
monitor.
This table describes are the SQLServer:Plan Cachecounters.
SQL SERVER PLAN CACHE COUNTERS
DESCRIPTION
Cache Hit Ratio
Ratio between cache hits and lookups.
Cache Hit Ratio Base
For internal use only.
Cache Object Counts
Number of cache objects in the cache.
Cache Pages
Number of 8-kilobyte (KB) pages used by cache objects.
Cache Objects in use
Number of cache objects in use.
Each counter in the object contains the following instances:
PLAN CACHE INSTANCE
DESCRIPTION
_Total
Information for all types of cache instances.
Sql Plans
Query plans produced from an ad hoc Transact-SQL query,
including auto-parameterized queries, or from Transact-SQL
statements prepared using sp_prepare or
sp_cursorprepare. SQL Server caches the plans for ad hoc
Transact-SQL statements for later reuse if the identical
Transact-SQL statement is later executed. User-parameterized
queries (even if not explicitly prepared) are also monitored as
Prepared SQL Plans.
Object Plans
Query plans generated by creating a stored procedure,
function, or trigger.
Bound Trees
Normalized trees for views, rules, computed columns, and
check constraints.
Extended Stored Procedures
Catalog information for extended stores procedures.
Temporary Tables & Table Variables
Cache information related to temporary tables and table
variables.
See Also
Server Memory Server Configuration Options
SQL Server, Buffer Manager Object
Monitor Resource Usage (System Monitor)
SQL Server, Query Store Object
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The Query Store object provides counters to monitor resource utilization of SQL Server to store query texts,
execution plans and runtime stats for objects such as stored procedures, ad hoc and prepared Transact-SQL
statements, and triggers.
This table describes are the SQLServer:Query Storecounters.
SQL SERVER QUERY STORE COUNTERS
DESCRIPTION
Query Store CPU usage
Indicates Query Stores usage of the CPU.
Query Store logical reads
Indicates the number of logical reads made by the Query
Store.
Query Store logical writes
Indicates how much data is being queued to be flushed from
the Query Store. The frequency and delay of adding items
(that represent runtime stats) to the queue is controlled by
Data Flush Interval setting.
Query Store physical reads
Indicates the number of physical reads made by the Query
Store.
Each counter in the object contains the following instances:
QUERY STORE INSTANCE
DESCRIPTION
_Total
Information for the Query Store for this instance of SQL
Server.
<database name>
Query Store information for this database.
See Also
Monitoring Performance By Using the Query Store
Query Store Stored Procedures (Transact-SQL)
Query Store Catalog Views (Transact-SQL)
Monitor Resource Usage (System Monitor)
SQL Server, Resource Pool Stats Object
3/24/2017 • 3 min to read • Edit Online
The SQLServer:Resource Pool Stats object contains performance counters that report information about Resource
Governor resource pool statistics.
Each active resource pool creates an instance of the SQLServer:Resource Pool Stats performance object that has
the same instance name as the Resource Governor resource pool name. The following table describes counters
supported on this instance.
COUNTER NAME
DESCRIPTION
Active memory grant amount (KB)
The current total amount, in kilobytes (KB), of granted
memory. This information is also available in
sys.dm_exec_query_resource_semaphores.
Active memory grants count
Current total count of memory grants. This information is also
available in sys.dm_exec_query_memory_grants.
Avg Disk Read IO (ms)
Average time, in milliseconds, of a read operation from the
disk.
Avg Disk Read IO (ms) Base
For internal use only.
Avg Disk Write IO (ms)
Average time, in milliseconds, of a write operation to the disk.
Avg Disk Write IO (ms) Base
For internal use only.
Cache memory target (KB)
The current memory broker target, in kilobytes (KB), for cache.
Compile memory target (KB)
The current memory broker target, in kilobytes (KB), for query
compiles.
CPU control effect %
The effect of Resource Governor on the resource pool.
Calculated as (CPU usage %) / (CPU usage % without
Resource Governor.
CPU delayed %
System CPU delayed for all requests in the specified instance
of the performance object as a percentage of the total time
active.
CPU delayed % base
For internal use only.
CPU effective %
System CPU usage by all requests in the specified instance of
the performance object as a percentage of the total time
active.
CPU effective % base
For internal use only.
COUNTER NAME
DESCRIPTION
CPU usage %
The CPU bandwidth usage by all requests in all workload
groups belonging to this pool. This is measured relative to the
computer and normalized to all CPUs on the system. This
value will change as the amount of CPU available to the SQL
Server process changes. It is not normalized to what the SQL
Server process receives.
CPU usage % base
For internal use only.
CPU usage target %
The target value of CPU usage % for the resource pool based
on the resource pool configuration settings and system load.
CPU violated %
The difference between the CPU reservation and the effective
scheduling percentage.
Disk Read Bytes/sec
Number of bytes read from the disk in the last second.
Disk Read IO Throttled/sec
Number of read operations throttled in the last second.
Disk Read IO/sec
Number of read operations from the disk in the last second.
Disk Write Bytes/sec
Number of bytes written to the disk in the last second.
Disk Write IO Throttled/sec
Number of write operations throttled in the last second.
Disk Write IO/sec
Number of write operations to the disk in the last second.
Max memory (KB)
The maximum amount, in kilobytes (KB), of memory that the
resource pool can have based on the resource pool settings
and server state.
Memory grant timeouts/sec
The number of memory grant time-outs per second.
Memory grants/sec
The number of memory grants occurring in this resource pool
per second.
Pending memory grant count
The number of requests for memory grants pending in the
queues. This information is also available in
sys.dm_exec_query_resource_semaphores.
Query exec memory target (KB)
The current memory broker target, in kilobytes (KB), for query
execution memory grant. This information is also available in
sys.dm_exec_query_memory_grants.
Target memory (KB)
The target amount, in kilobytes (KB), of memory the resource
pool is trying to obtain based on the resource pool settings
and server state.
Used memory (KB)
The amount of memory used, in kilobytes (KB), for the
resource pool.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Workload Group Stats Object
Resource Governor
SQL Server, SQL Errors Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:SQL Errors object in Microsoft SQL Server provides counters to monitor SQL Errors.
This table describes the SQL Server SQL Errors counters.
SQL SERVER SQL ERRORS COUNTERS
DESCRIPTION
Errors/sec
Number of errors/sec.
Each counter in the object contains the following instances:
ITEM
DEFINITION
_Total
Information for all errors.
DB Offline Errors
Tracks severe errors that cause SQL Server to take the current
database offline.
Info Errors
Information related to error messages that provide
information to users but do not cause errors.
Kill Connection Errors
Tracks severe errors that cause SQL Server to kill the current
connection.
User Errors
Information about user errors.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, SQL Statistics Object
3/24/2017 • 3 min to read • Edit Online
The SQLServer:SQL Statistics object in SQL Server provides counters to monitor compilation and the type of
requests sent to an instance of SQL Server. Monitoring the number of query compilations and recompilations and
the number of batches received by an instance of SQL Server gives you an indication of how quickly SQL Server is
processing user queries and how effectively the query optimizer is processing the queries.
Compilation is a significant part of a query's turnaround time. In order to save the compilation cost, the Database
Engine saves the compiled query plan in a query cache. The objective of the cache is to reduce compilation by
storing compiled queries for later reuse, therefore ending the requirement to recompile queries when later
executed. However, each unique query must be compiled at least one time. Query recompilations can be caused by
the following factors:
Schema changes, including base schema changes such as adding columns or indexes to a table, or statistics
schema changes such as inserting or deleting a significant number of rows from a table.
Environment (SET statement) changes. Changes in session settings such as ANSI_PADDING or ANSI_NULLS
can cause a query to be recompiled.
For more information about simple and forced parameterization, see ALTER DATABASE (Transact-SQL).
These are the SQL Server SQL Statistics counters.
SQL SERVER SQL STATISTICS COUNTERS
DESCRIPTION
Auto-Param Attempts/sec
Number of auto-parameterization attempts per second. Total
should be the sum of the failed, safe, and unsafe autoparameterizations. Auto-parameterization occurs when an
instance of SQL Server tries to parameterize a Transact-SQL
request by replacing some literals with parameters so that
reuse of the resulting cached execution plan across multiple
similar-looking requests is possible. Note that autoparameterizations are also known as simple parameterizations
in newer versions of SQL Server. This counter does not include
forced parameterizations.
Batch Requests/sec
Number of Transact-SQL command batches received per
second. This statistic is affected by all constraints (such as I/O,
number of users, cache size, complexity of requests, and so
on). High batch requests mean good throughput.
Failed Auto-Params/sec
Number of failed auto-parameterization attempts per second.
This should be small. Note that auto-parameterizations are
also known as simple parameterizations in later versions of
SQL Server.
Forced Parameterizations/sec
Number of successful forced parameterizations per second.
Guided Plan Executions/sec
Number of plan executions per second in which the query plan
has been generated by using a plan guide.
SQL SERVER SQL STATISTICS COUNTERS
DESCRIPTION
Misguided Plan Executions/sec
Number of plan executions per second in which a plan guide
could not be honored during plan generation. The plan guide
was disregarded and normal compilation was used to
generate the executed plan.
Safe Auto-Params/sec
Number of safe auto-parameterization attempts per second.
Safe refers to a determination that a cached execution plan
can be shared between different similar-looking Transact-SQL
statements. SQL Server makes many auto-parameterization
attempts some of which turn out to be safe and others fail.
Note that auto-parameterizations are also known as simple
parameterizations in later versions of SQL Server. This does
not include forced parameterizations.
SQL Attention rate
Number of attentions per second. An attention is a request by
the client to end the currently running request.
SQL Compilations/sec
Number of SQL compilations per second. Indicates the
number of times the compile code path is entered. Includes
compiles caused by statement-level recompilations in SQL
Server. After SQL Server user activity is stable, this value
reaches a steady state.
SQL Re-Compilations/sec
Number of statement recompiles per second. Counts the
number of times statement recompiles are triggered.
Generally, you want the recompiles to be low.
Unsafe Auto-Params/sec
Number of unsafe auto-parameterization attempts per
second. For example, the query has some characteristics that
prevent the cached plan from being shared. These are
designated as unsafe. This does not count the number of
forced parameterizations.
See Also
SQL Server, Plan Cache Object
Monitor Resource Usage (System Monitor)
SQL Server, Transactions Object
3/24/2017 • 2 min to read • Edit Online
The Transactions object in Microsoft SQL Server provides counters to monitor the number of transactions active
in an instance of the Database Engine, and the effects of those transactions on resources such as the snapshot
isolation row version store in tempdb. Transactions are logical units of work; a set of operations that must either
all succeed or all be erased from a database in order to maintain the logical integrity of the data. All modifications
of data in SQL Server databases are made in transactions.
When a database is set to allow snapshot isolation level, SQL Server must maintain a record of the modifications
made to each row in a database. Each time a row is modified, a copy of the row as it existed before the modification
is recorded in a row version store in tempdb. Many of the counters in the Transaction object can be used to
monitor the size and rate of growth of the row version store in tempdb.
The Transactions object counters report all transactions in one instance of the Database Engine.
This table describes the SQLServer:Transactions counters.
SQL SERVER TRANSACTIONS COUNTERS
DESCRIPTION
Free Space in tempdb (KB)
The amount of space (in kilobytes) available in tempdb. There
must be enough free space to hold both the snapshot
isolation level version store and all new temporary objects
created in this instance of the Database Engine.
Longest Transaction Running Time
The length of time (in seconds) since the start of the
transaction that has been active longer than any other current
transaction. This counter only shows activity when the
database is under read committed snapshot isolation level. It
does not log any activity if the database is in any other
isolation level.
NonSnapshot Version Transactions
The number of currently active transactions that are not using
snapshot isolation level and have made data modifications
that have generated row versions in the tempdb version
store.
Snapshot Transactions
The number of currently active transactions using the
snapshot isolation level.
Note: The Snapshot Transactions object counter responds
when the first data access occurs, not when the
BEGIN TRANSACTION statement is issued.
Transactions
The number of currently active transactions of all types.
Update conflict ratio
The percentage of those transactions using the snapshot
isolation level that have encountered update conflicts within
the last second. An update conflict occurs when a snapshot
isolation level transaction attempts to modify a row that last
was modified by another transaction that was not committed
when the snapshot isolation level transaction started.
Update conflict ratio base
For internal use only.
SQL SERVER TRANSACTIONS COUNTERS
DESCRIPTION
Update Snapshot Transactions
The number of currently active transactions using the
snapshot isolation level and have modified data.
Version Cleanup rate (KB/s)
The rate (in kilobytes per second) at which row versions are
removed from the snapshot isolation version store in
tempdb.
Version Generation rate (KB/s)
The rate (in kilobytes per second) at which new row versions
are added to the snapshot isolation version store in tempdb.
Version Store Size (KB)
The amount of space (in kilobytes) in tempdb being used to
store snapshot isolation level row versions.
Version Store unit count
The number of active allocation units in the snapshot isolation
version store in tempdb.
Version Store unit creation
The number of allocation units that have been created in the
snapshot isolation store since the instance of the Database
Engine was started.
Version Store unit truncation
The number of allocation units that have been removed from
the snapshot isolation store since the instance of the
Database Engine was started.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, User Settable Object
3/24/2017 • 2 min to read • Edit Online
The User Settable object in Microsoft SQL Server allows you to create custom counter instances. Use custom
counter instances to monitor aspects of the server not monitored by existing counters, such as components unique
to your SQL Server database (for example, the number of customer orders logged or the product inventory).
The User Settable object contains 10 instances of the query counter: User counter 1 through User counter 10.
These counters map to the SQL Server stored procedures sp_user_counter1 through sp_user_counter10. As
these stored procedures are executed by user applications, the values set by the stored procedures are displayed in
System Monitor. A counter can monitor any single integer value (for example, a stored procedure that counts how
many orders for a particular product have occurred in one day).
NOTE
The user counter stored procedures are not polled automatically by System Monitor. They must be explicitly executed by a
user application for the counter values to be updated. Use a trigger to update the value of the counter automatically. For
example, to create a counter that monitors the number of rows in a table, create an INSERT and DELETE trigger on the table
that executes the following statement: SELECT COUNT(*) FROM table . Whenever the trigger is fired because of an INSERT or
DELETE operation occurring on the table, the System Monitor counter is automatically updated.
This table describes the SQL Server User Settable object.
SQL SERVER USER SETTABLE COUNTERS
DESCRIPTION
Query
The User Settable object contains the query counter. Users
configure the User counters within the query object.
This table describes the instances of the Query counter.
QUERY COUNTER INSTANCES
DESCRIPTION
User counter 1
Defined using sp_user_counter1.
User counter 2
Defined using sp_user_counter2.
User counter 3
Defined using sp_user_counter3.
…
User counter 10
Defined using sp_user_counter10.
To make use of the user counter stored procedures, execute them from your own application with a single integer
parameter representing the new value for the counter. For example, to set User counter 1 to the value 10, execute
this Transact-SQL statement:
EXECUTE sp_user_counter1 10
The user counter stored procedures can be called from anywhere other stored procedures can be called, such as
your own stored procedures. For example, you can create the following stored procedure to count the number of
connections and attempted connections since an instance of SQL Server was started:
DROP PROC My_Proc
GO
CREATE PROC My_Proc
AS
EXECUTE sp_user_counter1 @@CONNECTIONS
GO
The @@CONNECTIONS function returns the number of connections or attempted connections since an instance of
SQL Server started. This value is passed to the sp_user_counter1 stored procedure as the parameter.
IMPORTANT
Make the queries defined in the user counter stored procedures as simple as possible. Memory-intensive queries that
perform substantial sort or hash operations or queries that perform large amounts of I/O are expensive to execute and can
impact performance.
Permissions
sp_user_counter is available for all users but can be restricted for any query counter.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Wait Statistics Object
3/24/2017 • 1 min to read • Edit Online
The SQLServer:Wait Statistics performance object contains performance counters that report information about
wait status.
The table below lists the counters that the Wait Statistics object contains.
SQL SERVER WAIT STATISTICS COUNTERS
DESCRIPTION
Lock waits
Statistics for processes waiting on a lock.
Log buffer waits
Statistics for processes waiting for log buffer to be available.
Log write waits
Statistics for processes waiting for log buffer to be written.
Memory grant queue waits
Statistics for processes waiting for memory grant to become
available.
Network IO waits
Statistics relevant to wait on network I/O.
Non-Page latch waits
Statistics relevant to non-page latches.
Page IO latch waits
Statistics relevant to page I/O latches.
Page latch waits
Statistics relevant to page latches, not including I/O latches.
Thread-safe memory objects waits
Statistics for processes waiting on thread-safe memory
allocators.
Transaction ownership waits
Statistics relevant to processes synchronizing access to
transaction.
Wait for the worker
Statistics relevant to processes waiting for worker to become
available.
Workspace synchronization waits
Statistics relevant to processes synchronizing access to
workspace.
Each counter in the object contains the following instances:
ITEM
DESCRIPTION
Average wait time (ms)
Average time for the selected type of wait.
Cumulative wait time (ms) per second
Aggregated wait time per second, for the selected type of
wait.
Waits in progress
Number of processes currently waiting on the following type.
ITEM
DESCRIPTION
Waits started per second
Number of waits started per second of the selected type of
wait.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Workload Group Stats Object
3/24/2017 • 2 min to read • Edit Online
The SQLServer:Workload Group Stats object contains performance counters that report information about
Resource Governor workload group statistics.
Each active workload group creates an instance of the SQLServer:Workload Group Stats performance object that
has the same instance name as the Resource Governor workload group name. The following table describes
counters supported on this instance.
COUNTER NAME
DESCRIPTION
Active parallel threads
The current count of parallel threads usage.
Active requests
The number of requests that are currently running in this
workload group. This should be equivalent to the count of
rows from sys.dm_exec_requests filtered by group ID.
Blocked requests
The current number of blocked requests in the workload
group. This can be used to determine workload characteristics.
CPU delayed %
System CPU delayed for all requests in the specified instance
of the performance object as a percentage of the total time
active.
CPU delayed % base
For internal use only.
CPU effective %
System CPU usage by all requests in the specified instance of
the performance object as a percentage of the total time
active.
CPU effective % base
For internal use only.
CPU usage %
The CPU bandwidth usage by all requests in this workload
group measured relative to the computer and normalized to
all the CPUs on the system. This value will change as the
amount of CPU available to the SQL Server process changes.
It is not normalized to what the SQL Server process receives.
CPU usage % base
For internal use only.
CPU violated %
The difference between the CPU reservation and the effective
scheduling percentage.
Max request CPU time (ms)
The maximum CPU time, in milliseconds, used by a request
currently running in the workload group.
Max request memory grant (KB)
The maximum value of memory grant, in kilobytes (KB), for a
query.
COUNTER NAME
DESCRIPTION
Query optimizations/sec
The number of query optimizations that have happened in
this workload group per second. This can be used to
determine workload characteristics.
Queued requests
The current number of queued requests that is waiting to be
picked up. This count can be non-zero if throttling occurs after
the GROUP_MAX_REQUESTS limit is reached.
Reduced memory grants/sec
The number of queries that are getting less than ideal amount
of memory grants per second.
Requests completed/sec
The number of requests that have completed in this workload
group. This number is cumulative.
Suboptimal plans/sec
The number of suboptimal plans that are generated in this
workload group per second.
See Also
Monitor Resource Usage (System Monitor)
SQL Server, Resource Pool Stats Object
Resource Governor
SQL Server XTP (In-Memory OLTP) Performance
Counters
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
SQL Server provides objects and counters that can be used by Performance Monitor to monitor In-Memory OLTP
activity. The objects and counters are shared across all instances of a given version of SQL Server on the machine,
starting in SQL Server 2014.
In the past the object and counter names began with XTP, as in XTP Cursors. Now starting with SQL Server 2016,
the names are like the following pattern:
SQL Server <version> XTP Cursors
For <version> the value is something like 2016.
SQL Server XTP Performance Objects
The following table describes SQL Server performance objects.
PERFORMANCE OBJECT
DESCRIPTION
SQL Server XTP Cursors
The SQL Server XTP Cursors performance object contains
counters related to internal In-Memory OLTP engine cursors.
Cursors are the low-level building blocks the In-Memory
OLTP engine uses to process Transact-SQL queries. As such,
you do not typically have direct control over them.
SQL Server XTP Databases
The SQL Server XTP Databases performance object provides
In-Memory OLTP database-specific counters.
SQL Server XTP Garbage Collection
The SQL Server XTP Garbage Collection performance object
contains counters related to the In-Memory OLTP engine's
garbage collector.
SQL Server 2016 XTP IO Governor
The SQL Server XTP IO Governor performance object contains
counters related to the In-Memory OLTP IO Rate Governor.
SQL Server XTP Phantom Processor
The SQL Server XTP Phantom Processor performance object
contains counters related to the In-Memory OLTP engine's
phantom processing subsystem. This component is
responsible for detecting phantom rows in transactions
running at the SERIALIZABLE isolation level.
SQL Server XTP Storage
The SQL Server XTP Storage performance object contains
counters related to In-Memory OLTP storage in SQL Server.
SQL Server XTP Transaction Log
The SQL Server XTP Transaction Log performance object
contains counters related to In-Memory OLTP transaction
logging in SQL Server.
PERFORMANCE OBJECT
DESCRIPTION
SQL Server XTP Transactions
The SQL Server XTP Transactions performance object contains
counters related to In-Memory OLTP engine transactions in
SQL Server.
SQL Server XTP Cursors
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Cursors performance object contains counters related to internal In-Memory OLTP engine
cursors. Cursors are the low-level building blocks the In-Memory OLTP engine uses to process Transact-SQL
queries. As such, you do not typically have direct control over them.
This table describes the SQL Server XTP Cursors counters.
COUNTER
DESCRIPTION
Cursor deletes/sec
The number of cursor deletes (on average), per second.
Cursor inserts/sec
The number of cursor inserts (on average), per second.
Cursor scans started /sec
The number of cursor scans started (on average), per second.
Cursor unique violations/sec
The number of unique-constraint violations (on average), per
second.
Cursor updates/sec
The number of cursor updates (on average), per second.
Cursor write conflicts/sec
The number of write-write conflicts to the same row version
(on average), per second.
Dusty corner scan retries/sec (user-issued)
The number of scan retries due to write conflicts during dusty
corner sweeps issued by a user's full-table scan (on average),
per second. This is a very low-level counter, not intended for
customer use.
Expired rows removed/sec
The number of expired rows removed by cursors (on average),
per second.
Expired rows touched/sec
The number of expired rows touched by cursors (on average),
per second.
Rows returned/sec
The number of rows returned by cursors (on average), per
second.
Rows touched/sec
The number of rows touched by cursors (on average), per
second.
Tentatively-deleted rows touched/sec
The number of expiring rows touched by cursors (on average),
per second. A row is expiring if the transaction that deleted it
is still active (i.e. has not yet committed or aborted.)
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Databases
3/24/2017 • 4 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Databases performance object provides In-Memory OLTP database-specific counters.
NOTE
The SQL Server XTP Databases counters are not currently visible from sys.dm_os_performance_counters. The counters can be
viewed from System Monitor.
This table describes the SQL Server XTP Databases counters.
COUNTER
DESCRIPTION
Avg Transaction Segment Large Data Size
Average size of transaction segment large data payload. This is
a very low-level counter, not intended for customer use.
Avg Transaction Segment Size
Average size of transaction segment payload. If this value
goes to zero, more pages are allocated from the backend
allocator. This is a very low-level counter, not intended for
customer use.
Flush Thread 256K Queue Depth
Flush Thread queue depth for 256K IO requests.
Flush Thread 4K Queue Depth
Flush Thread queue depth for 4K IO requests.
Flush Thread 64K Queue Depth
Flush Thread queue depth for 64K IO requests.
Flush Thread Frozen IOs/sec (256K)
The number of 256K IO requests encountered during flush
page processing that are above the freeze threshold and thus
cannot be issued.
Flush Thread Frozen IOs/sec (4K)
The number of 4K IO requests encountered during flush page
processing that are above the freeze threshold and thus
cannot be issued.
Flush Thread Frozen IOs/sec (64K)
The number of 64K IO requests encountered during flush
page processing that are above the freeze threshold and thus
cannot be issued.
IoPagePool256K Free List Count
Number of pages in the the 256K IO page pool free list. If this
value goes to zero, more pages are allocated from the
backend allocator. This is a very low-level counter, not
intended for customer use.
IoPagePool256K Total Allocated
Total number of pages allocated and held by the 256K IO
page pool from the backend allocator. This is a very low-level
counter, not intended for customer use.
COUNTER
DESCRIPTION
IoPagePool4K Free List Count
Number of pages in the the 4K IO page pool free list. If this
value goes to zero, more pages are allocated from the
backend allocator. This is a very low-level counter, not
intended for customer use.
IoPagePool4K Total Allocated
Total number of pages allocated and held by the 4K IO page
pool from the backend allocator. This is a very low-level
counter, not intended for customer use.
IoPagePool64K Free List Count
Number of pages in the the 64K IO page pool free list. If this
value goes to zero, more pages are allocated from the
backend allocator. This is a very low-level counter, not
intended for customer use.
IoPagePool64K Total Allocated
Total number of pages allocated and held by the 64K IO page
pool from the backend allocator. This is a very low-level
counter, not intended for customer use.
MtLog 256K Expand Count
Number of times a 256K MtLog was expanded. This is a very
low-level counter, not intended for customer use.
MtLog 256K IOs Outstanding
The number of outstanding 256K IO requests issued by
MtLog.
MtLog 256K Page Fill %/Page Flushed
Average fill percentage of each 256K MtLog page flushed. This
is a very low-level counter, not intended for customer use.
MtLog 256K Write Bytes/sec
Write bytes per second on 256K MtLog objects. This is a very
low-level counter, not intended for customer use.
MtLog 4K Expand Count
Number of times a 4K MtLog was expanded. This is a very
low-level counter, not intended for customer use.
MtLog 4K IOs Outstanding
The number of outstanding 4K IO requests issued by MtLog.
MtLog 4K Page Fill %/Page Flushed
Average fill percentage of each 4K MtLog page flushed. This is
a very low-level counter, not intended for customer use.
MtLog 4K Write Bytes/sec
Write bytes per second on 4K MtLog objects. This is a very
low-level counter, not intended for customer use.
MtLog 64K Expand Count
Number of times a 64K MtLog was expanded. This is a very
low-level counter, not intended for customer use.
MtLog 64K IOs Outstanding
The number of outstanding 64K IO requests issued by MtLog.
MtLog 64K Page Fill %/Page Flushed
Average fill percentage of each 64K MtLog page flushed. This
is a very low-level counter, not intended for customer use.
MtLog 64K Write Bytes/sec
Write bytes per second on 64K MtLog objects. This is a very
low-level counter, not intended for customer use.
Num Merges
The number of merges in flight.
COUNTER
DESCRIPTION
Num Merges/sec
The number of merges created per second (on average).
Num Serializations
The number of serializations in flight.
Num Serializations/sec
The number of serializations created per second (on average).
Tail Cache Page Count
Number of pages allocated in the Tail Cache. This is a very
low-level counter, not intended for customer use.
Tail Cache Page Count Peak
Highest number of pages allocated in the Tail Cache. This is a
very low-level counter, not intended for customer use.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Garbage Collection
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Garbage Collection performance object contains counters related to the In-Memory OLTP
engine's garbage collector.
This table describes the SQL Server XTP Garbage Collection counters.
COUNTER
DESCRIPTION
Dusty corner scan retries/sec (GC-issued)
The number of scan retries due to write conflicts during dusty
corner sweeps issued by the garbage collector (on average),
per second. This is a very low-level counter, not intended for
customer use.
Main GC work items/sec
The number of work items processed by the main GC thread.
Parallel GC work item/sec
The number of times a parallel thread has executed a GC work
item.
Rows processed/sec
The number of rows processed by the garbage collector (on
average), per second.
Rows processed/sec (first in bucket and removed)
The number of rows processed by the garbage collector that
were first in the corresponding hash bucket, and were able to
be removed immediately (on average), per second.
Rows processed/sec (first in bucket)
The number of rows processed by the garbage collector that
were first in the corresponding hash bucket (on average), per
second.
Rows processed/sec (marked for unlink)
The number of rows processed by the garbage collector that
were already marked for unlink (on average), per second.
Rows processed/sec (no sweep needed)
The number of rows processed by the garbage collector that
will not require a dusty corner sweep (on average), per second.
Sweep expired rows removed/sec
The number of expired rows removed during dusty corner
sweeps (on average), per second.
Sweep expired rows touched/sec
The number of expired rows touched during dusty corner
sweeps (on average), per second.
Sweep expiring rows touched/sec
The number of expiring rows touched during dusty corner
sweeps (on average), per second.
Sweep rows touched/sec
The number of rows touched during dusty corner sweeps (on
average), per second.
COUNTER
DESCRIPTION
Sweep scans started/sec
The number of dusty corner sweep scans started (on average),
per second.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP IO Governor
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP IO Governor performance object contains counters related to the In-Memory OLTP IO Rate
Governor.
This table describes the SQL Server XTP IO Governor counters.
COUNTER
DESCRIPTION
Insufficient Credits Waits/sec
Number of waits due to insufficient credits in the rate objects
(per second).
Io Issued/sec
Number of Io issued per second by flush threads.
Log Blocks/sec
Number of log blocks processed by controller per second.
Missed Credit Slots
Number of credit slots missed because of wait for credits from
rate object.
Stale Rate Object Waits/sec
Number of waits due to stale rate objects (per second).
Total Rate Objects Published
Total number of Rate objects published.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Phantom Processor
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Phantom Processor performance object contains counters related to the In-Memory OLTP
engine's phantom processing subsystem. This component is responsible for detecting phantom rows in
transactions running at the SERIALIZABLE isolation level, as well as constraint validation in concurrency scenarios.
This table describes the SQL Server XTP Phantom Processor counters.
COUNTER
DESCRIPTION
Dusty corner scan retries/sec (Phantom-issued)
The number of scan retries due to write conflicts during dusty
corner sweeps issued by the phantom processor (on average),
per second. This is a very low-level counter, not intended for
customer use.
Phantom expired rows removed/sec
The number of expired rows removed by phantom scans (on
average), per second.
Phantom expired rows touched/sec
The number of expired rows touched by phantom scans (on
average), per second.
Phantom expiring rows touched/sec
The number of expiring rows touched by phantom scans (on
average), per second.
Phantom rows touched/sec
The number of rows touched by phantom scans (on average),
per second.
Phantom scans started/sec
The number of phantom scans started (on average), per
second.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Storage
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Storage performance object contains counters related to on-disk storage for In-Memory OLTP
in SQL Server.
This table describes the SQL Server XTP Storage counters.
COUNTER
DESCRIPTION
Checkpoints Closed
Count of checkpoints closed done by online agent.
Checkpoints Completed
Count of checkpoints processed by offline checkpoint thread.
Core Merges Completed
The number of core merges completed by the merge worker
thread. These merges still need to be installed.
Merge Policy Evaluations
The number of merge policy evaluations since the server
started.
Merge Requests Outstanding
The number of merge requests outstanding since the server
started.
Merges Abandoned
The number of merges abandoned due to failure.
Merges Installed
The number of merges successfully installed.
Total Files Merged
The total number of source files merged. This count can be
used to find the average number of source files in the merge.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Transaction Log
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Transaction Log performance object contains counters related to In-Memory OLTP transaction
log activity in SQL Server.
This table describes the SQL Server XTP Transaction Log counters.
COUNTER
DESCRIPTION
Log bytes written/sec
The number of bytes written to the SQL Server transaction log
by the In-Memory OLTP engine (on average), per second.
Log records written/sec
The number of records written to the SQL Server transaction
log by the In-Memory OLTP engine (on average), per second.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
SQL Server XTP Transactions
3/24/2017 • 1 min to read • Edit Online
THIS TOPIC APPLIES TO:
SQL Server (starting with 2016)
Warehouse
Parallel Data Warehouse
Azure SQL Database
Azure SQL Data
The SQL Server XTP Transactions performance object contains counters related to transactions involving InMemory OLTP in SQL Server.
This table describes the SQL Server XTP Transactions counters.
COUNTER
DESCRIPTION
Cascading aborts/sec
The number of transactions that rolled back to due a commit
dependency rollback (on average), per second.
Commit dependencies taken/sec
The number of commit dependencies taken by transactions
(on average), per second.
Read-only transactions prepared/sec
The number of read-only transactions that were prepared for
commit processing, per second.
Save point refreshes/sec
The number of times a savepoint was "refreshed", (on
average), per second. A savepoint refresh is when an existing
savepoint is reset to the current point in the transaction's
lifetime.
Save point rollbacks/sec
The number of times a transaction rolled back to a save point
(on average), per second.
Save points created /sec
The number of save points created (on average), per second.
Transaction validation failure/sec
The number of transactions that failed validation processing
(on average), per second.
Transactions aborted by user/sec
The number of transactions that were aborted by the user (on
average), per second.
Transactions aborted/sec
The number of transactions that aborted (both by the user
and the system, on average), per second.
Transactions created/sec
The number of transactions created in the system (on
average), per second.
XTP transactions are counted differently than disk-based
transactions (as reflected in Databases:Transactions/sec). For
example, Transactions created/sec counts read/only
transactions, while Databases:Transactions/sec does not.
See Also
SQL Server XTP (In-Memory OLTP) Performance Counters
Activity Monitor
3/24/2017 • 1 min to read • Edit Online
Activity Monitor displays information about SQL Server processes and how these processes affect the current
instance of SQL Server.
Activity Monitor is a tabbed document window with the following expandable and collapsible panes: Overview,
Active User Tasks, Resource Waits, Data File I/O, and Recent Expensive Queries. When any pane is expanded,
Activity Monitor queries the instance for information. When a pane is collapsed, all querying activity stops for that
pane. You can expand one or more panes at the same time to view different kinds of activity on the instance.
Customize columns
For columns included in the Active User Tasks, Resource Waits, Data File I/O, and Recent Expensive Queries
panes, customize the display as follows:
1. To rearrange column order, click the column heading and drag it to another location in the heading ribbon.
2. To sort a column, click the column name.
3. To filter on one or more columns, click the drop-down arrow in the column heading, and then select a value.
More information
Describes how to open Activity Monitor and how to set the
Activity Monitor refresh interval.
Open Activity Monitor (SQL Server Management Studio)
Links to topics for server performance and activity monitoring.
Server Performance and Activity Monitoring
Open Activity Monitor (SQL Server Management
Studio)
3/24/2017 • 1 min to read • Edit Online
Activity Monitor runs queries on the monitored instance to obtain information for the Activity Monitor display
panes. When the refresh interval is set to less than 10 seconds, the time that is used to run these queries can affect
server performance
Check your permissions!
To view actual activity, you must have VIEW SERVER STATE permission. To view the Data File I/O section of Activity
Monitor, you must have CREATE DATABASE, ALTER ANY DATABASE, or VIEW ANY DEFINITION permission in
addition to VIEW SERVER STATE.
To KILL a process, a user must be a member of the sysadmin or processadmin fixed server roles.
Open Activity Monitor
Keyboard shortcut
Type CTRL+ALT+A to open Activity Monitor at any time.
Hint! Hover over any icon in SSMS to learn what it is and what keyboard shortcut activates it!
Toolbar
From the Standard toolbar, click the Activity Monitor icon. It is in the middle, just to the right of the undo/redo
buttons.
Complete the Connect to Server dialog box if you are not already connected to an instance of SQL Server you
want to monitor.
Launch Activity Monitor and Object Explorer on startup
1. From the Tools menu, click Options.
2. In the Options dialog box, expand Environment, and then select Startup.
3. From the At startup drop-down list, select Open Object Explorer and Activity Monitor.
4. Click OK.
Set the Activity Monitor refresh interval
1. Open the Activity Monitor.
2. Right-click Overview, select Refresh Interval, and then select the interval in which Activity Monitor should
obtain new instance information.