亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

Sql Server之旅——第十一站 簡單說說sqlserver的執行計劃

2024-08-31 00:54:48
字體:
來源:轉載
供稿:網友
Sql Server之旅——第十一站 簡單說說sqlserver的執行計劃

  我們知道sql在底層的執行給我們上層人員開了一個窗口,那就是執行計劃,有了執行計劃之后,我們就清楚了那些爛sql是怎么執行的,這樣

就可以方便的找到sql的缺陷和優化點。

一:執行計劃生成過程

  說到執行計劃,首先要知道的是執行計劃大概生成的過程,這樣就可以做到就心中有數了,下面我畫下簡圖:

1. 分析過程

  這三個比較容易理解,首先我們要保證sql的語法不能錯誤,select和join的表是必須存在的,以及你是有執行這個sql的權限,對不對。。。

這樣我們就走完了執行計劃生命周期的第一個流程。

2. 編譯過程

保證了上面sql這三點的話,引擎就必須硬著頭皮看你這么一大坨爛sql,該刪的刪,該改的改,該轉換的轉換,比如說你的“子查詢”會轉化為

“表連接”等等。。。其實也挺難為引擎的,舉個例子吧。

<1>子查詢生成的sql:

<2>join生成的sql:

從上面的兩個結果中,你可以看到,大家都是玩join的,如果你仔細看的話,會發現一個是“哈希匹配”,一個是“嵌套循環”,為什么不一樣,這

當然是引擎根據很多情況綜合評選出來的,比如說:磁盤IO,邏輯讀,資源占用,硬件環境等等。。。這也是所謂的“計劃選優”操作。

3.執行過程

  既然執行計劃都選出來了,理所當然就要執行了,執行完后會把sql和執行計劃放入緩存,這樣下次有同樣的sql過來的時候就可以直接從

Cache中提取了,不需要再次生成計劃了,你也看到,生成執行計劃還是比較消耗CPU時間的。

二:看看sql和執行的計劃的緩存

  剛才也說了,sql和plan都已經放入緩存了,那我的好奇心比較強,我就想看看sql和plan到底在哪,并且長的是個什么丑樣子,剛好

sqlserver還是比較能夠滿足我們G點的。

1. 為了方便查看緩存,我需要先將所有的緩存清空,比如下面的語句。

DBCC freePRoccacheSELECT c.* FROM dbo.Category AS cJOIN dbo.Product AS pON c.CategoryId=p.CategoryIdWHERE c.CategoryId=23794

2. 通過sys.dm_exec_cached_plans拿到sql和plan的指針(plan_handle),如下圖

SELECT * FROM sys.dm_exec_cached_plans

從圖中你看到了兩個adhoc(即時查詢),分別是我在第一步執行的join查詢和我在第二步執行的這個select。

3. 現在我們已經拿到了2個adhoc的plan_handle,然后通過dm_exec_sql_text查看他們的sql分別是怎樣?

4. 看完text緩存,接下來我們繼續看看sql的plan緩存在哪?可以通過dm_exec_query_plan來查看。

