Handle
Plan_handle
Je hash odvozený z kompilovaného plánu celé dávky, dá se považovat za jednoznačný identifikátor plánu.
Sql_handle
MD5 hash textu celé dávky, tedy včetně komentářů. Je identifikátorem textu dávky. K 1 Sql_handle může existovat více plan_handle, například kvůli různým set options.
Query_hash
Identifikuje podobné statementy lišící se pouze konstantama
Query_plan_hash
Pro jeden query_hash můžeme dostat vice query_plan_hash, protože pro různé parametry můžeme kvůli rozložení dat dostat různé plány.
Pohledy
dm_exec_background_job_queue
- asynchronní query procesor joby, asynchronní update statistik
dm_exec_background_job_queue_stats
- agregované statistiky pro asynchronní query processor joby
dm_exec_cached_plans
- všechny nakešované plány
- zabraná paměť plánem, počet použití plánu
- plan_handle
dm_exec_connections
- informace o připojení
- session_id
- connection_time
- last_read – datetime
- most_recent_sql_handle
dm_exec_query_memory_grants
- informace o dotazech, které potřebovaly další paměť
dm_exec_query_profiles
- monitoruje postup ve vykonávání plánu běžícího dotazu
dm_exec_query_optimizer_info
- informace o optimalizátoru
dm_exec_requests
- spuštěné requesty
dm_exec_sessions
- last_request_time, reads, writes, logical_reads, set options
dm_exec_procedure_stats
- database_id
- object_id
- sql_handle
- plan_handle
- last_execution_time
- execution_count
- max, min, last, total time of physical reads, worker, logical reads, logical writes, elapsed
dm_exec_trigger_stats
- obdobné jak pro procedury výše
dm_exec_query_stats
- obdobné jak pro procedury výše
- navíc:
- statement_start_offset a statement_end_offset – urcuje statement v ramci davky (nebo v ramci procedury, triggeru)
- query_hash
- query_plan_hash
- statement_sql_handle
- statement_context_id
- total, last, min, max rows, dop, grant_kb, used_grant_kb, ideal_grant_kb, reserved_threads, used_threads
dm_exec_query_resource_semaphores
- má systém dost paměti?
- dva řádky, jeden pro regular resource semaphore (id 0) a druhý pro small-query resource semaphore (id 1)
Funkce
dm_exec_cached_plan_dependent_objects(plan_handle)
- řádek pro každý tsql plán, clr plán, cursor asociovaný s plánem
dm_exec_cursors(session_id)
- informace o otevřených kurzorech
- sql_handle, statement_start_offset, statement_end_offset
dm_exec_xml_handles(session_id|0)
- informace o aktivních handlech z sp_xml_preparedocument
dm_exec_query_plan(plan_handle)
- vrací XML s plánem
- omezení na 128 úrovní v XML, pokud víc, tak vyhodí chybu
dm_exec_text_query_plan(plan_handle, {statement_start_offset|0|DEFAULT} , statement_end_offset|0|DEFAULT})
- vrací řetězec s XML plánem dotazu
- je možné zacílit statement
- výstup není limitován velikostí
dm_exec_input_buffer(session_id, request_id)
- statement dle session_id a request_id
dm_exec_describe_first_result_set(@tsql, @params, @include_browse_information)
- informace o prvním vráceném result setu, název sloupce, datový typ, …
dm_exec_describe_first_result_set_for_object(@object_id, @include_browse_information )
- obdobné, jen pro procedury a triggery zadané skrz @object_id
dm_exec_sql_text(sql_handle | plan_handle)
- vrací text dotazu, procedury
dm_exec_plan_attributes(plan_handle)
- vrací tabulku atributů(attribute, value, is_cache_key)
- zajímavý atribut set_options, kde se dá vyčíst set option připojeni, které mohou ovlivnit výběr exekučního plánu, typicky arith_abort z .net vs. z ssms