* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download SQL Server, Databases Object
Entity–attribute–value model wikipedia , lookup
Concurrency control 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
Database model wikipedia , lookup
Clusterpoint wikipedia , lookup
Versant Object Database wikipedia , lookup
Relational model wikipedia , lookup
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.