成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server性能調優之執行計劃第一次實踐

數據庫 SQL Server 數據庫運維
自從上一篇文章發出之后,收到了很朋友的關注。很多朋友要求多多實踐,而不是純粹的理論。確實,從打算出這個系列開始,我就本著實踐的思想來進行的!

自從上一篇文章發出之后,收到了很朋友的關注。很多朋友要求多多實踐,而不是純粹的理論。確實,從打算出這個系列開始,我就本著實踐的思想來進行的!同時,為了使得大家更好的理解、消化這些知識,我會定期的就所寫內容進行在線的視頻講座,朋友們可以去參與這個小組:http://www.agilesharp.com/c/sqlprofiler.aspx,報名活動開始啦:http://www.agilesharp.com/Event.aspx/T-2

議程如下:

  • 實踐概述
  • 圖形化執行計劃實戰
  • 執行計劃信息解讀

實踐概述

執行計劃可以輔助我們寫出高效率的T-SQL代碼,同時也可以找出現有T-SQL代碼的問題,還可以監控數據庫!當然,***如何使用執行計劃還是取決于我們自己了,但是不管怎么樣,我們首先學會解析執行計劃中所包含的信息,最快的學習方法就是實踐。下面,我們就從一個實踐開始。

為了使得大家易于理解,這里的例子不會太復雜,隨著課程的不斷深入,后續的示例也會越來越復雜。同時,如果大家也想跟著一起動手實踐,那么希望朋友們安裝SQL2005或更高版本,同時記得安裝AdventureWorks數據庫。下載地址為:http://msftdbprodsamples.codeplex.com

另外,有一個需要注意的是,由于數據庫中數據,操作和時間的關系,可能大家在運行腳本產生的執行計劃和我這里不完全一樣,這是沒有任何問題的!

圖形化執行計劃實戰

下面我們正式進入要討論的話題。

首先,為了使得我們可以查看執行計劃,最起碼要確保我們在登錄數據庫的時候,要被授予權限,如下語句所示:

  1. GRANT SHOWPLAN TO [username] 

為了將討論集中在執行計劃(估計執行計劃和實際執行計劃)上,我們這里這是運行一個比較簡單的查詢,如下代碼所示:

  1. SELECT * FROM [dbo].[DatabaseLog]; 

下面,我們就來看看這個語句的估計執行計劃,正如之前文章講述的:估計執行計劃是優化器使用了的元數據,成本分析算法等而產生的計劃,這個計劃是查詢語句執前的一個分析!

顯示估計執行計劃

我們可以采用以下幾種方式顯示估計執行計劃:

  1.  點擊Sql Server Studio工具欄上的按鈕:
  2.  在查詢窗口右擊鼠標,如下所示:
  3.  使用快捷鍵“CTRL + L”.

對以上面的查詢語句,顯示的圖形化的估計查詢計劃如下:

顯示執行查詢計劃

與估計執行計劃不同,實際的執行計劃不是優化器產生的,實際的執行計劃是底層的存儲引擎在執行時候產生的,這個計劃中包含了大量的實際的底層數據和相關的信息。

我們可以采用以下方式獲得實際的執行計劃,如下所示:

  1.  點擊工具欄上面的按鈕:
  2.  在查詢窗口右擊鼠標,如下:
  3.  快捷鍵“CTRL + M”

上述查詢的實際執行計劃如下所示:

大家初一看,以為兩者沒有區別,但是它們包含的數據信息很多是不一樣的。

下面,我們就開始對圖形化的執行計劃進行解讀。

#p#

執行計劃信息解讀

剛剛大家已經看了圖形化的執行計劃了,相關大家比較關心的問題有兩個:如何解讀執行計劃中提供的各種信息;如何采用執行計劃來進行性能調優。

我們首先來看看***個問題。

一般而言,我們在閱讀圖形化的執行計劃的時候順序是這樣的:從右向左,從下往上。也就說:sql執行的***步就顯示在執行計劃的右下角。

在圖形化執行計劃中的每一個圖標,都表示一個操作,在之前的執行計劃中就有兩個操作。并且每個操作之前采用箭頭連接起來,表明了數據流動的方向,其中箭頭的粗細就反應了數據量的大小。

另外,在每個操作下面都顯示了一個百分比。

對于估計執行計劃而言,這個數字就是優化器對執行計劃中每一個操作步驟進行成本分析后的結果。例外,在我們的例子中,整個查詢***會有兩個操作會進行,Select和Table Scan,其中整個查詢的成本將會落在Table Scan(整表掃描)上。

