Retreive information about SQL Server

Retreive information about SQL Server

You may retrieve a few important information about a connection to SQL Server by querying the server through appropriate @@ global variables. For example, the following routine takes an ADO Connection object that points to SQL Server and prints a few information about the connection:

Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim fld As ADODB.Field    cn.Open CONN_STRING   ' cn points to a SQL Server connection    rs.Open "SELECT 'Server Name'=@@servername, 'Service Name'=@@servicename, " _    & "'Language'=@@language, 'Language ID'=@@langid, 'Connections opened so " _    & "far'=@@connections, 'Max connections'=@@max_connections, 'Process " _    & "ID'=@@spid", cn' display connection infoFor Each fld In rs.Fields    Debug.Print fld.Name & " = " & fld.ValueNext

There are many other @@ global variables that can turn to be useful, especially for debugging and profiling reasons. For example, run this code to print diagnostic information about a SQL Server connection, including number of packets sent and received, disk read and write operations, and CPU ticks dedicated to SQL Server, to disk I/O and not used by SQL Server since when SQL Server itself was booted:

rs.Open "SELECT 'Packets sent'=@@Pack_Sent, 'Packets received'=@@Pack_received, " _    & "'Packet errors'=@@Packet_Errors, 'Disk Reads'=@@total_read, 'Disk " _    & "Writes'=@@total_write, 'Disk Errors'=@@total_errors, 'CPU " _    & "Ticks'=@@cpu_busy, 'I/O Ticks'=@@io_busy, 'Idle Ticks'=@@idle", cnFor Each fld In rs.Fields    Debug.Print fld.Name & " = " & fld.ValueNext


Share the Post: