Extended Events is a general event-handling system for performance monitoring that was introduced in SQL Server 2008. It has a highly scalable and highly configurable architecture that allows users to collect as much or as little information as is necessary to troubleshoot or identify a performance problem.
While there are already a number of diagnostics tools such as DBCC, SQL Trace, SQL Server Profiler, DMVs, and Perfmon, Extended Events offer several major advantages: It is light weight, has a highly scalable and highly configurable architecture, it allows a deeper and more granular level control of tracing, and it has more events that can be captured (for example you can identify page splits and high CPU utilization by ad-hoc queries). For further troubleshooting, you can even use Extended Events to correlate SQL Server captured event data. For more info see Opening the SQL Server 2008 Toolbox – An Introduction to Extended Events.
In SQL Server 2012, the following features were added:
- Ported the complete set of diagnostic events that are available in SQL Trace over to Extended Events and rounded out the set of Actions to ensure that you can produce the same data from an event session that you can using SQL Trace
- Added a user interface. The Extended Events user interface is built directly into SSMS and there are four primary pieces: Session list, New Session Wizard, New Session dialog, Extended Events display
- Introduced a “management” API for Extended Events that gives you access to the “inventory” of the system (eg. lists of events, actions, etc.) as well as the ability to create, modify and delete sessions using your favorite managed language. This API is exposed through PowerShell
- A “reader” API that provides functionality for reading event files (XEL) and event streams coming from a running event session
Note that with SQL Server 2012, SQL Trace is deprecated. It will be phased out over the next few released in favor of Extended Events.