61 lines
1.8 KiB
Transact-SQL
61 lines
1.8 KiB
Transact-SQL
-- 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 '性能优化配置完成!';
|