上面的query_plan字段就是所謂的執行計劃,以xml的形式保存在字段中。。。所以說解析這個xml還是很費時間的。。。

  1 <?xml version="1.0"?>  2 <ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.1" Build="10.0.1600.22">  3     <BatchSequence>  4         <Batch>  5             <Statements>  6                 <StmtSimple StatementText="SELECT c.* FROM dbo.Category AS c  7  JOIN dbo.Product AS p  8  ON c.CategoryId=p.CategoryId  9  WHERE c.CategoryId=23794" StatementId="1" StatementCompId="1" StatementType="SELECT" StatementSubTreeCost="1.33278" StatementEstRows="1.03803" StatementOptmLevel="FULL" QueryHash="0xB10B821B9B5E6396" QueryPlanHash="0x8C7B3B1660E28D16"> 10                     <StatementSetOptions QUOTED_IDENTIFIER="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" NUMERIC_ROUNDABORT="false" /> 11                     <QueryPlan CachedPlanSize="16" CompileTime="2" CompileCPU="2" CompileMemory="168"> 12                         <MissingIndexes> 13                             <MissingIndexGroup Impact="99.4633"> 14                                 <MissingIndex Database="[MYPETSHOP]" Schema="[dbo]" Table="[Product]"> 15                                     <ColumnGroup Usage="EQUALITY"> 16                                         <Column Name="[CategoryId]" ColumnId="2" /> 17                                     </ColumnGroup> 18                                 </MissingIndex> 19                             </MissingIndexGroup> 20                             <MissingIndexGroup Impact="99.4636"> 21                                 <MissingIndex Database="[MYPETSHOP]" Schema="[dbo]" Table="[Product]"> 22                                     <ColumnGroup Usage="EQUALITY"> 23                                         <Column Name="[CategoryId]" ColumnId="2" /> 24                                     </ColumnGroup> 25                                 </MissingIndex> 26                             </MissingIndexGroup> 27                         </MissingIndexes> 28                         <RelOp NodeId="0" PhysicalOp="Nested Loops" LogicalOp="Inner Join" EstimateRows="1.03803" EstimateIO="0" EstimateCPU="4.33898e-006" AvgRowSize="97" EstimatedTotalSubtreeCost="1.33278" Parallel="0" EstimateRebinds="0" EstimateRewinds="0"> 29                             <OutputList> 30                                 <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="CategoryId" /> 31                                 <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="Name" /> 32                                 <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="Image" /> 33                             </OutputList> 34                             <NestedLoops Optimized="0"> 35                                 <RelOp NodeId="1" PhysicalOp="Clustered Index Seek" LogicalOp="Clustered Index Seek" EstimateRows="1" EstimateIO="0.003125" EstimateCPU="0.0001581" AvgRowSize="97" EstimatedTotalSubtreeCost="0.0032831" TableCardinality="1.00001e+006" Parallel="0" EstimateRebinds="0" EstimateRewinds="0"> 36                                     <OutputList> 37                                         <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="CategoryId" /> 38                                         <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="Name" /> 39                                         <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="Image" /> 40                                     </OutputList> 41                                     <IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" NoExpandHint="0"> 42                                         <DefinedValues> 43                                             <DefinedValue> 44                                                 <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="CategoryId" /> 45                                             </DefinedValue> 46                                             <DefinedValue> 47                                                 <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="Name" /> 48                                             </DefinedValue> 49                                             <DefinedValue> 50                                                 <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Column="Image" /> 51                                             </DefinedValue> 52                                         </DefinedValues> 53                                         <Object Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Index="[PK_Category]" Alias="[c]" IndexKind="Clustered" /> 54                                         <SeekPredicates> 55                                             <SeekPredicateNew> 56                                                 <SeekKeys> 57                                                     <Prefix ScanType="EQ"> 58                                                         <RangeColumns> 59                                                             <ColumnReference Database="[MYPETSHOP]" Schema="[dbo]" Table="[Category]" Alias="[c]" Colum
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产盗摄xxxx视频xxx69| 欧美国产一区二区三区| 日韩在线免费观看视频| 国产精品户外野外| 国模gogo一区二区大胆私拍| 91精品视频大全| 久操成人在线视频| 成人免费看片视频| 一区二区欧美激情| 日韩欧美国产高清91| 美女黄色丝袜一区| 欧美日韩另类在线| 日韩一级黄色av| 精品国内自产拍在线观看| 国产偷亚洲偷欧美偷精品| 91香蕉嫩草影院入口| 最新的欧美黄色| 国产国语刺激对白av不卡| 国产精品亚洲综合天堂夜夜| 精品久久久久久久久久| 久久久精品国产亚洲| 国产精品九九久久久久久久| 亚洲性生活视频| 国产性猛交xxxx免费看久久| 中文字幕精品久久久久| 国产欧美亚洲精品| 亚洲精品美女视频| 亚洲综合自拍一区| 91中文字幕一区| 97视频在线观看免费| 奇米4444一区二区三区| 国产做受高潮69| 午夜精品一区二区三区视频免费看| 91日韩在线播放| 日本亚洲精品在线观看| 国外色69视频在线观看| 日韩中文字幕第一页| 国产精品日韩欧美| 久久99精品久久久久久青青91| 精品国产31久久久久久| 欧美激情一区二区三区高清视频| 日韩激情片免费| 欧美性色19p| 国产精品69av| 97欧美精品一区二区三区| 日韩va亚洲va欧洲va国产| 久久久久女教师免费一区| 成人国内精品久久久久一区| 欧美日韩国产限制| 国语自产精品视频在线看一大j8| 欧美激情第99页| 国产a∨精品一区二区三区不卡| 8090成年在线看片午夜| 97免费中文视频在线观看| 亚洲已满18点击进入在线看片| 亚洲国产精品久久久久秋霞不卡| 午夜欧美大片免费观看| 麻豆成人在线看| 日本一区二区在线播放| 欧美久久精品午夜青青大伊人| 成人欧美在线观看| 久久青草精品视频免费观看| 欧美高清视频在线| 欧美日韩中文在线| 国产精品大陆在线观看| 国产精品人人做人人爽| 91美女福利视频高清| 亚洲大尺度美女在线| 2019最新中文字幕| 午夜精品一区二区三区av| 国产综合久久久久久| 国产成人亚洲综合91| www.久久色.com| 黑人巨大精品欧美一区二区免费| 国产精品免费一区| 911国产网站尤物在线观看| 国产成人精品av在线| 日本成人在线视频网址| 51精品国产黑色丝袜高跟鞋| 国产综合福利在线| 97久久精品国产| 欧美亚洲成人xxx| 91av在线免费观看视频| 精品视频www| 亚洲第一av网站| 91高清视频在线免费观看| 欧美国产日韩一区二区三区| 亚洲精品456在线播放狼人| 国模精品一区二区三区色天香| 国产精品第3页| www.99久久热国产日韩欧美.com| 91九色国产在线| 国产精品视频久久| 国产精品久久久久久久av大片| 日韩美女免费线视频| 国产精品久久久久高潮| www.日本久久久久com.| 久久久伊人欧美| 亚洲精品中文字幕有码专区| 538国产精品视频一区二区| 亚洲第一区第一页| 尤物yw午夜国产精品视频明星| 国产精品无av码在线观看| 91av在线播放视频| 性色av香蕉一区二区| 日韩精品在线免费观看视频| 最近2019年好看中文字幕视频| 亚洲天堂日韩电影| 欧洲亚洲免费视频| 91精品国产99| 欧美亚洲国产精品| 国产精品久久av| 欧美亚洲国产另类| 欧美激情久久久久久| 欧美在线影院在线视频| 国内精品久久久| 亚洲iv一区二区三区| 亚洲精品永久免费| 欧美成人sm免费视频| 国产精品一区二区女厕厕| 国产精品久久中文| 国产精品青草久久久久福利99| 欧美一区二区大胆人体摄影专业网站| 日日摸夜夜添一区| 秋霞av国产精品一区| 91黄色8090| 欧美精品一区二区免费| 疯狂做受xxxx高潮欧美日本| 久久久久久久久综合| 精品国产乱码久久久久久虫虫漫画| 久久精品国产96久久久香蕉| 欧美日韩国产黄| 欧美精品手机在线| 日韩有码片在线观看| 亚洲激情视频网站| 国产精品入口免费视频一| 57pao成人永久免费视频| 91精品国产综合久久香蕉922| 久久精品视频在线观看| 国内精久久久久久久久久人| 欧美大片网站在线观看| 黑人巨大精品欧美一区二区| 九九热这里只有精品6| 欧美性猛交xxxx黑人猛交| 成人美女av在线直播| 国产精品久久久久久亚洲调教| 日韩在线免费高清视频| 亚洲精品午夜精品| 亚洲人成亚洲人成在线观看| 久久久久久久亚洲精品| 国产精品色午夜在线观看| 久久久国产91| 中文国产成人精品| 国产美女久久精品香蕉69| 欧美成人一区在线| 欧美日韩一区二区免费在线观看| 日韩有码片在线观看| 国外色69视频在线观看| 欧美激情啊啊啊| 狠狠做深爱婷婷久久综合一区| 国产激情999| 亚洲毛片一区二区| 日韩在线观看精品| 国产色综合天天综合网|