一. 測試背景
開發一個項目,數據庫用的是sqlserver。帳號表數據有一兩百萬,不算大,也不算小。在考慮是否要使用視圖,擔心效率,百度了下資料,眾說紛紜,好吧,實踐是最好的證明,那么我們就來測試吧。
開發一個項目,數據庫用的是sqlserver。帳號表數據有一兩百萬,不算大,也不算小。在考慮是否要使用視圖,擔心效率,百度了下資料,眾說紛紜,好吧,實踐是最好的證明,那么我們就來測試吧。
二. 測試環境
WIN8系統,內存8G,普通磁盤,sqlserver2012 。
三. 表和視圖結構(由於用的是公司的表,所以避免糾紛我把字段給塗掉了)


四. 數據量大小
AccountsData表和AccountsInfo各有400萬數據,那么視圖VAccounts毫無疑問也是400萬條數據。五. 開始測試
1. 我們查詢視圖的時候會利用到基礎表的索引嗎?這里我利用UserID來做WHERE查詢1000條數據。下面兩個截圖分表是查詢的結果,我們可以清楚到看到查基礎表AccountsInfo與查視圖VAccounts的效率是沒有差別的,所以我們可以確定查視圖同樣會利用到基礎表的索引。


2. 從上面的測試我們可以看到,利用索引查基礎表和視圖幾乎沒有什么區別,那么如果我們不利用索引字段來查詢呢?比如Like。下面是我查字段Nickname帶有“南方1999”字符的數據記錄,從兩次結果我們可以清楚的看到兩次查詢幾乎沒有任何區別。


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