永发信息网

为什么SQL Server使用很少的内存

答案:1  悬赏:20  手机版
解决时间 2021-02-23 02:51
  • 提问者网友:记得曾经
  • 2021-02-22 08:34
为什么SQL Server使用很少的内存
最佳答案
  • 五星知识达人网友:轻雾山林
  • 2021-02-22 09:57
默认情况下,SQLServer会依据可获得的系统资源动态改变它的内存需求。如果SQLServer需要更多的内存,它会要求操作系统确定是否有空闲的物理内存可用,并使用可用的内存。若SQLServer不再需要当前分配给它的内存,它就将内存释放给操作系统。当SQLServer动态使用内存时,它要求系统定期地检测可用的物理内存数量。SQLServer根据服务器活动增大或收缩高速缓冲存储器,以使可用物理内存保持在4MB到10MB之间。这就避免了系统进行换页操作。[也就是说,这种情况下SQLSERVER本身不会使物理可用内存小于4M,如果比较长的时间内都小于4M的话,则要看一下是不是该服务器上其它应用程序有问题]第二种情况:限制使用内存使用setworkingsetsize为sqlserver保留等于服务器内存设置的物理内存空间。即使是sqlserver进程此时是空闲的,系统也不会将SQLServer页交换出去。使用minservermemory保证sqlserver使用的最小内存。SQLServer启动时不立即分配minservermemory中所指定的内存量。但是,当内存使用由于客户端负荷而达到该值后,SQLServer将无法从已分配的缓冲池中释放内存。使用maxservermemory则防止SQLServer使用多于指定数量的内存,这样剩余的可用内存可以快速运行其它应用程序。SQLServer启动时不立即分配maxservermemory中所指定的内存。内存使用随SQLServer的需要而增长,直到达到maxservermemory中所指定的值。SQLServer无法超过该内存使用值,除非增加maxservermemory值。第一种情况比较适用于服务器专做sqlserver服务器的情况,第二种情况适用于为在同一台计算机上运行的其它应用程序保留一定的内存以便于快速响应。(另:如果想动态分配sqlserver的内存,则不要设置setworkingsetsize选项,使用默认值即可。至于这些参数如何设置参见另外的文档)监视SQLServer所使用的内存和计数器有助于确定:是否由于缺少可用物理内存存储高速缓存中经常访问的数据而导致瓶颈存在。如果是这样,SQLServer必须从磁盘检索数据。是否可通过添加更多内存或使更多内存可用于数据高速缓存或SQLServer内部结构来提高查询性能。SQLServer需要从磁盘读取数据的频率。与其它操作相比,例如内存访问,物理I/O会耗费大量时间。尽可能减少物理I/O可以提高查询性能。对sqlserver服务器内存的监视:Memory:AvailableBytes计数器表示当前进程可使用的物理内存字节数。如果小于4M或更小,说明计算机上总的内存可能不足,或某个程序没有释放内存●Memory:PageFaults/sec每秒软性页面失效的数目(包括有些可以直接在内存中满足而有些需要从硬盘读取)较page/sec只表明数据不能在内存指定工作集中立即使用。如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。Memory:Pages/sec计数器表示由于缺页处理而从磁盘取回的页数,或由于缺页处理而写入磁盘以释放工作集空间的页数。●PageReads/sec每秒发出的物理数据库页读取数。这一统计信息显示的是在所有数据库间的物理页读取总数。由于物理I/O的开销大,可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,使开销减到最小。●PageWrites/sec所发出的物理数据库页写入的数目。若
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