当前位置:首页 » 编程语言 » 慢sql会消耗虚拟机内存吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

慢sql会消耗虚拟机内存吗

发布时间: 2022-12-08 09:13:44

❶ 虚拟机安装sql server占用服务器端口么

虚拟机安装sql server不占用服务器端口的端口。

相关知识:
1、端口建立在每一个IP上,每一个IP可以有一套自已的端口。我们可以给一台电脑设定多个IP,在这种情况下,它就可以有对应每一个IP的多套端口。
2、虚拟机是在宿主机(真实机)上安装一个软件,让它模拟出一台独立的电脑。如果你不设定虚拟机与真实机共享IP的话,可以将虚拟机当成另外存在的一台电脑对待。
3、当前主流的虚拟机软件主要是 微软的虚拟机系列 与 VMware公司的虚拟机系列,另外VirtualBox也有一部分人用,其它的就比较小众了功能也不是很完善。
4、sql server的主要服务端口是1433(服务端口)和1434(监听端口),安装过程中如果提示80端口被占用,那是因为选用了需要WEB服务的相关组件,而服务器上起动了别的已占用该端口的组件,常见的是服务器上的IIS网页服务已安装启动。
5、安装虚拟机所需的内存视你安装的虚拟机中的系统正常运行所虚内存而定。
比如在当前来说,在win7的电脑上的虚拟机里要安装一个XP的系统,要让它正常运行一般需要1G左右内存,此时,你的电脑上的内存就不应该少于:
2G(win7本身要用)+1G(XP虚拟机要用)=3G
低于这个值,虚拟机起动对系统运行速度就会比较明显。

❷ SQL占用服务器内存太多求助!

1. 60个DB本身不是瓶颈; 如果某些数据库平时用不上也可以将它们分离出来, 即便不分离, 若长期没有操作也不会占用服务器内存资源和CPU资源
2. 32G内存占满不是太大的问题. SQL将数据尽可能地加载到内存中可以加快查询的速度, 若想限制SQL的内存占用量, 要在SQLServer上进行配置,限定内存使用上限
3. 要改善查询速度慢可能还得从应用方面入手

❸ 我的电脑不知怎么了,sql server服务占用了大量内存,求助处理.

使用两个服务器内存选项 min server memory 和 max server memory 重新配置缓冲池中 Microsoft® SQL Server™ 实例所使用的内存量(以 MB 为单位)。

默认情况下,SQL Server 能够可用系统资源动态改变它的内存需求。min server memory 的默认设置为 0,max server memory 的默认设置为 2147483647。可以为 max server memory 指定的最小内存量为 4 MB。

当 SQL Server 动态使用内存时,它要求系统定期地检测可用的物理内存数量。SQL Server 根据服务器活动增大或收缩高速缓冲存储器,以使可用物理内存保持在 4 MB 到 10 MB 之间。这就避免了 Microsoft Windows NT® 4.0 或 Windows® 2000 换页。如果有较少可用内存,则 SQL Server 将内存释放给 Windows NT 或 Windows 2000,后者通常继续使用可用列表。如果有更多可用内存,则 SQL Server 将内存再提交到高速缓冲存储器。SQL Server 仅在其工作负荷需要更多的内存时才增加高速缓冲存储器的内存;处于休眠状态的服务器不增大其高速缓冲存储器。

允许 SQL Server 动态使用内存是推荐使用的配置;然而,可以手工设置内存选项并且可以禁止 SQL Server 动态使用内存的能力。在设置 SQL Server 使用的内存量之前,应确定适当的内存设置,方法是从全部物理内存中减去 Windows NT 4.0 或 Windows 2000 以及 SQL Server 的任何其它实例所需要的内存(以及其它系统使用的内存,如果该计算机不为 SQL Server 专用)。这就是可以分配给 SQL Server 使用的最大内存量。

说明 如果您已经安装并且运行了全文检索支持功能(Microsoft 检索服务,亦即 MSSearch),那么您必须手工设置 max server memory 选项,为 MSSearch 服务运行预留足够的内存。max server memory 设置必须与 Windows NT 4.0 虚拟内存大小一起进行调整,以便使得保留给全文检索的虚拟内存是物理内存的 1.5 倍(不包括计算机中其它服务所需的虚拟内存)。应这样配置 SQL Server max server memory 选项,使得留有足够的虚拟内存满足全文检索内存需求。全部虚拟内存 -(SQL Server 最大虚拟内存 + 其它服务需要的虚拟内存)>= 1.5 倍物理内存。

