第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

SELECT * 速度比 SELECT [字段1],[字段2]... 還快

SELECT * 速度比 SELECT [字段1],[字段2]... 還快

www說 2018-07-27 09:09:24
SQLSERVER 中,有個(gè)語句用SELECT * 只要1S,用SELECT [字段1],[字段2]...卻要30幾秒,這是什么問題了?
查看完整描述

3 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

這個(gè)要看具體的執(zhí)行計(jì)劃。首先我們要分析清楚select *和select a1,a2,a3的區(qū)別。

首先sql server是按照數(shù)據(jù)塊來存取數(shù)據(jù)的,一個(gè)數(shù)據(jù)塊是8K,當(dāng)你需要的數(shù)據(jù)在某個(gè)數(shù)據(jù)塊上時(shí),sql server會將整個(gè)8K的數(shù)據(jù)從磁盤上加載到內(nèi)存中,而不僅僅是讀取你需要的a1、a2這幾個(gè)字段,從這種意義上來說,select *和select a1,a2,a3這種寫法速度是一樣的。

但是有一個(gè)問題在于有索引,當(dāng)有索引的時(shí)候就不一樣了,比如a1, a2, a3都在索引字段里面(包括inclue),這個(gè)時(shí)候如果select a1, a2,a3的話只要掃描索引就好了,而select *卻要掃描表,通常這種情況下select a1, a2, a3要快一些。但是如果只有a1, a2在索引中,而a3不在索引中,那么select a1, a2, a3的時(shí)候就需要先掃描索引得到a1, a2,再通過索引找到表中對應(yīng)的數(shù)據(jù)塊取出來a3(注意取a3的時(shí)候是8K數(shù)據(jù)塊一起取得),這時(shí)你會發(fā)現(xiàn)select a1, a2, a3又沒什么優(yōu)勢了。當(dāng)取得數(shù)據(jù)特別多的時(shí)候,掃描索引再去查找表,反而不如直接掃描表來的快,所以有時(shí)可能select *反而快。

所以要具體問題具體分析,具體的要看查詢計(jì)劃,確定問題所在。


查看完整回答
反對 回復(fù) 2018-08-01
?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

怎么會有如此神奇之事,把兩者執(zhí)行計(jì)劃貼出來對比下

查看完整回答
反對 回復(fù) 2018-08-01
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

建議比較一下兩者的執(zhí)行計(jì)劃

查看完整回答
反對 回復(fù) 2018-08-01
  • 3 回答
  • 0 關(guān)注
  • 1044 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號