WEB开发网
开发学院数据库MSSQL Server 优化SQL Server的内存占用之执行缓存 阅读

优化SQL Server的内存占用之执行缓存

 2007-08-06 09:48:26 来源:WEB开发网   
核心提示: 11使用了11秒完成10000次查询,我们看一下SQL Server缓存中所占用的查询计划:Select Count(*) CNT,sum(size_in_bytes) TotalSizeFrom sys.dm_exec_cached_plans查询结果:共有2628条执行计划缓存在SQL

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的执行缓存和数据缓存占用。

执行结果如下:

优化SQL Server的内存占用之执行缓存

优化SQL Server的内存占用之执行缓存

优化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 )

输出:

上一页  1 2 3 4  下一页

Tags:优化 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接