Quick Answer
DAC_INIT waits occur when SQL Server initializes the Dedicated Administrator Connection (DAC), typically during startup or when establishing the first DAC connection. These waits are normal during server startup but indicate potential connectivity issues if seen repeatedly during normal operations.
Root Cause Analysis
DAC_INIT waits happen during the initialization phase of SQL Server's Dedicated Administrator Connection infrastructure. The DAC is a special connection reserved for emergency administrative access when the server is under severe resource pressure or unresponsive to normal connections.
During SQL Server startup, the Database Engine allocates dedicated resources for the DAC listener, including a reserved scheduler thread, dedicated memory buffers, and network endpoint initialization. This process involves registering the DAC endpoint with the SQL Server Network Interface (SNI) layer and establishing the internal communication pathways.
The wait occurs specifically when the DAC initialization thread is blocked waiting for system resources or network stack readiness. In SQL Server 2016 and later versions, the DAC initialization process was enhanced to be more resilient to network delays and resource contention, reducing the frequency of these waits during startup.
On clustered instances, DAC_INIT waits can persist longer due to additional validation steps required to ensure the DAC endpoint is properly configured across cluster nodes. SQL Server 2019 introduced improvements to cluster-aware DAC initialization, but complex network topologies can still cause extended wait times.
The DAC listens on a dedicated admin port that is dynamically allocated by default (TCP port 1434 UDP is used by the SQL Server Browser service, not the DAC). On named instances, the DAC port is always dynamic unless explicitly configured. Network security software, firewall configurations, or port conflicts can extend DAC_INIT wait duration significantly.
AutoDBA checks DAC endpoint configuration, network connectivity validation, and administrative connection monitoring across your entire SQL Server instance in 60 seconds. Download the free diagnostic script and see what else needs attention.
Diagnostic Queries
-- Check current DAC connection status and endpoint configuration
SELECT
endpoint_id,
name,
protocol_desc,
type_desc,
state_desc,
is_admin_endpoint
FROM sys.endpoints
WHERE type_desc = 'SERVICE_BROKER' OR is_admin_endpoint = 1;
-- Examine current wait statistics for DAC_INIT
SELECT
wait_type,
waiting_tasks_count,
wait_time_ms,
max_wait_time_ms,
signal_wait_time_ms,
wait_time_ms - signal_wait_time_ms AS resource_wait_time_ms
FROM sys.dm_os_wait_stats
WHERE wait_type = 'DAC_INIT';
-- Check for active DAC connections and their session details
SELECT
s.session_id,
s.login_time,
s.host_name,
s.program_name,
s.login_name,
c.connect_time,
c.client_net_address,
c.local_net_address
FROM sys.dm_exec_sessions s
INNER JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
WHERE s.session_id < 0 OR c.endpoint_id = 1;
-- Monitor network configuration and DAC endpoint status
SELECT
local_net_address,
local_tcp_port,
state_desc,
login_time
FROM sys.dm_exec_connections
WHERE endpoint_id = 1
UNION ALL
SELECT
ip_address,
tcp_port,
state_desc,
NULL
FROM sys.dm_tcp_listener_states
WHERE type_desc = 'TSQL';
-- Check for recent startup events and DAC initialization timing
SELECT TOP 20
create_date,
path,
initial_size_kb,
max_size_kb
FROM sys.master_files
WHERE database_id = 1
ORDER BY create_date DESC;
Fix Scripts
Restart SQL Server Network Components This script restarts the SQL Server service to reinitialize the DAC endpoint, resolving stuck DAC_INIT waits.
-- Check current service status before restart
EXEC xp_servicecontrol 'QueryState', 'MSSQLSERVER';
-- Restart requires elevated permissions and will disconnect all users
-- Execute from command line: NET STOP MSSQLSERVER && NET START MSSQLSERVER
Caveat: This disconnects all users and should only be performed during maintenance windows.
Configure DAC Network Settings This script enables remote DAC connections if local DAC initialization is failing due to network restrictions.
-- Enable remote admin connections (requires restart)
EXEC sp_configure 'remote admin connections', 1;
RECONFIGURE;
-- Verify configuration change
SELECT name, value, value_in_use, is_dynamic
FROM sys.configurations
WHERE name = 'remote admin connections';
Expected Impact: Allows DAC connections from remote machines, potentially reducing local initialization pressure.
Network Port Conflict Resolution This query helps identify port conflicts that may prevent DAC initialization.
-- Check current port assignments and conflicts
SELECT
local_net_address,
local_tcp_port,
COUNT(*) as connection_count
FROM sys.dm_exec_connections
GROUP BY local_net_address, local_tcp_port
HAVING COUNT(*) > 1;
Expected Impact: Identifies port conflicts requiring network reconfiguration or SQL Server restart.
AutoDBA generates fix scripts like these automatically, with impact estimates and rollback SQL included.
Prevention
Configure SQL Server startup accounts with appropriate network service privileges to reduce DAC initialization delays. Service accounts lacking proper permissions can cause extended DAC_INIT waits during startup.
Monitor DAC_INIT wait statistics through automated scripts that alert when wait times exceed 30 seconds during normal operations. Persistent DAC_INIT waits outside of startup windows indicate underlying connectivity or resource issues requiring immediate attention.
Implement network security policies that explicitly allow DAC traffic on the designated ports. Many enterprise firewall configurations inadvertently block DAC endpoints, causing initialization timeouts and repeated DAC_INIT waits.
Enable remote admin connections on production servers where local console access is limited. This configuration reduces dependency on local DAC initialization and provides alternative administrative access paths during emergencies.
Document DAC connection procedures and port configurations in runbooks. During crisis situations when DAC access is needed most, network configuration details are often forgotten or inaccessible.
Schedule regular validation of DAC connectivity through monitoring scripts that attempt DAC connections and measure response times. Early detection of DAC initialization problems prevents access failures during critical incidents.
Need hands-on help?
Dealing with persistent dac_init issues across your environment? Samix Technology provides hands-on SQL Server performance consulting with 15+ years of production DBA experience.