自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Azure故障排除以及查詢優(yōu)化

數(shù)據(jù)庫 SQL Server
本文將介紹的是SQL Azure中可用的動態(tài)管理視圖以及怎樣講它們用于SQL Azure故障排除。

  SQL Azure數(shù)據(jù)庫是微軟提供的基于云技術(shù)的關(guān)系型數(shù)據(jù)庫服務(wù)?;谠萍夹g(shù)的數(shù)據(jù)解決方案可以提供很多好處,包括快速provisioning, 更經(jīng)濟的的可伸縮性,高可用性并且減少了管理開支。本文介紹了SQL Azure中可用的動態(tài)管理視圖以及怎樣講它們用于故障排除。

  性能注意事項

  SQL Azure使用SQL Server 2008的數(shù)據(jù)引擎作為核心。SQL Server 2005引入的動態(tài)管理視圖(DMVs)已經(jīng)成為了強大的故障排除工具,被用于排除從系統(tǒng)狀態(tài)到死鎖信息等各個層次的性能問題。在最初發(fā)布的SQL Azure中,大部分的DMV是被禁用的,在之后的計劃更新(Service Update)中才被啟用。DMV暴露了實例級別的信息。由于SQL Azure是一個共享架構(gòu)模型,因此需要修改DMV來限制DMV的輸出使其只顯示適當(dāng)?shù)男畔?。下面的DMV已經(jīng)在***階段中被啟用了。

  這些DMV在本地部署的SQL Server中需要VIEW SERVER STATE的權(quán)限。在SQL Azure中,查詢這些DMV需要新的名為VIEW DATABASE STATE的權(quán)限。

  和事務(wù)有關(guān)的DMV

sys.dm_tran_active_transactions:返回與您的當(dāng)前邏輯數(shù)據(jù)庫的事務(wù)有關(guān)的信息。

sys.dm_tran_database_transactions:返回有關(guān)用戶數(shù)據(jù)庫級事務(wù)的信息。

sys.dm_tran_locks:返回有關(guān)當(dāng)前處于活動狀態(tài)的鎖管理器資源的信息。向鎖管理器發(fā)出的已授予鎖或正等待授予鎖的每個當(dāng)前活動請求分別對應(yīng)一行。結(jié)果集中的列大體分為兩組:資源組和請求組。資源組說明正在進行鎖請求的資源,請求組說明鎖請求。

sys.dm_tran_session_transactions:返回關(guān)聯(lián)事務(wù)和會話的相關(guān)信息。

  和執(zhí)行有關(guān)的DMV

sys.dm_exec_connections: 返回有關(guān)與 Microsoft SQL Azure 數(shù)據(jù)庫建立的連接的信息。

sys.dm_exec_query_plan: 以 XML 格式返回計劃句柄指定的批查詢的顯示計劃。計劃句柄指定的計劃可以處于緩存或正在執(zhí)行狀態(tài)。

sys.dm_exec_query_stats: 返回緩存查詢計劃的聚合性能統(tǒng)計信息。緩存計劃中的每個查詢語句在該視圖中對應(yīng)一行,并且行的生存期與計劃本身相關(guān)聯(lián)。在從緩存刪除計劃時,也將從該視圖中刪除對應(yīng)行。

sys.dm_exec_requests: 返回有關(guān)在 Microsoft SQL Azure 服務(wù)器內(nèi)執(zhí)行的每個請求的信息。

sys.dm_exec_sessions: 返回有關(guān)所有活動的用戶連接和內(nèi)部任務(wù)的信息。

sys.dm_exec_sql_text: 返回由指定的 sql_handle 標(biāo)識的 SQL 批處理的文本。該表值函數(shù)將替換系統(tǒng)函數(shù) fn_get_sql。

sys.dm_exec_text_query_plan: 為 Transact-SQL 批查詢或批查詢中的特定語句返回文本格式的顯示計劃。執(zhí)行計劃句柄指定的查詢計劃可處于緩存狀態(tài)或正在執(zhí)行狀態(tài)。此表值函數(shù)與 sys.dm_exec_query_plan 類似,但存在以下差異:

查詢計劃的輸出以文本格式返回。

查詢計劃的輸出無大小限制。

和數(shù)據(jù)庫相關(guān)的DMV