手工设置内存选项
手工设置 SQL Server 内存选项有两种主要方法:

第一种方法,设置 min server memory 和 max server memory 为同一数值。该数值与分配给 SQL Server 的固定内存量相对应。

第二种方法,把 min server memory 和 max server memory 数量设置到一个范围段内。这种方法在系统或数据库管理员希望配置 SQL Server 实例,使其适应在同一台计算机上运行的其它应用程序的内存需求时很有用。
min server memory 保证了 SQL Server 实例使用的最小内存量。SQL Server 启动时不立即分配 min server memory 中所指定的内存量。但是,当内存使用由于客户端负荷而达到该值后,SQL Server 将无法从已分配的缓冲池中释放内存,除非减少 min server memory 值。

说明 不保证 SQL Server 分配 min server memory 中所指定的内存量。如果服务器上的负荷从不需要分配 min server memory 中所指定的内存量,则 SQL Server 将以较少的内存运行。

max server memory 则可防止 SQL Server 使用多于指定数量的内存,这样剩余的可用内存可以快速运行其它应用程序。SQL Server 启动时不立即分配 max server memory 中所指定的内存。内存使用随 SQL Server 的需要而增长,直到达到 max server memory 中所指定的值。SQL Server 无法超过该内存使用值,除非增加 max server memory 值。

重要 服务器启动时,在地址窗口扩展 (AWE) 内存模式下运行的 SQL Server 实例确实分配 max server memory 中所指定的全部内存量。有关 AWE 内存的更多信息,请参见管理 AWE 内存。

在应用程序启动和 SQL Server 释放内存之间将有一个较短的时间延迟,使用 max server memory 可以避免该延迟,从而可以提高其它应用程序的性能。仅当与 SQL Server 共享同一台服务器的新应用程序在启动时显示有问题时,才设置 min server memory。最好让 SQL Server 使用全部可用的内存。

如果手工设置内存选项,应确保适当地设置用于复制的服务器。如果服务器是一个远程分发者或者是一个出版者/分发者的组合,则必须为它分配至少 16 MB 的内存。

理想情况下,在不引起系统交换页面到磁盘的前提下,应尽可能多地分配内存给 SQL Server。该值因系统不同而有很大差别。例如,在一个 32 MB 系统中,分配 16 MB 给 SQL Server可能是合适的;在一个 64 MB 系统中,则可能适合分配 48 MB。

说明 当增大 SQL Server 内存数量时,应确保有足够的磁盘空间来容纳操作系统虚拟内存的支持文件(Pagefile.sys)。有关虚拟内存支持文件的更多信息,请参见 Windows NT 4.0 和 Windows 2000 文档。

指定的内存数量必需满足 SQL Server 的静态内存(核心开销、打开的对象、锁等等)以及数据缓存(亦称高速缓存)的需要。

如有必要,在系统监视器(在 Windows NT 4.0 中为性能监视器)中使用统计功能帮助调整内存值。应该只有在您添加或减少内存,或者改变系统使用方式时改变这些值。

虚拟内存管理器
Windows NT 4.0 和 Windows 2000 随时提供一个 4 GB 的虚拟地址空间,其中较低的 2 GB 地址空间对于每个进程是专用的,并可由应用程序使用。较高的 2 GB 地址由系统保留使用。Windows NT Server 企业版为每个 Microsoft Win32® 应用程序提供 4 GB 的虚拟地址空间,其中较低的 3 GB 地址空间是每个进程专用的,并可由应用程序使用。较高的 1 GB 地址由系统保留使用。

4-GB 的地址空间由 Windows NT V虚拟内存管理器(VMM)映射到可用的物理内存空间。取决于硬件平台的支持,可用的物理内存可以高达 4 GB。

Win32 应用程序(如 SQL Server)只能识别虚拟(或称逻辑)地址,而不是物理地址。在给定的某一时刻一个应用程序使用多少物理内存由可用的物理内存和 VMM所决定。应用程序不能直接控制物理内存。

