程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL語句機能優化(續)

SQL語句機能優化(續)

編輯:MSSQL

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語句機能優化,小編就給年夜家引見到這裡,願望對年夜家有所贊助!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved