• Sql Server 内存用不上的解决办法


    最近两周,DB 服务器内存一直占用不上,给了32G,结果用的内存量一直在4G左右,真的很让人纠结,正常情况下,应该用到17G左右。结果排查了半天,原来是 AWE 开启后没有重启服务,真的是太难了,太纠结了,让我找了半天。重启服务后,内存占用慢慢上来了,到了正常水平。

    虽然没什么技术含量,但是查找的过程还是蛮有意思的,查找的方法也是能举一反三的,所以记录一下。

    首先检查的是服务器的版本,发现是  Windows 2003 X64,结果令人诧异的是装了 Sql Server 2008 X86,太让人纠结了,要是装 Sql  Server 2008 X64 不上更好吗?在 64位 系统上,32位 的 Sql Server 是最多只能占用4G 的,所以,也就把 排查 AWE 是否配置作为了主要入手点。

    直接运行 "sp_configure 'awe enabled'" ,却报出了 "The configuration option 'awe enabled' does not exist, or it may be an advanced option." 的错误,原来需要这样:


      exec sp_configure 'show advanced options', 1
      RECONFIGURE
      GO

      exec sp_configure


    之后发现 config_value 为 1 ,而 run_value 为 0,真的是很郁闷,明显的配置成功了,却没有运行成功,肯定是配置后没有重启 Sql Server 服务。

    exec sp_configure 是比较好用的,能检查一些配置项是否生效,主要通过对比 config_value 、run_value 和 默认值。

    下表列出了所有可用的配置选项、可能的设置范围及其默认值。配置选项按以下字母代码标记:

    • A = 高级选项,仅允许有经验的数据库管理员或认证的 SQL Server 技术人员进行更改,并且需要将 show advanced options 设为 1。

    • RR = 需要重新启动数据库引擎的选项。

    • SC = 自配置选项。

      配置选项 最小值 最大值 默认值

      Ad Hoc Distributed Queries (A)

      0

      1

      0

      affinity I/O mask(A,RR)

      -2147483648

      2147483647

      0

      affinity64 I/O mask(A,仅适用于 64 位版本的 SQL Server)

      -2147483648

      2147483647

      0

      affinity mask (A)

      -2147483648

      2147483647

      0

      affinity64 mask(A,仅适用于 64 位版本的 SQL Server)

      -2147483648

      2147483647

      0

      Agent XPs (A)

      0

      1

      0

      (当 SQL Server 代理启动时,改为 1。如果 SQL Server 代理设置为在安装过程中自动启动,则为 1。)

      allow updates(已过时。请勿使用。将在重新配置期间导致错误。)

      0

      1

      0

      awe enabled(A,RR)

      0

      1

      0

      blocked process threshold (A)

      0

      86400

      0

      c2 audit mode(A,RR)

      0

      1

      0

      clr enabled

      0

      1

      0

      common criteria compliance enabled (A,RR)

      0

      1

      0

      cost threshold for parallelism (A)

      0

      32767

      5

      cross db ownership chaining

      0

      1

      0

      cursor threshold (A)

      -1

      2147483647

      -1

      Database Mail XPs (A)

      0

      1

      0

      default full-text language (A)

      0

      2147483647

      1033

      default language

      0

      9999

      0

      default trace enabled (A)

      0

      1

      1

      disallow results from triggers (A)

      0

      1

      0

      fill factor(A,RR)

      0

      100

      0

      ft crawl bandwidth (max),请参阅 ft crawl bandwidth (A)

      0

      32767

      100

      ft crawl bandwidth (min),请参阅 ft crawl bandwidth (A)

      0

      32767

      0

      ft notify bandwidth (max),请参阅 ft notify bandwidth (A)

      0

      32767

      100

      ft notify bandwidth (min),请参阅 ft notify bandwidth (A)

      0

      32767

      0

      index create memory(A,SC)

      704

      2147483647

      0

      in-doubt xact resolution (A)

      0

      2

      0

      lightweight pooling(A,RR)

      0

      1

      0

      locks(A,RR,SC)

      5000

      2147483647

      0

      max degree of parallelism (A)

      0

      64

      0

      max full-text crawl range (A)

      0

      256

      4

      max server memory(A,SC)

      16

      2147483647

      2147483647

      max text repl size

      0

      2147483647

      65536

      max worker threads(A,RR)

      128

      32767

      (对于 32 位 SQL Server,建议最大为 1024;对于 64 位 SQL Server,建议最大为 2048。)

      0

      归零操作将根据处理器的数量自动配置最大工作线程数,可以使用公式 (256+(<处理器数> -4)* 8) 来计算 32 位 SQL Server 的线程数,64 位 SQL Server 的线程数为 32 位的 2 倍。

      media retention(A,RR)

      0

      365

      0

      min memory per query (A)

      512

      2147483647

      1024

      min server memory(A,SC)

      0

      2147483647

      8

      nested triggers

      0

      1

      1

      network packet size (A)

      512

      32767

      4096

      Ole Automation Procedures (A)

      0

      1

      0

      open objects(A,RR,已过时)

      0

      2147483647

      0

      PH_timeout (A)

      1

      3600

      60

      precompute rank (A)

      0

      1

      0

      priority boost(A,RR)

      0

      1

      0

      query governor cost limit (A)

      0

      2147483647

      0

      query wait (A)

      -1

      2147483647

      -1

      recovery interval(A,SC)

      0

      32767

      0

      remote access (RR)

      0

      1

      1

      remote admin connections

      0

      1

      0

      remote login timeout

      0

      2147483647

      20

      remote proc trans

      0

      1

      0

      remote query timeout

      0

      2147483647

      600

      Replication XPs 选项 (A)

      0

      1

      0

      scan for startup procs(A,RR)

      0

      1

      0

      server trigger recursion

      0

      1

      1

      set working set size(A,RR,已过时)

      0

      1

      0

      show advanced options

      0

      1

      0

      SMO and DMO XPs (A)

      0

      1

      1

      SQL Mail XPs (A)

      0

      1

      0

      transform noise words (A)

      0

      1

      0

      two digit year cutoff (A)

      1753

      9999

      2049

      user connections(A,RR,SC)

      0

      32767

      0

      User Instance Timeout(A,仅出现在 SQL Server 2005 Express Edition 中)

      5

      65535

      60

      user instances enabled(A,仅 SQL Server 2005 Express Edition 中提供)

      0

      1

      0

      user options

      0

      32767

      0

      Web Assistant Procedures (A)

      0

      1

      0

      xp_cmdshell (A)

      0

      1

      0

  • 相关阅读:
    MFC常用控件使用方法
    用CImage类来显示PNG、JPG等图片
    javascript
    gSoap学习笔记
    Linux增加Swap分区
    nagios 监控shell脚本
    新机器连接老机器遇到的ERROR
    linux下PS1命令提示符设置
    python基础篇之进阶
    mysql不能使用localhost登录
  • 原文地址:https://www.cnblogs.com/xunziji/p/1989990.html
Copyright © 2020-2023  润新知