象 Windows NT 4.0 或 Windows 2000 这样的虚拟地址系统允许过度提交物理内存,这使虚拟内存和物理内存的比率大于 1:1。因此,较大的程序可以运行在具有不同物理内存配置的计算机上。然而应用比组合平均工作集大得多的虚拟内存可能导致较差的性能。

SQL Server 可以将内存锁定为工作集。因为内存被锁定了,当运行其它应用程序时可能出现内存不足的错误。如果出现内存不足的错误,则可能是分配给 SQL Server 的内存太多。set working set size选项(通过 sp_configure 或 SQL Server 企业管理器设置) 可以使锁定内存为工作集功能失效。默认情况下,set working set size 选项处于禁用状态。

手工配置给 SQL Server 多于物理内存数量的虚拟内存会导致性能较低。而且,必须考虑 Windows NT 4.0 或 Windows 2000 操作系统的内存需求(大约 12 MB,因应用程序的开销而略有不同)。当 SQL Server 的配置参数上调时,系统的开销可能也会增长,因为 Windows NT 4.0 或 Windows 2000 需要更多的常驻内存来支持附加的线程、页表等。允许 SQL Server to 动态使用内存可以避免内存相关的性能问题。

min server memory 和 max server memory 是高级选项。如果要使用 sp_configure 系统存储过程改变该选项,必须把 show advanced options 设置为 1,该选项立即生效(无需停止并重新启动服务器)。

❹ SQL Server占用内存过高,什么原因导致的,用什么方法可以解决

经常使用MSSQL的朋友都会发现一个小小的网站在运行若干天后MSSQL就会把服务器上所有的内存都吃光,此时你不得不重新启动一下服务器或mssql来释放内存,有人认为是 MSSQL有内存泄露问题,其实不然,微软给我们了明确说明:在您启动SQL Server 之后,SQL Server内存使用量将会持续稳定上升,即使当服务器上活动很少时也不会下降。另外,任务管理器和性能监视器将显示计算机上可用的物理内存稳定下降,直到可用内存降到 4 至 10 MB 为止。

仅仅出现这种状态不表示内存泄漏。此行为是正常的,并且是 SQL Server 缓冲池的预期行为。
默认情况下,SQL Server 根据操作系统报告的物理内存加载动态增大和收缩其缓冲池(缓存)的大小。只要有足够的内存可用于防止内存页面交换(在 4 至 10 MB 之间),SQL Server缓冲池就会继续增大。像在与SQL Server 分配内存位于相同计算机上的其他进程一样,SQL Server 缓冲区管理器将在需要的时候释放内存。SQL Server每秒可以释放和获取几兆字节的内存,从而使它可以快速适应内存分配变化。
更多信息
您可以通过服务器内存最小值和服务器内存最大值配置选项设置 SQL Server数据库引擎使用的内存(缓冲池)量的上下限。在设置服务器内存最小值和服务器内存最大值选项之前,请查阅以下 Microsoft 知识库文章中标题为'内存'一节中的参考信息:319942 HOW TO:Determine Proper sql server(WINDOWS平台上强大的数据库平台) Configuration Settings(确定正确的 sql server(WINDOWS平台上强大的数据库平台) 配置设置)
请注意,服务器内存最大值选项只限制 SQL Server 缓冲池的大小。服务器内存最大值选项不限制剩余的未保留内存区域,sql server(WINDOWS平台上强大的数据库平台) 准备将该区域分配给其他组件,例如扩展存储过程、COM 对象、以及非共享 DLL、EXE 和 MAPI 组件。由于前面的分配SQL Server专用字节超过服务器内存最大值配置是很正常的。有关此未保留内存区域中分配的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:316749 PRB:在使用大量数据库时可能没有足够的虚拟内存

下面我们就来实战如何限制MSSQL内存使用:
第一步:打开企业管理器双击进入要修改的MSSQL.
第二步:在左侧MSSQL上点击右键,选择属性,弹出SQL Server属性(配置)对话框(最好打上SQL SP4补丁)
第三步:点击内存选项卡. 在这里,你会看到MSSQL默认设置为使用最大内存,也就是你所有的内存,根据你的需要,设置它的最大值(一般为物理内存-128M)和最小值(一般为最大内存的1/4)吧.
第五步:设置完毕,重启MSSQL服务,配置即可生效!