Installing and configuring SQL Server 2025 on Windows Server
Categories:
19 minute read
This guide covers the whole process of installing SQL Server 2025 on Windows Server (2019 / 2022 / 2025), then the post-installation configuration through the Server Properties in SSMS and the SQL Server Configuration Manager.
Prerequisites
Minimum and recommended hardware
| Component | Minimum | Recommended |
|---|---|---|
| Processor | x64 — 1.4 GHz | 2.0 GHz or more, up to 64 cores per NUMA node |
| Memory (RAM) | 1 GB, 512 MB for Express | ≥ 4 GB, increasing with the size of the databases |
| Disk space | 6 GB minimum | ≥ 50 GB for a production environment, excluding data |
| Display | Super VGA 800 × 600 | 1920 × 1080 |
| Network | Built-in network adapter | Internet access for updates |
Software requirements
| Component | Required version |
|---|---|
| Operating system | Windows Server 2019 / 2022 / 2025, including Server Core |
| .NET Framework | 4.7.2, installed automatically if missing |
| PowerShell | 5.1 or later |
| Network protocols | TCP/IP, Named Pipes, Shared Memory, all built into the OS |
Note: SQL Server 2025 installs on x64 processors only. 32-bit installations are no longer supported.
Storage good practice before installing
Separate your files physically to optimize I/O:
| Drive letter (example) | Content | Recommended RAID |
|---|---|---|
C:\ | Operating system | RAID 1 |
D:\ | SQL Server binaries | RAID 1 |
E:\ | Data files (.mdf / .ndf) | RAID 10 |
F:\ | Transaction logs (.ldf) | RAID 10 |
G:\ | TempDB, data and log | RAID 10 / NVMe |
H:\ | Backups (.bak) | RAID 5 / RAID 6 |
Data files are accessed randomly, whereas transaction logs are accessed sequentially. Separating them reduces contention on the heads of mechanical disks and improves performance significantly.
Editions available in SQL Server 2025
SQL Server 2025 introduces one key new edition: Standard Developer.
| Edition | Use | Key points |
|---|---|---|
| Enterprise | High-performance production | Every feature, no RAM or CPU limit |
| Standard | SME production | Up to 256 GB of RAM and 32 cores, improved over 2022 |
| Enterprise Developer | Dev / test only | Identical to Enterprise, free outside production |
| Standard Developer (new) | Dev / test only | Identical to Standard, free outside production — removes the feature gap between dev and production |
| Express | Small applications | Free, limited to 1 GB of RAM and 10 GB per database |
| Web | Web hosting | Special licence, through hosting providers |
| Evaluation | 180-day trial | Identical to Enterprise |
Why Standard Developer matters: teams used to run the Developer edition, equivalent to Enterprise, in dev and test, then Standard in production. That produced behavioural differences — Batch Mode on Rowstore and Online Index Rebuild are absent from Standard, for instance. Standard Developer removes the problem by guaranteeing feature parity across every environment.
What is new in SQL Server 2025
Before starting the installation, here are the features that justify the upgrade:
- the
VECTORdata type and theVECTOR_DISTANCEfunction for semantic search (cosine, Euclidean, dot product); - DiskANN vector indexes (
CREATE VECTOR INDEX) for large-scale ANN search, in preview; - native AI integration: Azure OpenAI, LangChain, Semantic Kernel, Entity Framework Core;
- improved native JSON support, with JSON indexes;
- Change Event Streaming and a built-in REST API;
- improved optimized locking, to reduce contention;
- extended Intelligent Query Processing;
- Microsoft Fabric integration for hybrid analytics.
Downloading the installation media
- Go to the official page: https://www.microsoft.com/sql-server/sql-server-downloads
- Click Download under the edition you want: Evaluation, Developer or Express.
- The downloaded file is called
SQL2025-SSEI-Eval.exe, orDev/Exprdepending on the edition — around 4.2 MB. - Run that launcher and choose between three options:
| Option | Description | When to use it |
|---|---|---|
| Basic | Quick installation of the database engine with the default configuration | A quick test environment |
| Custom | Launches the full wizard, with every option available | Recommended for production |
| Download Media | Downloads the full ISO or CAB, about 1.5 GB | Offline installation, deployment to several servers |
- Choose Download Media, select the ISO format and a destination folder.
- Once the download finishes, mount the ISO on the target server and run
setup.exe.
Step-by-step installation with the wizard
Step 1 — SQL Server Installation Center
When you launch setup.exe, the SQL Server Installation Center appears. In the left-hand pane:
- Planning: checks the prerequisites with the System Configuration Checker.
- Installation: launches the various installation scenarios.
Click Installation → New SQL Server stand-alone installation or add features to an existing installation.
Step 2 — Product key
| Field | Description |
|---|---|
| Specify a free edition | Select Evaluation, Developer or Express |
| Enter the product key | Enter the licence key for Standard or Enterprise |
Tip: you can install in Evaluation mode, for 180 days, and convert to a licensed edition later with the product key, without reinstalling.
Click Next.
Step 3 — Licence terms
Read and accept the Microsoft licence terms. Tick I accept the license terms and Privacy Statement.
This page also links to the Microsoft privacy statement. In a corporate environment, check that it complies with your GDPR policy.
Click Next.
Step 4 — Microsoft Update
| Option | Recommendation |
|---|---|
| Use Microsoft Update to check for updates | ✅ Tick this box |
This lets setup download the latest cumulative updates and apply them during installation. In production it is good practice, so that the server starts up already current.
Click Next.
Step 5 — Install rules
Setup automatically checks the installation rules:
- the .NET Framework is present;
- no restart is pending;
- registry access;
- the Windows firewall — a warning if port 1433 is not open.
If everything is green (✅ Passed), click Next. On a ⚠️ Warning about the firewall, you can configure the rules after installation.
Step 6 — Feature selection
This is one of the most important pages. Here is what each component does.
Instance features
| Component | Description | Production recommendation |
|---|---|---|
| Database Engine Services | The core relational engine — storage, queries, transactions, security | ✅ Always select |
| ↳ SQL Server Replication | Transactional, merge and snapshot replication | As needed |
| ↳ Full-Text and Semantic Extractions for Search | Full-text search in text columns | As needed |
| ↳ Data Quality Services | Data profiling and cleansing | Rarely needed on a production server |
| ↳ PolyBase Query Service for External Data | Querying external data (Hadoop, Azure Blob, S3, Oracle) through T-SQL | If you need multi-source access |
| ↳ Machine Learning Services | Running R / Python scripts inside the engine | If you need in-database ML |
| Analysis Services | OLAP, tabular models, data mining | A dedicated server is recommended |
| Reporting Services | SSRS reports | A dedicated server is recommended |
| Integration Services | ETL, SSIS packages | A dedicated server is recommended |
Shared features
| Component | Description |
|---|---|
| Client Tools Connectivity | Connection libraries (OLEDB, ODBC) |
| Client Tools SDK | Development APIs |
| SQL Client Connectivity SDK | Drivers for third-party applications |
Installation directories
- Instance root directory:
D:\Program Files\Microsoft SQL Server\— avoidC:\. - Shared feature directory: for the components shared between instances.
Good practice: never leave the SQL Server binaries on the system drive
C:\. Use a dedicated volume.
Click Next.
Step 7 — Instance configuration
| Option | Description |
|---|---|
| Default instance | The server is reached by the machine name alone: SERVERNAME |
| Named instance | The server is reached as SERVERNAME\INSTANCE_NAME |
- Instance ID: the internal identifier used for the directories and registry keys.
- Instance root directory: confirm the path set in the previous step.
When should you use a named instance? When you have to host several SQL Server instances on the same server — a production instance plus a pre-production one, for instance. Each named instance has its own services, its own memory and its own ports.
Note: SQL Server Browser has to be running for clients to discover named instances.
Click Next.
Step 8 — Server configuration
This page has two important tabs.
The “Service Accounts” tab
Every SQL Server service runs under a Windows account. These are the configurable services:
| Service | Recommended production account | Why |
|---|---|---|
| SQL Server Database Engine | A dedicated domain account (e.g. DOMAIN\svc-sqlengine) or a gMSA | Security isolation, auditing, network access |
| SQL Server Agent | A dedicated domain account (e.g. DOMAIN\svc-sqlagent) or a gMSA | Running jobs, maintenance, backups |
| SQL Server Browser | NT AUTHORITY\LOCAL SERVICE | Named instance discovery |
gMSA (Group Managed Service Accounts) is the best practice in an Active Directory environment. Active Directory manages the password automatically, with no human intervention.
Startup options:
| Option | Description |
|---|---|
| Automatic | The service starts with Windows |
| Manual | Started on demand |
| Disabled | The service is disabled |
Set the Database Engine and the Agent to Automatic. Set the Browser to Automatic only if you have named instances.
Tick Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service. This enables Instant File Initialization (IFI), which considerably speeds up the creation and growth of data files by skipping the zeroing of the disk blocks.
The “Collation” tab
The collation determines the sorting and comparison rules for character strings across the whole instance.
| Setting | Recommended value | Explanation |
|---|---|---|
| Database Engine collation | Latin1_General_100_CI_AS_SC_UTF8 | CI = case insensitive, AS = accent sensitive, SC = supplementary characters, UTF8 = native Unicode support |
Why this is critical: the server collation applies to the system databases (
master,model,msdb,tempdb) and becomes the default collation of every new database. It cannot be changed after installation without rebuildingmaster. Take the time to get it right.
Careful: if you have to work with existing databases, align the collation to avoid
Cannot resolve the collation conflicterrors.
Click Next.
Step 9 — Database Engine configuration
This is the richest page of the wizard. It has four tabs.
The “Server Configuration” tab
Authentication mode:
| Mode | Description | Recommendation |
|---|---|---|
| Windows Authentication Mode | Only Windows and AD accounts can connect | ✅ The most secure — prefer this |
| Mixed Mode | Windows authentication plus SQL logins with a password | Necessary if applications use SQL logins, sa among them |
If you choose Mixed Mode:
- set a strong password for the
saaccount: 12 characters or more, upper and lower case, digits, special characters; - the
saaccount is the number one target of attacks. In production, disable it after installation and use named accounts.
Specify SQL Server administrators:
Click Add Current User to add your Windows account as an administrator of the instance. Also add a DBA AD group, for instance DOMAIN\GRP-SQLAdmins.
Never leave this list empty. You would risk losing administrative access to the instance.
The “Data Directories” tab
This is where you set the default paths for the files:
| Directory | Recommended path | Role |
|---|---|---|
| Data root directory | E:\MSSQL\ | The root of the data |
| User database directory | E:\MSSQL\Data\ | .mdf / .ndf files |
| User database log directory | F:\MSSQL\Log\ | .ldf files |
| Backup directory | H:\MSSQL\Backup\ | .bak backups |
The golden rule: always separate data files and transaction logs onto distinct volumes. Transaction logs use sequential writes and should not share a volume with the random I/O of the data files.
The “TempDB” tab
SQL Server 2025 offers an optimized automatic TempDB configuration from installation:
| Setting | Recommendation | Explanation |
|---|---|---|
| Number of files | One file per logical core, up to 8 files | Reduces contention on the allocation pages (PFS, GAM, SGAM) |
| Initial size per file | ≥ 64 MB, ideally 1 GB each in production | Avoids repeated auto-growth at startup |
| Autogrowth | 64 MB per file — avoid percentages | Predictable, uniform growth |
| TempDB data directory | G:\MSSQL\TempDB\ | A dedicated volume, ideally NVMe |
| TempDB log directory | G:\MSSQL\TempDBLog\ | Can share the volume with the TempDB data |
Why 8 files? TempDB is a contention hot spot. Multiplying the data files spreads the allocation requests across several files, which removes the latch waits on the system pages. Beyond 8, the marginal gain is negligible except on very specific workloads.
Every TempDB file must be the same size. SQL Server uses a proportional fill algorithm that distributes writes according to file size. Files of different sizes create an imbalance.
The “MaxDOP” tab
Since SQL Server 2019, the wizard proposes a recommended MAXDOP value based on the CPU topology it detects.
| Scenario | Recommended MAXDOP |
|---|---|
| One NUMA node, ≤ 8 logical cores | = the number of logical cores |
| One NUMA node, > 8 logical cores | 8 |
| Multiple NUMA nodes, ≤ 16 cores per node | = the number of cores per NUMA node |
| Multiple NUMA nodes, > 16 cores per node | 16, or half the cores per node |
MAXDOP = 0 is discouraged. It means SQL Server uses every CPU for a single parallel query, which can saturate the server and block the other concurrent queries.
Accept the proposed value or adjust it. You can change it later.
The “Memory” tab
Since SQL Server 2022 the wizard also proposes the memory configuration:
| Setting | Recommendation |
|---|---|
| Min Server Memory | Leave at 0, except when several instances share a server |
| Max Server Memory | Total RAM − 4 GB for the OS − memory for the other services |
The formula:
Max Server Memory = total_RAM - 4096 MB (OS) - RAM_for_other_services
Examples:
| Total RAM | Reserved for the OS | Max Server Memory |
|---|---|---|
| 32 GB | 4 GB | 28 GB (28,672 MB) |
| 64 GB | 4 GB | 60 GB (61,440 MB) |
| 128 GB | 6 GB | 122 GB (124,928 MB) |
Why cap the memory? By default SQL Server consumes all the available RAM and does not give it back. Without a cap the operating system can run short of memory, causing slowdowns or crashes.
max server memoryis the first setting to configure on any production instance.
Click Next.
Step 10 — Ready to install
The summary page shows everything you selected:
- edition and product key;
- selected features;
- directory paths;
- service accounts;
- authentication mode;
- TempDB, MAXDOP and memory configuration.
Read this page carefully. It is your last chance to correct a mistake before the installation.
Tip: the path to the configuration file (
ConfigurationFile.ini) is shown at the bottom of the page. Copy that file and keep it. You can reuse it for identical unattended installations on other servers:setup.exe /ConfigurationFile="C:\SQLConfig\ConfigurationFile.ini" /IAcceptSQLServerLicenseTerms
Click Install.
Step 11 — Installation progress and completion
The installation generally takes between 10 and 30 minutes, depending on the hardware and the features selected. A progress bar shows where each component stands.
At the end, the Complete page shows the status of each feature:
- ✅ Succeeded: installed correctly.
- ❌ Failed: check the error log in
C:\Program Files\Microsoft SQL Server\170\Setup Bootstrap\Log\.
If the installation fails,
Summary.txtand the associated log folder hold the details of the error.
Click Close.
Installing SSMS (SQL Server Management Studio)
SQL Server 2025 works with SSMS 21 and SSMS 22. The tool is no longer included in the installation media.
- Download SSMS from https://aka.ms/ssms/22/release/vs_SSMS.exe
- Run the installer and follow the instructions.
- Restart if prompted.
Post-installation configuration in SSMS
Connecting to the instance
- Launch SSMS.
- In the Connect to Server window:
- Server type: Database Engine
- Server name:
SERVERNAMEfor a default instance, orSERVERNAME\INSTANCE - Authentication: Windows Authentication
- Click Connect.
Server properties
Right-click the server in Object Explorer → Properties. Here is what each page holds.
The “General” page
Read-only information: server name, version, edition, OS, collation, memory, number of processors, root directory. Useful for a quick check of the configuration.
The “Memory” page
| Setting | Description | Recommended value |
|---|---|---|
| Minimum server memory (MB) | The memory floor reserved for SQL Server | 0, except with several instances |
| Maximum server memory (MB) | The ceiling allocated to the buffer pool | RAM − 4 GB − other services |
The T-SQL equivalent:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 28672; -- 28 GB
RECONFIGURE;
EXEC sp_configure 'min server memory (MB)', 0;
RECONFIGURE;
The “Processors” page
| Setting | Description |
|---|---|
| Max degree of parallelism (MAXDOP) | The maximum number of cores for one parallel query |
| Cost threshold for parallelism | The estimated cost above which the engine considers a parallel plan. Default: 5 |
| Boost SQL Server priority | Raises the priority of the sqlservr.exe process — do not enable in production |
The T-SQL equivalent:
EXEC sp_configure 'max degree of parallelism', 8;
RECONFIGURE;
EXEC sp_configure 'cost threshold for parallelism', 50;
RECONFIGURE;
Cost threshold for parallelism: the default of 5 is far too low for most production workloads. A value between 25 and 50 is a good starting point. It stops small queries from needlessly triggering a parallel plan, which consumes resources and threads.
The “Security” page
| Setting | Options |
|---|---|
| Server authentication | Windows Authentication Mode / Mixed Mode |
| Login auditing | None / Failed logins only / Successful logins only / Both |
| Enable Common Criteria compliance | For Common Criteria certified environments |
Recommendation: enable auditing of failed logins at the very least. It lets you detect intrusion attempts.
The “Database Settings” page
| Setting | Description | Recommendation |
|---|---|---|
| Default data location | The default path for .mdf files | E:\MSSQL\Data\ |
| Default log location | The default path for .ldf files | F:\MSSQL\Log\ |
| Default backup location | The default path for .bak files | H:\MSSQL\Backup\ |
| Compress backup | Enables compression by default | ✅ Enable — reduces backup size by 60–80 % |
| Recovery interval (minutes) | The target recovery time after a crash | Leave at 0, automatic |
The T-SQL equivalent for backup compression:
EXEC sp_configure 'backup compression default', 1;
RECONFIGURE;
The “Advanced” page
The settings that matter:
| Setting | Default | Recommendation | Explanation |
|---|---|---|---|
| Optimize for Ad hoc Workloads | False | ✅ True | Stops single-use plans from polluting the plan cache. On the first call only a stub is cached; the full plan is cached on the second call |
| Remote Login Timeout | 10 | 10–20 | Timeout in seconds for linked server connections |
| Remote Query Timeout | 600 | As needed | Timeout for distributed queries |
| Allow Triggers to Fire Others | True | True | Allows triggers to cascade |
| Blocked Process Threshold | 0 | 5–10 | Above 0, generates an XML report in the default trace when a process is blocked for N seconds |
The T-SQL equivalent:
EXEC sp_configure 'optimize for ad hoc workloads', 1;
RECONFIGURE;
EXEC sp_configure 'blocked process threshold (s)', 5;
RECONFIGURE;
Configuring the model database
The model database is the template for every new database. Configure it properly:
-- Reasonable initial size and growth
ALTER DATABASE model MODIFY FILE
(NAME = modeldev, SIZE = 256MB, FILEGROWTH = 64MB);
ALTER DATABASE model MODIFY FILE
(NAME = modellog, SIZE = 128MB, FILEGROWTH = 64MB);
Why? By default the initial size is 8 MB with percentage-based growth. That produces frequent auto-growth events and a proliferation of VLFs (Virtual Log Files), which degrades recovery performance.
SQL Server Configuration Manager
The SQL Server Configuration Manager (SQLServerManager17.msc for SQL Server 2025) is the system tool for managing the services, the network protocols and the client aliases.
Access: search for “SQL Server Configuration Manager” in the Start menu, or open
compmgmt.msc(Computer Management), where it appears as a snap-in.
The Configuration Manager tree
SQL Server Configuration Manager
├── SQL Server Services
│ ├── SQL Server (MSSQLSERVER) -- Database engine
│ ├── SQL Server Agent (MSSQLSERVER) -- Job scheduler
│ ├── SQL Server Browser -- Instance discovery
│ ├── SQL Full-text Filter Daemon -- Full-text search
│ └── SQL Server Integration Services -- SSIS, if installed
├── SQL Server Network Configuration
│ └── Protocols for MSSQLSERVER
│ ├── Shared Memory
│ ├── Named Pipes
│ └── TCP/IP
└── SQL Native Client Configuration
├── Client Protocols
└── Aliases
SQL Server Services
Right-click a service → Properties.
The “Log On” tab
| Option | Description |
|---|---|
| Built-in account | Local System, Local Service, Network Service |
| This account | A domain account or a gMSA |
In production, always use a dedicated domain account or a gMSA. Never use
Local System: it has excessive rights on the machine.
The “Service” tab
| Property | Description |
|---|---|
| Start Mode | Automatic / Manual / Disabled |
| Process ID | The PID of the running process |
| Binary Path | The path to sqlservr.exe |
The “Startup Parameters” tab
The engine startup parameters:
| Parameter | Meaning |
|---|---|
-d | Path to master.mdf |
-l | Path to mastlog.ldf |
-e | Path to the error log (ERRORLOG) |
You can add further parameters:
| Flag | Effect | When to use it |
|---|---|---|
-T1118 | Disables mixed extent allocations for system pages | Built in by default since SQL Server 2016, but worth knowing |
-T3226 | Removes successful backup messages from the error log | Reduces noise in the ERRORLOG when backups are frequent |
SQL Server Network Configuration — protocols
Shared Memory
- Use: local connections only, client and server on the same machine.
- Configuration: no options. Enabled by default.
- Production: leave it enabled, for local SSMS connections and maintenance scripts.
Named Pipes
- Use: LAN connections, mostly in legacy environments.
- Configuration: the pipe name,
\\.\pipe\sql\queryby default. - Production: disable it unless you have a specific need. TCP/IP is preferable.
TCP/IP
This is the main protocol for network connections. Right-click → Properties.
The “Protocol” tab:
| Setting | Description | Recommendation |
|---|---|---|
| Enabled | Enables or disables TCP/IP | ✅ Yes |
| Keep Alive | The interval in ms for keep-alive packets | 30000, the default |
| Listen All | Listen on every IP address | Yes in most cases |
The “IP Addresses” tab:
Every network interface is listed — IP1, IP2 and so on — plus an IPAll section:
| Setting | Description | Recommendation |
|---|---|---|
| TCP Dynamic Ports | The port assigned dynamically at startup | Clear this field for a default instance |
| TCP Port | A static port | 1433 for the default instance |
Production good practice:
- default instance: port 1433, fixed;
- named instance: assign a custom static port, 14330 for instance, rather than leaving a dynamic port;
- create a Windows firewall rule allowing the chosen port.
Configuring the firewall with PowerShell:
New-NetFirewallRule -DisplayName "SQL Server 2025" `
-Direction Inbound -Protocol TCP -LocalPort 1433 `
-Action Allow -Profile Domain
# For SQL Server Browser (UDP 1434) — named instances only
New-NetFirewallRule -DisplayName "SQL Server Browser" `
-Direction Inbound -Protocol UDP -LocalPort 1434 `
-Action Allow -Profile Domain
Important: after any change to the network protocols, you have to restart the SQL Server service for it to take effect.
SQL Native Client Configuration
Client Protocols
The order in which the client tries the protocols:
- Shared Memory, for a local connection
- TCP/IP
- Named Pipes
You can change the order or disable a protocol by right-clicking → Properties under Client Protocols.
Aliases
Aliases create alternative connection names pointing at a specific server and port. Useful for:
- changing server without touching the connection strings of your applications;
- using a logical name (
SQL-PROD) instead of a technical one (SRV-SQL-PRD-01\INST01,14330).
| Field | Example |
|---|---|
| Alias Name | SQL-PROD |
| Protocol | TCP/IP |
| Server | SRV-SQL-PRD-01 |
| Port | 14330 |
Post-installation checks
Run these T-SQL queries to validate the configuration:
-- 1. Version and edition
SELECT @@VERSION;
SELECT SERVERPROPERTY('ProductVersion') AS Version,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductLevel') AS ServicePack,
SERVERPROPERTY('Collation') AS Collation;
-- 2. Memory configuration
SELECT name, value_in_use
FROM sys.configurations
WHERE name IN ('max server memory (MB)', 'min server memory (MB)');
-- 3. MAXDOP and cost threshold
SELECT name, value_in_use
FROM sys.configurations
WHERE name IN ('max degree of parallelism', 'cost threshold for parallelism');
-- 4. Optimize for ad hoc workloads
SELECT name, value_in_use
FROM sys.configurations
WHERE name = 'optimize for ad hoc workloads';
-- 5. TempDB: number of files and sizes
SELECT name, physical_name, size * 8 / 1024 AS [Size_MB],
growth * 8 / 1024 AS [Growth_MB]
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
-- 6. Backup compression
SELECT name, value_in_use
FROM sys.configurations
WHERE name = 'backup compression default';
The post-installation architecture
graph LR
subgraph "Windows Server"
OS["OS + 4 GB RAM reserved"]
FW["Windows firewall<br/>TCP port 1433"]
end
subgraph "SQL Server 2025"
ENG["Database Engine<br/>(sqlservr.exe)"]
AGT["SQL Server Agent<br/>(sqlagent.exe)"]
BRW["SQL Server Browser<br/>(sqlbrowser.exe)"]
end
subgraph "Storage"
D["D:\ Binaries"]
E["E:\ Data (.mdf/.ndf)"]
F["F:\ Logs (.ldf)"]
G["G:\ TempDB"]
H["H:\ Backups (.bak)"]
end
subgraph "Protocols"
SM["Shared Memory"]
TCP["TCP/IP :1433"]
NP["Named Pipes"]
end
ENG --> D
ENG --> E
ENG --> F
ENG --> G
ENG --> H
ENG --> SM
ENG --> TCP
ENG --> NP
TCP --> FW
AGT --> ENG
BRW --> |UDP 1434| FWProduction configuration checklist
graph TD
A[Installation finished] --> B{Max Server Memory set?}
B -->|No| B1[Set it now]
B -->|Yes| C{MAXDOP set?}
C -->|No| C1[Set it according to NUMA]
C -->|Yes| D{Cost threshold ≥ 25?}
D -->|No| D1[Raise it to 25-50]
D -->|Yes| E{TempDB: 4-8 files?}
E -->|No| E1[Add files]
E -->|Yes| F{Instant File Initialization on?}
F -->|No| F1[Enable it through gpedit.msc]
F -->|Yes| G{Backups configured?}
G -->|No| G1[Set up a maintenance plan]
G -->|Yes| H[✅ Ready for production]The essential sp_configure commands
-- Enable the advanced options
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
-- Memory
EXEC sp_configure 'max server memory (MB)', 28672;
RECONFIGURE;
-- Parallelism
EXEC sp_configure 'max degree of parallelism', 8;
RECONFIGURE;
EXEC sp_configure 'cost threshold for parallelism', 50;
RECONFIGURE;
-- Plan cache optimization
EXEC sp_configure 'optimize for ad hoc workloads', 1;
RECONFIGURE;
-- Backup compression
EXEC sp_configure 'backup compression default', 1;
RECONFIGURE;
-- Blocked process threshold, for monitoring
EXEC sp_configure 'blocked process threshold (s)', 5;
RECONFIGURE;
-- Final check
SELECT name, value_in_use
FROM sys.configurations
WHERE name IN (
'max server memory (MB)',
'min server memory (MB)',
'max degree of parallelism',
'cost threshold for parallelism',
'optimize for ad hoc workloads',
'backup compression default',
'blocked process threshold (s)'
)
ORDER BY name;