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

說(shuō)說(shuō)Top子句對(duì)查詢計(jì)劃的影響

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維 SQL Server
之前我們談?wù)撨^(guò)SQL數(shù)據(jù)庫(kù)中"簡(jiǎn)單的"SELECT TOP中大家可能沒(méi)有注意到的細(xì)節(jié)。今天將和大家分享Top子句對(duì)查詢計(jì)劃的影響——簡(jiǎn)單說(shuō)慎用TOP。

1子查詢的影響

Nest loop適用于被連接的數(shù)據(jù)

如果兩個(gè)表做join操作,會(huì)有三種join方式: Nested join, Merge Join, Hash Join

Nested Join適用于結(jié)果集較小表

Hash Join適用于結(jié)果集很大的表

示例如下

  1. create table moderatetable1(id int identity(1,1) primary key, c1 int ,c2 int,c3 int,c4 int)  
  2. create table moderatetable2(id int identity(1,1) primary key, c1 int ,c2 int,c3 int,c4 int)  
  3. declare @n int=0  
  4. while @n<100000  
  5. begin 
  6. insert moderatetable1(c1,c2,c3,c4) values(@n,@n,@n,@n)  
  7. insert moderatetable2(c1,c2,c3,c4) values(@n,@n,@n,@n)  
  8. set @n+=1  
  9. end 
  10. create index index1 on moderatetable1(C1)  
  11. create index index1 on moderatetable2(C2)  
  12. go  
  13. set statistics io on 
  14. select t1.c1 from moderatetable1 t1 inner join moderatetable2 t2  
  15. on t1.c1=t2.c1  
  16. go 

下圖是上面查詢的執(zhí)行計(jì)劃和io統(tǒng)計(jì)信息

 

IO情況

(100000 行受影響)

表 'Worktable'。掃描計(jì)數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

表 'moderatetable2'。掃描計(jì)數(shù) 1,邏輯讀取 361 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

表 'moderatetable1'。掃描計(jì)數(shù) 1,邏輯讀取 176 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

(1 行受影響)

如果只想取前50行,可以指定top 50:

  1. select top 50 t1.c1 from moderatetable1 t1 inner join moderatetable2 t2 
  2. on t1.c1=t2.c1

 

(50 行受影響)

表 'moderatetable1'。掃描計(jì)數(shù) 50,邏輯讀取 124 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

表 'moderatetable2'。掃描計(jì)數(shù) 1,邏輯讀取 2 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

(1 行受影響)

我們看到,當(dāng)指定了top 50之后,查詢計(jì)劃成了nested join. 當(dāng)使用TOP時(shí),SQLSEVER會(huì)認(rèn)為這是一個(gè)較小的數(shù)據(jù)集,所以會(huì)使用nested join.對(duì)于這個(gè)查詢,IO的開(kāi)銷比較李小. 但SQLSERVER經(jīng)常會(huì)估計(jì)錯(cuò)誤(即使統(tǒng)計(jì)信息是正確的).

我們看一下下面的查詢:

  1. select top 500 t1.c1 from moderatetable1 t1 inner join moderatetable2 t2  
  2. on t1.c1=t2.c1 
 

 

(500 行受影響)

表 'moderatetable1'。掃描計(jì)數(shù) 500,邏輯讀取 1080 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

表 'moderatetable2'。掃描計(jì)數(shù) 1,邏輯讀取 4 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

(1 行受影響)

返回行數(shù)增加到了500,SQLSERVER仍然使用nested join,得到了較差的IO

隨著TOP的行數(shù)的增多,IO開(kāi)銷會(huì)越來(lái)越大. 但也不是總是這樣,當(dāng)top值達(dá)到一個(gè)臨界點(diǎn)后,執(zhí)行計(jì)劃會(huì)變更成hash join.

  1. select top 20000 t1.c1 from moderatetable1 t1 inner join moderatetable2 t2  
  2. on t1.c1=t2.c1 

 

(20000 行受影響)

表 'Worktable'。掃描計(jì)數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

表 'moderatetable2'。掃描計(jì)數(shù) 1,邏輯讀取 74 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

表 'moderatetable1'。掃描計(jì)數(shù) 1,邏輯讀取 176 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。

(1 行受影響)

慎用TOP ...

原文鏈接:http://www.cnblogs.com/stswordman/archive/2011/06/14/2080396.html

【編輯推薦】

  1. 分析TOP語(yǔ)句放到表值函數(shù)外,效率異常低下的原因
  2. 雙TOP二分法生成分頁(yè)SQL類
  3. SQL Server數(shù)據(jù)庫(kù)中簡(jiǎn)單的SELECT TOP
  4. 利用top構(gòu)造Sql Server分頁(yè)查詢
責(zé)任編輯:艾婧 來(lái)源: stswordman的博客
相關(guān)推薦

2011-08-04 13:07:59

數(shù)據(jù)庫(kù)查詢TOP子句

2020-12-04 07:51:24

CQRS模型查詢

2017-09-22 11:01:00

Oracle數(shù)據(jù)庫(kù)中直方圖

2025-05-09 09:07:45

2009-09-16 13:02:12

LINQ查詢子句

2013-09-29 09:49:04

編程生活方式

2011-06-01 17:45:22

SEO

2015-11-04 14:03:44

BYOD自帶設(shè)備企業(yè)

2010-04-02 15:04:14

Oracle遞歸查詢

2011-05-06 16:22:58

2014-07-22 09:25:48

LTEPTN4G

2022-11-17 08:00:18

JavaScript錯(cuò)誤性能

2022-09-27 15:00:18

物聯(lián)網(wǎng)IoT

2013-03-28 10:53:11

2011-05-24 16:01:51

OpenFlow影響

2021-10-13 22:38:42

數(shù)字貨幣貨幣人類

2022-12-15 08:00:38

JavaScript錯(cuò)誤性能

2023-09-05 15:48:00

2021-08-09 07:47:40

Git面試版本

2021-07-16 07:57:34

ReduxDOM組件
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品美女久久久久 | 欧美日韩一区二区三区不卡视频 | www成人免费| 亚洲性视频 | 久久综合久色欧美综合狠狠 | 综合色在线 | 亚洲午夜视频在线观看 | 亚洲精品国产成人 | 91色视频在线观看 | 无码国模国产在线观看 | 99色在线 | 日韩欧美视频免费在线观看 | 日韩中文在线观看 | 欧美二区在线 | 成人久久一区 | 久草免费在线视频 | 久久精品中文字幕 | 久久久精品视频免费看 | 五月婷婷激情 | 日韩精品视频中文字幕 | 久久精品欧美一区二区三区不卡 | 欧美日韩中文字幕在线 | 久久综合一区二区 | 免费国产一区二区 | 欧美日韩国产精品一区 | 久久伊人一区二区 | 日韩一级 | 精品久久久久久亚洲综合网 | 国产精品国产a | 色综合99 | 综合久久综合久久 | 亚洲成人精品 | 久久久日韩精品一区二区三区 | 久久久久精 | 九九免费视频 | 一区二区三区高清 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 天天插日日操 | 亚洲精品成人 | 日韩激情视频一区 | 国产精品一区在线 |