優化SQL Server的內存占用之執行緩存SEO優化
導讀:2SEO優化在論壇上常見有朋友抱怨,說SQL Server太吃內存了。這里筆者根據經驗簡單介紹一下內存相關的調優知識營銷型網站建設網站建設教程。
首先說明一下SQL Server內存占用由哪幾部分組成。SQL Server占用的內存主要由三部分組成:數據緩存(Data Buffer)、執行緩存(Procedure Cache)、以及SQL Server引擎程序。SQL Server引擎程序所占用緩存一般相對變化不大,則我們進行內存調優的主要著眼點在數據緩存和執行緩存的控制上。本文主要介紹一下執行緩存的調優。數據緩存的調優將在另外的文章中介紹。 對于減少執行緩存的占用,主要可以通過使用參數化查詢減少內存占用。 1、使用參數化查詢減少執行緩存占用 我們通過如下例子來說明一下使用參數化查詢對緩存占用的影響。為方便試驗,我們使用了一臺沒有其它負載的SQL Server進行如下實驗。 下面的腳本循環執行一個簡單的查詢,共執行seo網站優化培訓10000次。 首先,我們清空一下SQL Server已經占用的緩存: dbcc freeproccache 然后,執行腳本:
復制代碼 代碼如下:
DECLARE @t datetime SET @t = getdate() SET NOCOUNT ON DECLARE @i INT, @count INT, @sql nvarchar(4000) SET @i = 20000 WHILE @i <= 30000 BEGIN SET @sql = 'SELECT @count=count(*) FROM P_Order WHERE MobileNo = ' + cast( @i as varchar(10) ) EXEC sp_executesql @sql ,N'@count INT OUTPUT', @count OUTPUT SET @i = @i + 1 END PRINT DATEDIFF( second, @t, current_timestamp )
輸出: DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。 11 使用了11秒完成10000次查詢。 我們看一下SQL Server緩存中所占用的查詢計劃: Select Count(*) CNT,sum(size_in_bytes) TotalSize From sys.dm_exec_cached_plans 查詢結果:共有2628條執行計劃緩存在SQL Server中。它們所占用的緩存達到: 92172288字節 = 90012KB = 87 MB。 我們也可以使用dbcc memorystatus 命令來檢查SQL Server的執行緩存和數據緩存占用。 執行結果如下:
執行緩存占用了90088KB,有2629個查詢計劃在緩存里,有1489頁空閑內存(每頁8KB)可以被數據緩存和其他請求所使用。 我們現在修改一下前面的腳本,然后重新執行一下dbcc freeproccache。再執行一遍修改后的腳本:
復制代碼 代碼如下:
DECLARE @t datetime SET @t = getdate() SET NOCOUNT ON DECLARE @i INT, @count INT, @sql nvarchar(4000) SET @i = 20000 WHILE @i <= 30000 BEGIN SET @sql = 'select @count=count(*) FROM P_Order WHERE MobileNo = @i' EXEC sp_executesql @sql, N'@count int output, @i int', @count OUTPUT, @i SET @i = @i + 1 END PRINT DATEDIFF( second, @t, current_timestamp )
輸出: DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員seo網站優化聯系。 1 即這次只用1秒鐘即完成了10000次查詢。 我們再看一下sys.dm_exec_cached_plans中的查詢計劃: Select Count(*) CNT,sum(size_in_bytes) TotalSize From sys.dm_exec_cached_plans 查詢結果:共有4條執行計劃被緩存。它們共占用內存: 172032字節 = 168KB。 如果執行dbcc memorystatus,則得到結果:聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-21 ,文章優化SQL Server的內存占用之執行緩存SEO優化主要講述緩存,內存,內存網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/seo_3996.html