I am using the JTDS driver and I'd like to make sure my java client is receiving the same query plan as when I execute the SQL in Mgmt studio, is there a way to get the query plan (ideally in xml format)?
basically, I'd like the same format output as
set showplan_xml on
in management studio. Any ideas?
Some code for getting the plan for a session_id
SELECT usecounts, cacheobjtype,
objtype, [text], query_plan
FROM sys.dm_exec_requests req, sys.dm_exec_cached_plans P
CROSS APPLY
sys.dm_exec_sql_text(plan_handle)
CROSS APPLY
sys.dm_exec_query_plan(plan_handle)
WHERE cacheobjtype = 'Compiled Plan'
AND [text] NOT LIKE '%sys.dm_%'
--and text like '%sp%reassign%'
and p.plan_handle = req.plan_handle
and req.session_id = 70 /** <-- your sesssion_id here **/
Shortcut key: There is a shortcut key available to check for the Estimated Execution plan. You can press Ctrl+L after writing the query in the Query window. In the Context Menu of the Query Window, you will find a menu on the toolbar in SQL Server Management Studio with the name “Display Estimated Execution Plan”.
Using the SHOWPLAN command Besides the graphical query plans, we can obtain the execution plans in text or XML format with help of the SET SHOWPLAN command.
@@SPID
from java or use SSMS and look into sys.dm_exec_sessions
and/or sys.dm_exec_connections
for your Java client session (it can be identified by program_name
, host_process_id
, client_net_address
etc).sys.dm_exec_requests
for the session_id
found at 1.sys.dm_exec_query_plan
from the plan_handle
found at 2.Alternatively you can use the Profiler, attach the profiler to server and capture the Showplan XML event.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With