操作提示信息

當我們把鼠標放在每個操作或箭頭上面的時候,就會彈出更多的相關信息,我們下面就來具體的看一看。

例如,當我們把鼠標放在執行計劃的Select操作上面,顯示如圖:

上面圖中給出的信息非常清楚了,我這里只是解釋一下“估計子樹大小”。因為執行計劃可以看出是sql語句的邏輯執行步驟,這個選項就告訴我們:在我們現在所看的這個操作步驟以及后面的所有步驟的開銷是多少,是一個總計數字。

如何朋友們還有有什么不清楚的,我們在后續將要展開的在線講座中講述!

下面我們看看Table Scan的提示信息,如下圖所示:

雖然這個操作中包含的信息就非常的多了,但是卻都很容易理解。

這里要稍微重點提一下就是“已排序”。很明顯,這個值告訴我們:Table Scan這個操作是建立在對數據排序的基礎上的。例如,在查詢語句中,有時候,我們寫上order by語句,那么后續的很多的操作都是在已經排序的數據基礎上進行,通過查看“已排序”是true還是false,我們就可以知道,查詢語句內部是否自己進行了額外的排序操作(有時候,我們明明沒有寫order by,但是優化器卻認為進行order by之后成本更小,這個時候我們就要注意了)。

***稍微的提一下“節點ID”,這個值就反應了操作在整個執行計劃中的執行順序,數字越小,說明越早被執行。在上圖中,表明table scan操作時整個執行計劃的***步。

為了使得大家更加的清楚,下面我們把之前的查詢語句稍微的改下:

  1. SELECT * FROM [dbo].[DatabaseLog] order by  PostTime 

估計執行計劃如下:

我們查看提示信息,發現排序***進行,然后再整表掃描。

今天就暫時到這里,下一篇,我們講述相關的操作以及以文本和xml的形式查看執行計劃。

原文鏈接:http://www.cnblogs.com/yanyangtian/archive/2011/09/05/2167093.html

【編輯推薦】

  1. 養成一個SQL好習慣帶來一筆大財富
  2. 告訴你,如何成就DBA職業生涯
  3. SQL Server性能調優之淺析SQL執行的過程
  4. 客戶的一次疏忽,DBA的一次噩夢
  5. 數據庫點滴之精妙SQL語句
責任編輯:艾婧 來源: IT創業產品互推平臺
相關推薦

2011-09-02 14:05:25

SQL Server性能調優

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區

2011-09-14 17:03:17

數據庫執行計劃解析

2021-11-07 23:49:19

SQL數據庫工具

2024-12-17 14:52:46

2011-07-21 21:01:37

諾基亞塞班蘋果

2017-03-22 15:38:28

代碼架構Java

2009-01-08 19:14:37

服務器應用程序SQL Server

2010-07-19 13:35:51

SQL Server性

2023-09-11 00:14:46

后端團隊項目

2017-07-21 08:55:13

TomcatJVM容器

2014-08-28 09:54:35

SQL Server

2009-01-08 19:11:39

服務器應用程序SQL Server

2009-01-08 19:06:13

服務器應用程序SQL Server

2011-01-21 08:38:20

2019-11-28 08:31:21

Oracle數據庫索引

2022-03-16 14:59:28

打包debian模板文件

2012-04-13 10:11:58

Windows 8泄露

2022-08-15 08:16:56

shiroWeb認證

2022-08-08 08:03:44

MySQL數據庫CBO
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天爽天天干 | 成人精品在线视频 | 亚洲成人一区 | 精品视频一区二区三区在线观看 | 久久国产精品免费一区二区三区 | 在线观看视频91 | 精品国产区 | 色婷婷av一区二区三区软件 | 亚洲成人精品在线 | 91最新入口| 亚洲精品一区二三区不卡 | 新超碰97 | 欧美精品久久 | 欧美成年网站 | 毛片一级电影 | 免费激情| 99福利视频| 在线播放一区二区三区 | 三级欧美 | 成年人免费看的视频 | 成人深夜小视频 | 精品视频久久久久久 | 日韩视频一区在线观看 | www日本在线播放 | 性色视频 | 2019天天干天天操 | 国产黄色精品 | 亚洲福利片| 91日韩在线 | 国产精品久久久久一区二区三区 | 99资源站| 亚洲国产精品福利 | 久久综合一区二区 | 中文字幕日韩欧美 | 伊人久久国产 | 日产久久| 亚洲3级 | 亚洲xxxxx | 四虎精品在线 | 九九看片| 狠狠色综合欧美激情 |