硬件是数据库性能的基础,需优先满足以下要求:
内存是SQL Server性能的关键瓶颈,需合理配置内存参数:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)';
EXEC sp_configure 'max server memory (MB)', 12288; -- 12GB
RECONFIGURE;
EXEC sp_configure 'min server memory (MB)', 2048; -- 2GB
RECONFIGURE;
max server memory仅限制缓冲池大小,不包含SQL Server为排序、哈希等操作分配的非缓冲池内存(需预留额外10%-20%内存给这些操作)。合理配置并行查询参数,避免过度并行导致的资源竞争:
EXEC sp_configure 'max degree of parallelism', 4;
RECONFIGURE;
索引是提升查询性能的核心手段,需定期维护和优化:
ALTER INDEX ALL ON TableName REBUILD;
ALTER INDEX ALL ON TableName REORGANIZE;
sys.dm_db_index_usage_stats视图),删除无用索引(如创建后从未被查询或更新的索引)。优化查询语句是提升性能的根本,需遵循以下原则:
SELECT id, name FROM users替代SELECT * FROM users)。持续监控数据库性能,及时发现并解决问题:
SELECT * FROM sys.dm_os_process_memory;SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);SELECT * FROM sys.dm_os_ring_buffers WHERE ring_buffer_type = 'RING_BUFFER_SCHEDULER_MONITOR';调整CentOS系统参数,提升对SQL Server的支持:
/etc/sysctl.conf文件,调整以下参数(需重启系统生效):
shmmax):kernel.shmmax = 17179869184(16GB);shmall):kernel.shmall = 4194304;net.core.somaxconn = 4096、net.ipv4.tcp_tw_reuse = 1。cups打印服务、avahi-daemon),释放系统资源。noatime选项(减少文件访问时间更新,提升I/O性能):mount -o remount,noatime /var/opt/mssql