2025-09-01 23:44:57 +08:00

61 lines
1.8 KiB
Transact-SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- SQL Server 性能优化配置
-- 启用即时文件初始化(需要重启服务)
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
PRINT '高级选项已启用';
-- 配置最大内存使用量(根据容器内存限制调整)
-- 这里设置为4GB可以根据实际需要调整
EXEC sp_configure 'max server memory (MB)', 4096;
RECONFIGURE;
PRINT '最大内存设置为 4GB';
-- 配置最大并行度根据CPU核心数调整
EXEC sp_configure 'max degree of parallelism', 4;
RECONFIGURE;
PRINT '最大并行度设置为 4';
-- 启用查询存储SQL Server 2016+
USE SampleDB;
GO
-- 启用查询存储
ALTER DATABASE SampleDB SET QUERY_STORE = ON;
ALTER DATABASE SampleDB SET QUERY_STORE (
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30),
DATA_FLUSH_INTERVAL_SECONDS = 900,
INTERVAL_LENGTH_MINUTES = 60,
MAX_STORAGE_SIZE_MB = 1000,
QUERY_CAPTURE_MODE = AUTO,
SIZE_BASED_CLEANUP_MODE = AUTO
);
PRINT '查询存储已启用';
-- 创建性能监控视图
USE SampleDB;
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE name = 'PerformanceStats')
BEGIN
EXEC('
CREATE VIEW PerformanceStats AS
SELECT
GETDATE() AS CheckTime,
(SELECT COUNT(*) FROM sys.dm_exec_sessions WHERE is_user_process = 1) AS ActiveConnections,
(SELECT COUNT(*) FROM sys.dm_exec_requests WHERE status IN (''running'', ''runnable'', ''suspended'')) AS ActiveRequests,
(SELECT SUM(pages_kb) FROM sys.dm_os_memory_clerks WHERE type = ''MEMORYCLERK_SQLBUFFERPOOL'') / 1024 AS BufferPoolMB
');
PRINT '性能监控视图创建成功';
END
ELSE
BEGIN
PRINT '性能监控视图已存在';
END
GO
PRINT '性能优化配置完成!';