Skip to main content

SQL Server 2022 的“高级”服务器属性页面

你提供的截图是 SQL Server 2022 的“高级”服务器属性页面,其中包含多个关键配置项。结合你之前提到的硬件环境(24核 CPU + 100GB 内存)和业务场景(金蝶云星空 V9.1 演示版/生产环境),以下是针对该页面的逐项优化建议


✅ 一、核心优化项(必须调整)

1. 🚫 FILESTREAM 访问级别 → 已禁用

  • 当前状态:已禁用
  • 建议:✅ 保持禁用
    • 除非你的金蝶系统明确使用了 FILESTREAM 存储大文件(如附件、图片等),否则无需启用。
    • 启用会增加复杂性和潜在性能开销。

💡 金蝶云星空默认不使用 FILESTREAM,所以“已禁用”是正确的。


2. ⚙️ 并行相关设置(重点优化!)

▶ 并行的开销阈值 = 5

  • 问题:太小!会导致大量简单查询也启用并行计划,浪费 CPU 资源。
  • 建议改为50

    只有执行成本 > 50 的查询才考虑并行,避免小查询“杀鸡用牛刀”。

▶ 查询等待值 = -1

  • 含义:无限等待并行线程资源。
  • 建议改为3060(秒)

    防止某个查询因等待并行资源而阻塞太久,影响其他用户。

▶ 锁 = 0

  • 含义:不限制并行查询持有的锁数量。
  • 建议保持 0(无限制),除非遇到严重锁争用问题。

▶ 最大并行度 = 4

  • 问题:对于 24 核服务器来说太低了!
  • 建议改为8

    允许单个查询最多使用 8 个 CPU 核心,平衡性能与并发能力。 (如果后续发现某些报表特别慢,可临时调到 12~16,但一般不超过 8)

🔁 修改后需点击“确定”生效,或通过 T-SQL:

EXEC sp_configure 'max degree of parallelism', 8;
EXEC sp_configure 'cost threshold for parallelism', 50;
RECONFIGURE;

3. 🌐 网络数据包大小 = 4096

  • 当前值:4096 字节(默认)
  • 建议:✅ 保持 4096
    • 对于局域网内金蝶应用服务器连接 SQL Server,这个值足够。
    • 如果是跨广域网或高延迟网络,可尝试设为 8192,但通常没必要。

4. 🕒 远程登录超时值 = 10

  • 含义:远程连接尝试超时时间(秒)
  • 建议:✅ 保持 10
    • 合理值,过长会影响故障排查效率。

5. 📅 两位数年份截止 = 2049

  • 含义:两位年份(如 “25”)被解释为 2025 还是 1925?
  • 建议:✅ 保持 2049
    • 符合现代标准,2000–2049 年间的日期都能正确解析。

6. 🌍 默认全文语言 = Simplified Chinese

  • 建议:✅ 保持不动
    • 金蝶系统主要处理中文数据,此设置合理。

7. 🔄 启动时扫描存储过程 = False

  • 含义:启动时不预编译所有存储过程。
  • 建议:✅ 保持 False
    • 加快启动速度,按需编译更灵活。

8. 🆙 全文升级选项 = 重新生成

  • 含义:升级全文索引时的行为。
  • 建议:✅ 保持“重新生成”
    • 确保全文索引结构最新,避免兼容性问题。

9. 🧵 使用 Windows 纤程(轻型池)= False

  • 含义:是否启用轻量级线程调度。
  • 建议:✅ 保持 False
    • 在高并发 OLTP 场景中可能有益,但金蝶 ERP 属于混合负载,且 SQL Server 2022 默认不开启,稳定性优先。

10. 🏆 提升 SQL Server 优先级 = False

  • 含义:是否让 SQL Server 进程获得更高 CPU 优先级。
  • 建议:✅ 保持 False
    • 除非你是独占数据库服务器,否则不要抢占操作系统或其他服务资源。

