多種暫存資料表效率的對比分析,效率對比分析

來源:互聯網
上載者:User

多種暫存資料表效率的對比分析,效率對比分析
多種暫存資料表效率的對比分析老帥(20141107)平時在寫預存程序的時候,經常會用到暫存資料表,而暫存資料表的用法到底有幾種,哪種效率更好呢?我們來做個對比分析。實驗資料:表a有400萬條記錄,只查詢一個欄位Title
1.  直接查詢--開啟時間分析SET STATISTICS TIME ON 
GO--查詢SELECT Title FROM a --結果SQL Server 執行時間:佔用時間 = 22013 毫秒。
2.變數表--開啟時間分析SET STATISTICS TIME ON 
GO--插入DECLARE @tmpA TABLE( Title VARCHAR(200))INSERT INTO @tmpASELECT Title FROM a--查詢SELECT * FROM @tmpA--結果SQL Server 執行時間:佔用時間 = 22913 毫秒。
3.暫存資料表--開啟時間分析SET STATISTICS TIME ON 
GO--插入CREATE TABLE #tmpA( Title VARCHAR(200))INSERT INTO #tmpASELECT Title FROM a--查詢SELECT * FROM #tmpA--結果SQL Server 執行時間:佔用時間 = 22743 毫秒。
4.不建立暫存資料表,直接插入到暫存資料表--開啟時間分析SET STATISTICS TIME ON 
GO--插入SELECT * INTO #tmpA  FROM(SELECT Title FROM a) AS b--查詢SELECT * FROM #tmpA--結果SQL Server 執行時間: 佔用時間 = 22671 毫秒。
5.使用WITH AS暫存資料表--開啟時間分析SET STATISTICS TIME ON;--插入WITH tmpA AS(SELECT Title FROM a)--查詢SELECT * FROM tmpA--結果SQL Server 執行時間:佔用時間 = 22188 毫秒。
通過以上的分析,很容易看出哪種方法效率更高了。在預存程序中盡量使用暫存資料表來儲存臨時資料,不要使用變數表。

寫了一個SQL語句,不使用暫存資料表運行了2分鐘,使用暫存資料表不到1秒,我想知道暫存資料表是怎提高執行效率的?

學過電腦原理沒、就好比cache快取、
暫存資料表不真正儲存資料、只是臨時直接分配一塊空間、直接在裡面進行執行
 
sql中用暫存資料表 或 建立視圖那個效率比較快

1,存在方式:
臨時存在於 伺服器記憶體中
視圖 無存在形式
2, 生命週期:
暫存資料表 Sql服務關閉就消失
視圖 你不刪它就不會消失
3,用途
暫存資料表 經常作為 中間轉接層
視圖 作為物理表的視窗
4,效率
暫存資料表因為在緩衝中,所以執行效率比較高
視圖 效率一般,但是節省I/O操作,節約資源
5,在預存程序使用時:
暫存資料表,效率很高{可能是資料量少,再加上暫存資料表是在緩衝中,所以執行效率高}
視圖 一般
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.