Debian环境下SQL Server最佳实践
sudo apt update && sudo apt upgrade),并安装必要依赖(curl、gnupg、apt-transport-https),避免后续安装因依赖缺失失败。curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg),创建存储库文件(/etc/apt/sources.list.d/mssql-server.list),内容为:deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/debian/12/prod/ stable main(根据Debian版本调整URL),确保软件包来源可信。sudo apt install -y mssql-server安装SQL Server,安装完成后运行sudo /opt/mssql/bin/mssql-conf setup设置SA用户密码(需记住,用于后续连接),并根据服务器内存调整初始配置(如内存分配)。mssql-tools包(sudo apt install -y mssql-tools unixodbc-dev),获取sqlcmd工具,用于命令行连接与管理(示例:sqlcmd -S localhost -U SA -P <YourPassword>)。mssql-conf调整max server memory(如设置为物理内存的70%-80%),避免内存耗尽导致系统崩溃。max degree of parallelism(MAXDOP,建议设置为CPU核心数的1/2或1/4,避免过度并行)。WHERE、JOIN、ORDER BY的列创建索引(如主键、外键);使用覆盖索引(包含查询所需的所有列),减少回表操作。ALTER INDEX ... REBUILD(碎片率>30%)或ALTER INDEX ... REORGANIZE(碎片率10%-30%),保持索引效率;避免过多索引(单表不超过5个),减少写入开销。SELECT *(只查询所需列),减少数据传输量;避免在WHERE子句中对索引字段进行运算(如WHERE id + 1 = 5)、模糊查询(如LIKE '%abc')、隐式类型转换(如字符串与数字比较)。EXPLAIN分析执行计划,识别慢查询(关注type、rows、Extra列);用UNION ALL替代OR连接(OR可能导致全表扫描);批量操作(如INSERT INTO ... VALUES (...), (...))替代循环单条插入,减少网络往返。min server memory(如物理内存的10%),避免SQL Server频繁释放内存;调整cost threshold for parallelism(如设置为50),控制并行查询的触发阈值。.mdf)与日志文件(.ldf)分开存储(不同磁盘),提高I/O并行性;使用文件组(如主文件组+辅助文件组)分散大型表的数据,提升查询性能。sudo apt update && sudo apt upgrade)和SQL Server(通过sudo apt upgrade mssql-server),修补已知安全漏洞;禁用root用户直接登录,使用普通用户+sudo权限管理服务器。db_datareader、db_datawriter);避免使用SA账户进行日常操作,创建专用管理员账户。mssql-conf配置),保护数据传输安全;使用ufw或iptables设置防火墙规则,仅允许必要IP地址访问SQL Server默认端口(1433)。pass)存储密码。sqlcmd或SSMS配置备份路径(如/var/opt/mssql/backup);定期测试备份恢复流程(如模拟数据丢失场景),确保备份有效性。BACKUP LOG <数据库名> WITH TRUNCATE_ONLY),避免日志文件过大占用磁盘空间;监控SQL Server错误日志(/var/opt/mssql/log/errorlog),及时发现并解决错误(如连接失败、死锁)。sys.dm_exec_query_stats查看慢查询,sys.dm_os_performance_counters监控性能计数器);通过sqlcmd执行SELECT * FROM sys.dm_exec_requests实时查看当前执行的查询,快速定位性能瓶颈。UPDATE STATISTICS <表名>),确保查询优化器生成最佳执行计划;每季度审查权限分配(删除未使用的用户账户),保持系统安全。