Field == Event Data
Action == Action Data - The action data is gathered from the current session/request state.
Let's look at the page_split event as that is one of the most relevant events I have seen questions on.
Taking a simple insert into a table in pubs you might see the following.
insert into authors ….
action:database_id = 6
page_id = 1045
file_id = 1
This indicates the location of the page split in the pubs database.
Now take the same insert but the sessions current context is the master database (dbid=1)
insert into pubs..authors ….
action:database_id = 1
page_id = 1045
file_id = 1
The action data is correct based on its design to show the current state of the session. The session is in database_id = 1 (master) but the split really occurs in database_id = 6. What is missing from this example is a field in the page_split event so you can see the context of the page split and the session. The split context would be in an event field:database_id and the session context in the action:database_id .
The user is logged into the pubs database (dbid = 6) and executing a query that involves tempdb.
Here is an sample showing the table spool with tempdb involvement while doing a select. (
Note most don't expect possible page split events on a select but you must consider spools, spills and sort activity.
)
StmtText
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|--Compute Scalar(DEFINE:([Expr1014]=[Expr1013], [Expr1036]=[Expr1035], [Expr1058]=[Expr1057], [Expr1080]=[Expr1079], [Expr1102]=[Expr1101], [Expr1124]=[Expr1123]))
|--Sort(ORDER BY:([Expr1013] ASC))
|--Nested Loops(Inner Join, OUTER REFERENCES:(FN_XE_READ_FILE_TARGET_FILE.[event_data]))
|--Nested Loops(Inner Join, OUTER REFERENCES:(FN_XE_READ_FILE_TARGET_FILE.[event_data]))
| |--Nested Loops(Inner Join, OUTER REFERENCES:(FN_XE_READ_FILE_TARGET_FILE.[event_data]))
| | |--Nested Loops(Inner Join, OUTER REFERENCES:(FN_XE_READ_FILE_TARGET_FILE.[event_data]))
| | | |--Nested Loops(Inner Join, OUTER REFERENCES:(FN_XE_READ_FILE_TARGET_FILE.[event_data]))
| | | | |--Nested Loops(Inner Join, OUTER REFERENCES:(FN_XE_READ_FILE_TARGET_FILE.[event_data]))
| | | | | |--Sort(ORDER BY:(FN_XE_READ_FILE_TARGET_FILE.[event_data] ASC))
| | | | | | |--Table-valued function
| | | | | |--Table Spool
The page_split in this case report the action:database_id = 6.
Bob Dorr - Principal SQL Server Escalation Engineer
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.