--- title: "SQL Server, Plan Cache object" description: Learn about the Plan Cache object, which provides counters to monitor how SQL Server uses memory to store objects such as stored procedures and triggers. ms.custom: "" ms.date: "07/13/2021" ms.prod: sql ms.prod_service: "database-engine" ms.reviewer: "" ms.technology: performance ms.topic: conceptual helpviewer_keywords: - "Plan Cache object" - "SQLServer:Plan Cache" author: WilliamDAssafMSFT ms.author: wiassaf --- # SQL Server, Plan Cache object [!INCLUDE [SQL Server](../../includes/applies-to-version/sqlserver.md)] The **Plan Cache** object provides counters to monitor how [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] uses memory to store objects such as stored procedures, ad hoc and prepared [!INCLUDE[tsql](../../includes/tsql-md.md)] 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 Cache**counters. |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 Objects in use**|Number of cache objects in use.| |**Cache Pages**|Number of 8-kilobyte (KB) pages used by cache objects.| 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 [!INCLUDE[tsql](../../includes/tsql-md.md)] query, including auto-parameterized queries, or from [!INCLUDE[tsql](../../includes/tsql-md.md)] statements prepared using `sp_prepare` or `sp_cursorprepare`. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] caches the plans for ad hoc [!INCLUDE[tsql](../../includes/tsql-md.md)] statements for later reuse if the identical [!INCLUDE[tsql](../../includes/tsql-md.md)] 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.| ## Example You begin to explore the query performance counters in this object using this T-SQL query on the [sys.dm_os_performance_counters](../system-dynamic-management-views/sys-dm-os-performance-counters-transact-sql.md) dynamic management view: ```sql SELECT * FROM sys.dm_os_performance_counters WHERE object_name LIKE '%Plan Cache%'; ``` ## See also [Server Memory Server Configuration Options](../../database-engine/configure-windows/server-memory-server-configuration-options.md) [SQL Server, Buffer Manager Object](../../relational-databases/performance-monitor/sql-server-buffer-manager-object.md) [Monitor Resource Usage (System Monitor)](../../relational-databases/performance-monitor/monitor-resource-usage-system-monitor.md)