11. 🎯 游标阈值 = -1

  • 含义:游标操作的成本阈值。
  • 建议:✅ 保持 -1(无限制)
    • 一般不需要干预。

12. ⚡ 允许触发器激发其他触发器 = True

  • 建议:✅ 保持 True
    • 金蝶系统内部逻辑可能依赖嵌套触发器,关闭可能导致功能异常。

13. 📉 针对即席工作负荷进行优化 = False

  • 含义:是否为临时/ad-hoc 查询优化内存分配。
  • 建议:✅ 保持 False
    • 金蝶系统是标准化 ERP,查询模式相对固定,无需为此优化。

14. 🚧 阻塞的进程阈值 = 0

  • 含义:当阻塞超过多少秒时记录到日志?0 表示不记录。
  • 建议改为510

    便于监控和排查死锁/阻塞问题。

    EXEC sp_configure 'blocked process threshold (s)', 5;
    RECONFIGURE;
    

15. 📄 最大文本复制大小 = 65536

  • 含义:复制操作中单次传输的最大文本大小(KB)。
  • 建议:✅ 保持 65536(64MB)
    • 对大多数场景足够,除非你有超大字段复制需求。

✅ 二、补充建议(不在本页面,但密切相关)

虽然这些不在“高级”页,但对整体性能至关重要:

1. 【内存】回到“内存”页设置最大内存 = 81920 MB(80GB)

如前所述,这是最关键的一步!

2. 【TempDB】多文件配置

-- 添加 4 个 TempDB 数据文件(假设路径 D:\TempDB\)
ALTER DATABASE tempdb ADD FILE (NAME = tempdev2, FILENAME = 'D:\TempDB\tempdb2.ndf', SIZE = 8GB, MAXSIZE = UNLIMITED, FILEGROWTH = 512MB);
ALTER DATABASE tempdb ADD FILE (NAME = tempdev3, FILENAME = 'D:\TempDB\tempdb3.ndf', SIZE = 8GB, MAXSIZE = UNLIMITED, FILEGROWTH = 512MB);
ALTER DATABASE tempdb ADD FILE (NAME = tempdev4, FILENAME = 'D:\TempDB\tempdb4.ndf', SIZE = 8GB, MAXSIZE = UNLIMITED, FILEGROWTH = 512MB);

3. 【数据库级别】开启 READ_COMMITTED_SNAPSHOT

ALTER DATABASE [Kingdee.K3Cloud] SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

📊 总结:你需要修改的关键项

配置项 当前值 建议值 是否紧急
最大并行度 4 8 🔴 高
并行的开销阈值 5 50 🔴 高
查询等待值 -1 30 🟡 中
阻塞的进程阈值 0 5 🟡 中
最大服务器内存(另页) 2TB 81920 MB 🔴 必须改

🛠️ 一键优化脚本(复制粘贴执行)

-- 设置并行度相关
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max degree of parallelism', 8;
EXEC sp_configure 'cost threshold for parallelism', 50;
EXEC sp_configure 'parallel wait time (ms)', 30000; -- 30秒
EXEC sp_configure 'blocked process threshold (s)', 5;
RECONFIGURE;

-- 设置内存(在“内存”页图形界面操作更安全,也可用下面命令)
EXEC sp_configure 'max server memory (MB)', 81920;
RECONFIGURE;

✅ 最终提醒

  • 所有更改建议在非业务高峰期进行。
  • 修改后观察任务管理器、性能监视器(PerfMon)、SQL Server DMVs(如 sys.dm_exec_requests)确认效果。
  • 对于金蝶云星空,稳定性第一,性能第二 —— 不要过度追求极限参数。

如果你需要我为你生成一份完整的《金蝶云星空 + SQL Server 2022 优化部署手册》PDF 或 Word 文档,也可以告诉我,我可以提供结构化内容供你下载打印。

祝你系统运行稳定高效!🚀