在 Debian 上运行 SQL Server(Microsoft SQL Server on Linux) 感觉“慢”,通常不是单一原因,而是多个层面叠加。下面按最常见原因 → 排查方法 → 解决建议来说明。
SQL Server 对磁盘非常敏感,尤其是:
典型慢场景:
✅ 排查:
iostat -x 1
看:
%util 接近 100%await 很高(>10ms)✅ 建议:
SQL Server 在 Linux 上:
✅ 检查:
free -h
swapon --show
✅ 建议:
✅ 检查:
top
htop
✅ 建议:
⚠️ 注意:
可能问题:
✅ 建议:
Linux 上:
✅ 建议:
-- 增加 tempdb 数据文件
ALTER DATABASE tempdb
ADD FILE (NAME = temp2, FILENAME = '/var/opt/mssql/data/tempdb2.ndf', SIZE = 50MB);
一般:
✅ 检查:
ping <db-server>
nslookup <db-server>
✅ 建议:
✅ 检查:
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
✅ 建议:
UPDATE STATISTICS 表名;
/opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096
systemctl restart mssql-server
noatime,nodiratime
| 检查项 | 命令 |
|---|---|
| 内存 | free -h |
| Swap | swapon --show |
| 磁盘 | iostat -x 1 |
| CPU | top |
| SQL 版本 | sqlcmd -Q "SELECT @@VERSION" |
| 慢查询 | SET STATISTICS TIME ON |
Debian 上 SQL Server 慢,90% 是:磁盘慢 + 内存不足 + 非官方支持环境
如果你愿意,可以告诉我:
我可以直接帮你定位到具体原因。