sys.dm_db_partition_stats:為當(dāng)前數(shù)據(jù)庫中每個分區(qū)返回頁和行計數(shù)信息。只有那些與范圍內(nèi)的服務(wù)器直接相關(guān)的信息會被暴露出來。在SQL Azure中,那些在SQL Server會返回實例級服務(wù)器信息的列將會返回空值。因此,如果你有一些用于SQL Server的自定義故障排除查詢,你可以直接在SQL Azure中運行它們而不需要進行修改。

識別性能不佳的查詢語句

SQL Server為所有執(zhí)行的查詢生成一個優(yōu)化過的查詢計劃。這使得SQL Server的優(yōu)化器可以在同樣或者類似的查詢執(zhí)行的時候重用查詢計劃,從而在最短的時間內(nèi)接收數(shù)據(jù)。一旦數(shù)據(jù)發(fā)生變化,數(shù)據(jù)列上的統(tǒng)計信息會使得查詢計劃變得過期和低效。為了獲得應(yīng)用程序的***性能以及一致的用戶體驗,識別并且調(diào)試這些語句非常的重要。之前列出的DMV可以直接幫助識別那些有問題的查詢。

下面的是一些用于標(biāo)識這些有問題的查詢的基本查詢語句:

過多的重新編譯:

  1. select top 25   
  2.   sql_text.text,   
  3.   sql_handle,   
  4.   plan_generation_num,   
  5.   execution_count,   
  6.   dbid,   
  7.   objectid   
  8. from   
  9.   sys.dm_exec_query_stats a   
  10.   cross apply sys.dm_exec_sql_text(sql_handle) as sql_text   
  11. where   
  12.   plan_generation_num >1   
  13. order by plan_generation_num desc 

不夠高效的查詢計劃

  1. select   
  2.   highest_cpu_queries.plan_handle,   
  3.   highest_cpu_queries.total_worker_time,   
  4.   q.dbid,   
  5.   q.objectid,   
  6.   q.number,   
  7.   q.encrypted,   
  8.   q.[text]   
  9. from   
  10.   (select top 50   
  11.     qs.plan_handle,   
  12.     qs.total_worker_time   
  13.   from   
  14.     sys.dm_exec_query_stats qs   
  15.   order by qs.total_worker_time descas highest_cpu_queries   
  16.   cross apply sys.dm_exec_sql_text(plan_handle) as q   
  17. order by highest_cpu_queries.total_worker_time desc 
  18.  
  19.   I/O瓶頸  
  20. select top 25   
  21.   (total_logical_reads/execution_count) as avg_logical_reads,   
  22.   (total_logical_writes/execution_count) as avg_logical_writes,   
  23.   (total_physical_reads/execution_count) as avg_phys_reads,   
  24.    Execution_count,   
  25.   statement_start_offset as stmt_start_offset,   
  26.   sql_handle,   
  27.   plan_handle   
  28. from sys.dm_exec_query_stats    
  29. order by   
  30. (total_logical_reads + total_logical_writes) desc 

譯自: http://social.technet.microsoft.com/wiki/contents/articles/troubleshoot-and-optimize-queries-with-sql-azure.aspx

【編者推薦】

  1. 思科推新數(shù)據(jù)中心解決方案支持SQL Server
  2. 數(shù)據(jù)庫日常維護常用的腳本部分收錄
  3. TechED 2010現(xiàn)場直擊:SQL Azure在中國落地還需時日
  4. 微軟云數(shù)據(jù)庫SQL Azure初體驗

 

責(zé)任編輯:彭凡 來源: Technet
相關(guān)推薦

2010-12-16 09:05:50

SQL Server

2010-12-07 16:17:40

SQL Server

2011-08-29 18:25:19

Ubuntu

2011-08-18 17:16:26

2020-03-04 14:50:38

Linux硬件故障

2009-01-13 09:31:00

雙絞線網(wǎng)絡(luò)故障

2013-08-26 14:18:12

SELinux

2013-07-25 14:50:03

2020-03-03 10:47:47

LinuxSystemdDocker

2011-08-03 10:48:07

2010-08-26 15:11:19

2012-05-16 11:35:16

SQL Server拒絕訪問

2011-05-07 11:20:15

噴墨打印機

2009-09-17 18:09:53

Nis服務(wù)器

2010-09-25 14:51:40

無線網(wǎng)絡(luò)故障

2013-05-22 14:25:17

2013-01-16 08:56:53

iOS故障排除指南

2010-01-06 09:56:22

2023-11-28 07:54:18

2011-02-23 13:26:01

SQL查詢優(yōu)化
點贊
收藏

51CTO技術(shù)棧公眾號