SQL語句機能優化(續)。本站提示廣大學習愛好者:(SQL語句機能優化(續))文章只能為提供參考,不一定能成為您想要的結果。以下是SQL語句機能優化(續)正文
上篇引見了一下本身在項目中碰到的一種應用sql語句的優化方法(機能優化——SQL語句),然則說的不敷完全。在比較的進程中,未將max函數斟酌在內,經人提示以後趕忙做了一個測試,測試進程中又學到了很多的器械。
前次用的是select count(*) 和select * 的履行效力成績,由於我的需求是獲得數據的一個總數來主動給出新的id,然後網友給出可使用max的方法給出新id。其實這也是一種不錯的思緒(其時我們也用過該函數,只不外由於體系數據自己成績,不合適用該函數),然後我就對max函數的機能做了一下測試。
第一次測試:
Declare @dddd Datetime Set @dddd=GETDATE() select MAX(num) from T_BasicInformation select [消費時光]=DATEDIFF(ms,@dddd,GetDate())
測試成果:
經由過程比較發明,應用該辦法的履行效力貌似不如select count(*) 的效力高(其時測得的時光為3ms),那末現實真的是如許嗎?後來查了一些材料,發明其實max的效力絕對來講會更高,那末為何我們的測試成果會是如許的呢?我們接著停止測試
第二次測試:
①語句一
Declare @ddd Datetime Set @ddd=GETDATE() select MAX(id) from t_SellLogDetail select [消費時光]=DATEDIFF(ms,@ddd,GetDate())
測試成果:
②語句二
Declare @dddd Datetime Set @dddd=GETDATE() select MAX(foodId) from t_SellLogDetail select [消費時光]=DATEDIFF(ms,@dddd,GetDate())
測試成果:
③語句三
Declare @ddddd Datetime Set @ddddd=GETDATE() select MAX(orderId) from t_SellLogDetail select [消費時光]=DATEDIFF(ms,@ddddd,GetDate())
測試成果:
做完第二次測試會發明,異樣的表,分歧的字段,其max函數履行後果就紛歧樣。然後就從數據類型動身了,數據類型以下:
如許的話,我們的測試成果分歧成績就水到渠成了,在max函數的履行進程中,會依據數據類型的分歧而有分歧的履行效力。假如是主鍵且為整型,其效力是最高的;而非主鍵時,int的效力又會高於字符類型。其實這些都很輕易懂得,各有各的應用方法。
小結:
第一次測試完以後就沒有斟酌其他的器械,後來又發明在max中還有一些須要留意的處所。所以,在我們平凡的進修中,必定要學會拓展進修,不要僅僅限於本身想要的成果。獲得成果雖然是體系須要的,然則關於處於進修期的我們,這遠遠不敷,我們要赓續的摸索,能力博得更年夜的提高。
關於SQL語句機能優化,小編就給年夜家引見到這裡,願望對年夜家有所贊助!