SQLSERVER語句優化及性能調試 第一篇 效率至上

第一課 如何正確使用時間內的數據檢索語句。
案例1: 關於DateDiff語句的優化。
大數據表:Tang_UserInfo用戶表,數據量和列數量統計如圖1和2所示。



其中有個名叫CreateDate的列爲該用戶註冊的時間,那麼我想從這個23萬條的數據中檢索出來2013年註冊的用戶總量,該如何處理呢?
一般我們會想到SQLSERVER內置的一個函數,叫做DateDiff,那麼我們看一下這個函數的執行效率如何?
使用語句檢索出來的數據量以及花費的時間如下圖所示。



那麼我們把DateDiff這個函數拋棄,使用“>”和“<”處理後的結果又會如何呢?是否可以檢索出來我們要的數據呢?下面的截圖會告訴大家。



搜索出來的結果數據還是這麼多,但是效率上提高了,這是爲什麼呢?
作爲SqlServer內置函數存在的DateDiff,在執行的過程中需要再解釋,跟使用“>”和“<”邏輯關係拼結在語句相比,在執行效率上很大打折扣。
那麼我們在這個基礎上再進行一下大數據執行的效率比例。
先使用“>”和“<”號邏輯關係的語句測試一下。



再使用內置函數DateDiff測試一下。



由此可以看出來內置函數DateDiff果然在執行的時候進行了再分析。
那麼在以後的使用過程中如果可以用“>”和“<”號這種邏輯關係所能拼結並能夠正確得到結果的使用,可以適當的拋棄使用DateDiff這種SqlServer內置的函數,會相應的提高編寫的Sql語句執行的效率。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章