SqlServer視圖查詢效率測試


一.  測試背景
開發一個項目,數據庫用的是sqlserver。帳號表數據有一兩百萬,不算大,也不算小。在考慮是否要使用視圖,擔心效率,百度了下資料,眾說紛紜,好吧,實踐是最好的證明,那么我們就來測試吧。

二.  測試環境
WIN8系統,內存8G,普通磁盤,sqlserver2012 。

三.  表和視圖結構(由於用的是公司的表,所以避免糾紛我把字段給塗掉了)
 
 
 
 

四. 數據量大小

AccountsData表和AccountsInfo各有400萬數據,那么視圖VAccounts毫無疑問也是400萬條數據。

五. 開始測試
1. 我們查詢視圖的時候會利用到基礎表的索引嗎?這里我利用UserID來做WHERE查詢1000條數據。下面兩個截圖分表是查詢的結果,我們可以清楚到看到查基礎表AccountsInfo與查視圖VAccounts的效率是沒有差別的,所以我們可以確定查視圖同樣會利用到基礎表的索引。
 
 
2. 從上面的測試我們可以看到,利用索引查基礎表和視圖幾乎沒有什么區別,那么如果我們不利用索引字段來查詢呢?比如Like。下面是我查字段Nickname帶有“南方1999”字符的數據記錄,從兩次結果我們可以清楚的看到兩次查詢幾乎沒有任何區別。
 
 

. 測試結果

可以看到在sqlserver2012中視圖不會影響查詢效率,所以我們可以放心的使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM