SQL SERVER2014内存使用到68G,正常吗?

fionazou 2016-05-09 08:51:05
我SQL服务器刚升级成2014,操作系统是window server2012 R2,64位操作系统,内存96G,目前内存占用到了68G,请问正常吗?我数据库28G。
...全文
3042 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2017-06-27
  • 打赏
  • 举报
回复
一年多的贴还没有结, 论坛里没有强行结贴的机制吗?
wang_peng_yl 2017-06-27
  • 打赏
  • 举报
回复
正常的,数据库有缓存机制,占的内存都存数据了,当然你最好还是限制一下大小
Tiger_Zhao 2016-05-23
  • 打赏
  • 举报
回复
正常。
数据库就是用空间换时间。
这是预先占用,并不等于里面填满了数据。
专用的数据库服务器就是应该把尽可能多的内存分配给 SQL Server。
  • 打赏
  • 举报
回复
正常。 当然也可以在sqlserver做内存限制。
中国风 2016-05-09
  • 打赏
  • 举报
回复
使用的用户或操作频繁使用更大都正常,要根据自己的业务量去判断是否正常,通常是DB没有有效的释放会造成占用内存 个人使用方法,判断前看一下总占用内存,再判断缓冲池占用内存多少再去清空 USE master GO

DECLARE @Memory DECIMAL(18,2)


/* --计算缓冲池占用内存
SELECT 	
	@Memory=COUNT(row_count)*8.0/1024.0 
FROM sys.dm_os_buffer_descriptors
*/
--也可用进程占用内存
SELECT @Memory=physical_memory_in_use_kb/1024 FROM sys.dm_os_process_memory WITH (NOLOCK) OPTION (RECOMPILE);


IF  @Memory>102400				--100G时释放内存
BEGIN 
	DBCC FREEPROCCACHE			--删除计划缓存中的所有元素
	DBCC FREESESSIONCACHE		--刷新针对 Microsoft SQL Server 实例执行的分布式查询所使用的分布式查询连接缓存
	DBCC FREESYSTEMCACHE('All')with MARK_IN_USE_FOR_REMOVAL		--从所有缓存中释放所有未使用的缓存条目
	
	CHECKPOINT				--将当前数据库的全部脏页写入磁盘
	DBCC DROPCLEANBUFFERS	--从缓冲池中删除所有清除缓冲区
	EXEC sp_configure 'show advanced options', 1;
	EXEC sys.sp_configure N'max server memory (MB)', '102400' --设置最大值为100G
	WAITFOR DELAY '00:00:05'
	EXEC sys.sp_configure N'max server memory (MB)', '2147483647'--设置为无限制
	RECONFIGURE WITH OVERRIDE
END
GO
kingtiy 2016-05-09
  • 打赏
  • 举报
回复
64位系统用内存肯定可以到68G.没问题. 另外,内存大小超过数据库大小,个人觉得好像比较少见,确认只有那一个库的业务在跑吗?
吉普赛的歌 2016-05-09
  • 打赏
  • 举报
回复
内存使用 99% 都不足为奇, 有多少就会用多少, 不要小气也不要害怕。 不过最好限制一下最大内存。 http://blog.csdn.net/yenange/article/details/50509362
唐诗三百首 2016-05-09
  • 打赏
  • 举报
回复
检查服务器CPU, Windows, SQL Server版本是否都是64位版的, 如果是,没问题.

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