DMV在本地部署的SQL Server中須要VIEW SERVER STATE的權限sql
和事務有關的DMV
sys.dm_tran_active_transactions:返回與您的當前邏輯數據庫的事務有關的信息。
sys.dm_tran_database_transactions:返回有關用戶數據庫級事務的信息。
sys.dm_tran_locks:返回有關當前處於活動狀態的鎖管理器資源的信息。向鎖管理器發出的已授予鎖或正等待授予鎖的每一個當前活動請求分別對應一行。結果集中的列大致分爲兩組:資源組和請求組。資源組說明正在進行鎖請求的資源,請求組說明鎖請求。
sys.dm_tran_session_transactions:返回關聯事務和會話的相關信息。數據庫
和執行有關的DMV
sys.dm_exec_connections: 返回有關與 Microsoft SQL Azure 數據庫創建的鏈接的信息。
sys.dm_exec_query_plan: 以 XML 格式返回計劃句柄指定的批查詢的顯示計劃。計劃句柄指定的計劃能夠處於緩存或正在執行狀態。
sys.dm_exec_query_stats: 返回緩存查詢計劃的聚合性能統計信息。緩存計劃中的每一個查詢語句在該視圖中對應一行,而且行的生存期與計劃自己相關聯。在從緩存刪除計劃時,也將從該視圖中刪除對應行。
sys.dm_exec_requests: 返回有關在 Microsoft SQL Azure 服務器內執行的每一個請求的信息。
sys.dm_exec_sessions: 返回有關全部活動的用戶鏈接和內部任務的信息。
sys.dm_exec_sql_text: 返回由指定的 sql_handle 標識的 SQL 批處理的文本。該表值函數將替換系統函數 fn_get_sql。
sys.dm_exec_text_query_plan: 爲 Transact-SQL 批查詢或批查詢中的特定語句返回文本格式的顯示計劃。執行計劃句柄指定的查詢計劃可處於緩存狀態或正在執行狀態。此表值函數與 sys.dm_exec_query_plan 相似,但存在如下差別:
• 查詢計劃的輸出以文本格式返回。
• 查詢計劃的輸出無大小限制。緩存
和數據庫相關的DMV
sys.dm_db_partition_stats:爲當前數據庫中每一個分區返回頁和行計數信息。
只有那些與範圍內的服務器直接相關的信息會被暴露出來。在SQL Azure中,那些在SQL Server會返回實例級服務器信息的列將會返回空值。所以,若是你有一些用於SQL Server的自定義故障排除查詢,你能夠直接在SQL Azure中運行它們而不須要進行修改。服務器
識別性能不佳的查詢語句
SQL Server爲全部執行的查詢生成一個優化過的查詢計劃。這使得SQL Server的優化器能夠在一樣或者相似的查詢執行的時候重用查詢計劃,從而在最短的時間內接收數據。一旦數據發生變化,數據列上的統計信息會使得查詢計劃變得過時和低效。爲了得到應用程序的最佳性能以及一致的用戶體驗,識別而且調試這些語句很是的重要。以前列出的DMV能夠直接幫助識別那些有問題的查詢。session
下面的是一些用於標識這些有問題的查詢的基本查詢語句:app
過多的從新編譯:
select top 25
sql_text.text,
sql_handle,
plan_generation_num,
execution_count,
dbid,
objectid
from
sys.dm_exec_query_stats a
cross apply sys.dm_exec_sql_text(sql_handle) as sql_text
where
plan_generation_num >1
order by plan_generation_num desc函數
不夠高效的查詢計劃
select
highest_cpu_queries.plan_handle,
highest_cpu_queries.total_worker_time,
q.dbid,
q.objectid,
q.number,
q.encrypted,
q.[text]
from
(select top 50
qs.plan_handle,
qs.total_worker_time
from
sys.dm_exec_query_stats qs
order by qs.total_worker_time desc) as highest_cpu_queries
cross apply sys.dm_exec_sql_text(plan_handle) as q
order by highest_cpu_queries.total_worker_time desc性能
I/O瓶頸
select top 25
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(total_physical_reads/execution_count) as avg_phys_reads,
Execution_count,
statement_start_offset as stmt_start_offset,
sql_handle,
plan_handle
from sys.dm_exec_query_stats
order by
(total_logical_reads + total_logical_writes) desc優化
轉自:http://blogs.technet.com/b/sqlazurechina/archive/2011/08/18/sql-azure-optimization-debugging.aspxdebug