什么?有个 SQL 执行了 8 秒!

哪里出了问题?臣妾不知道啊,得找 DBA 啊。

DBA 人呢?离职了!!擦!!!

程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA"。

索引

  1. SQL Server 安装的是什么版本
  2. Windows 操作系统是什么版本
  3. SQL Server 是什么时候安装的
  4. 服务器主机名是什么
  5. 硬件服务器是谁制造的
  6. 服务器硬件是什么配置
  7. 服务器的 CPU 有几个核
  8. 服务器的 CPU 是什么型号
  9. SQL Server 启动了哪些服务
  10. 查看指定服务运行状态
  11. SQL Server 的 IP 地址信息
  12. SQL Server 监听了哪些 TCP 端口
  13. SQL Server 配置项信息
  14. 当前连接的 Session 有多少
  15. 每个数据库上的 Session 数量是多少
  16. 按主机查询 Session 数量
  17. 哪个 IP 地址上建立的连接最多
  18. 查看 Table 的基本属性
  19. 查看 Table 的数据行数

SQL Server 安装的是什么版本

SELECT @@VERSION AS [SQL Server Version];

版本号说明:

 Version 

 Product 

 Release Date 

10.0.1600

SQL Server 2008 RTM

 August 7, 2008 

10.0.2531

SQL Server 2008 SP1 RTM

 April 7, 2009

10.0.4000

SQL Server 2008 SP2 RTM

 September 29, 2010 

10.0.5500

SQL Server 2008 SP3 RTM

 October 6, 2011

10.0.6000

SQL Server 2008 SP4 RTM

September 30, 2014

10.50.1600

SQL Server 2008 R2 RTM

 April 21, 2010

10.50.2500

SQL Server 2008 R2 SP1 RTM

 July 11, 2011

10.50.4000

SQL Server 2008 R2 SP2 RTM

 July 26, 2012

10.50.6000

SQL Server 2008 R2 SP3 RTM

September 26, 2014

11.0.2100

SQL Server 2012 RTM

March 6, 2012

11.0.3000

SQL Server 2012 SP1 RTM

November 6, 2012

11.0.5058

SQL Server 2012 SP2 RTM

June 10, 2014

12.0.2000

SQL Server 2014 RTM

April 1, 2014

缩略语说明:

 Version 

 Description 

CTP

Community Technology Preview (Beta Release)

RC

Release Candidate

RTM

Released To Manufacturing

CU

Cumulative Update

SP

Service Pack

GDR

General Distribution Release

QFE

Quick Fix Engineering

比如,下面查到的版本号:

  • Build Version : 11.00.3153
  • File Version : 2011.110.3153.0

可以对应到 2977326 MS14-044: Description of the security update for SQL Server 2012 Service Pack 1 (GDR) August 12, 2014

Windows 操作系统是什么版本

SELECT windows_release
,windows_service_pack_level
,windows_sku
,os_language_version
FROM sys.dm_os_windows_info WITH (NOLOCK)
OPTION (RECOMPILE);

其中 windows_release 中的版本号代表着:

 Version 

 Windows 

6.3

Windows 8.1 or Windows Server 2012 R2

6.2

Windows 8 or Windows Server 2012

6.1

Windows 7 or Windows Server 2008 R2

6.0

Windows Vista or Windows Server 2008

5.2

Windows XP or Windows Server 2003

其中 windows_sku 代表着:

 SKU Code 

 Edition 

4

Enterprise Edition

7

Standard Edition

48

Professional Edition

SQL Server 2008 中没有 sys.dm_os_windows_info,可以使用 @@VERSION 来看了。

SELECT @@VERSION AS [SQL Server Version];

SQL Server 是什么时候安装的

SELECT @@SERVERNAME AS [Server Name]
,create_date AS [SQL Server Install Date]
FROM sys.server_principals WITH (NOLOCK)
WHERE NAME = N'NT AUTHORITY\SYSTEM'
OR NAME = N'NT AUTHORITY\NETWORK SERVICE'
OPTION (RECOMPILE);

服务器主机名是什么

SELECT SERVERPROPERTY('MachineName') AS [MachineName]
,SERVERPROPERTY('ServerName') AS [ServerName]
,SERVERPROPERTY('InstanceName') AS [Instance]
,SERVERPROPERTY('IsClustered') AS [IsClustered]
,SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS [ComputerNamePhysicalNetBIOS]
,SERVERPROPERTY('Edition') AS [Edition]
,SERVERPROPERTY('ProductLevel') AS [ProductLevel]
,SERVERPROPERTY('ProductVersion') AS [ProductVersion]
,SERVERPROPERTY('ProcessID') AS [ProcessID]
,SERVERPROPERTY('Collation') AS [Collation]
,SERVERPROPERTY('IsFullTextInstalled') AS [IsFullTextInstalled]
,SERVERPROPERTY('IsIntegratedSecurityOnly') AS [IsIntegratedSecurityOnly];

硬件服务器是谁制造的

EXEC xp_readerrorlog 0, 1, N'Manufacturer'; 

服务器硬件是什么配置

SELECT cpu_count AS [Logical CPU Count]
,scheduler_count
,hyperthread_ratio AS [Hyperthread Ratio]
,cpu_count / hyperthread_ratio AS [Physical CPU Count]
,physical_memory_kb / 1024 AS [Physical Memory (MB)]
,committed_kb / 1024 AS [Committed Memory (MB)]
,committed_target_kb / 1024 AS [Committed Target Memory (MB)]
,max_workers_count AS [Max Workers Count]
,affinity_type_desc AS [Affinity Type]
,sqlserver_start_time AS [SQL Server Start Time]
,virtual_machine_type_desc AS [Virtual Machine Type]
FROM sys.dm_os_sys_info WITH (NOLOCK)
OPTION (RECOMPILE);

SQL Server 2008 R2 可以使用:

SELECT cpu_count AS [Logical CPU Count]
,hyperthread_ratio AS [Hyperthread Ratio]
,cpu_count / hyperthread_ratio AS [Physical CPU Count]
,physical_memory_in_bytes / 1048576 AS [Physical Memory (MB)]
,sqlserver_start_time
,affinity_type_desc
FROM sys.dm_os_sys_info WITH (NOLOCK)
OPTION (RECOMPILE);

服务器的 CPU 有几个核

EXEC sys.xp_readerrorlog 0
,1
,N'detected'
,N'socket';

服务器的 CPU 是什么型号

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE'
,N'HARDWARE\DESCRIPTION\System\CentralProcessor\0'
,N'ProcessorNameString';

SQL Server 启动了哪些服务

SELECT servicename
,process_id
,startup_type_desc
,status_desc
,last_startup_time
,service_account
,is_clustered
,cluster_nodename
,[filename]
FROM sys.dm_server_services WITH (NOLOCK)
OPTION (RECOMPILE);

查看指定服务运行状态

EXEC master.dbo.xp_servicecontrol 'QUERYSTATE'
,'MSSQLServer' EXEC master.dbo.xp_servicecontrol 'QUERYSTATE'
,'SQLServerAgent' EXEC master.dbo.xp_servicecontrol 'QUERYSTATE'
,'SQLBrowser'

SQL Server 的 IP 地址信息

SELECT CONNECTIONPROPERTY('net_transport') AS net_transport
,CONNECTIONPROPERTY('protocol_type') AS protocol_type
,CONNECTIONPROPERTY('auth_scheme') AS auth_scheme
,CONNECTIONPROPERTY('local_net_address') AS local_net_address
,CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port
,CONNECTIONPROPERTY('client_net_address') AS client_net_address; SELECT SERVERPROPERTY(N'MachineName') AS MachineName;

SQL Server 监听了哪些 TCP 端口

SELECT listener_id
,ip_address
,is_ipv4
,port
,type_desc
,state_desc
,start_time
FROM sys.dm_tcp_listener_states WITH (NOLOCK)
ORDER BY listener_id
OPTION (RECOMPILE);

SQL Server 配置项信息

SELECT [name]
,value
,value_in_use
,minimum
,maximum
,[description]
,is_dynamic
,is_advanced
FROM sys.configurations WITH (NOLOCK)
ORDER BY [name]
OPTION (RECOMPILE);

通常会关注:

  • backup compression default :通常为 1;
  • cost threshold for parallelism
  • clr enabled
  • lightweight pooling :通常为 0;
  • max degree of parallelism
  • max server memory (MB)
  • optimize for ad hoc workloads :通常为 1;
  • priority boost :通常为 0;

当前连接的 Session 有多少

SELECT login_name
,[program_name]
,COUNT(session_id) AS [session_count]
FROM sys.dm_exec_sessions WITH (NOLOCK)
GROUP BY login_name
,[program_name]
ORDER BY COUNT(session_id) DESC
OPTION (RECOMPILE);

每个数据库上的 Session 数量是多少

SELECT DB_NAME(dbid) AS DBName
,COUNT(dbid) AS NumberOfConnections
,loginame AS LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid
,loginame
ORDER BY 1, 2, 3;

按主机查询 Session 数量

CREATE TABLE #tbl (
spid INT
,ecid INT
,[status] VARCHAR(50)
,loginame VARCHAR(255)
,hostname VARCHAR(255)
,blk VARCHAR(50)
,dbname VARCHAR(255)
,cmd VARCHAR(255)
,request_id VARCHAR(255)
)
GO INSERT INTO #tbl
EXEC sp_who; SELECT COUNT(0) AS CountByHostName
,hostname
FROM #tbl
GROUP BY hostname; SELECT COUNT(0) AS CountByDBName
,dbname
FROM #tbl
GROUP BY dbname; DROP TABLE #tbl
GO

哪个 IP 地址上建立的连接最多

SELECT ec.client_net_address
,es.[program_name]
,es.[host_name]
,es.login_name
,COUNT(ec.session_id) AS [connection count]
FROM sys.dm_exec_sessions AS es WITH (NOLOCK)
INNER JOIN sys.dm_exec_connections AS ec WITH (NOLOCK) ON es.session_id = ec.session_id
GROUP BY ec.client_net_address
,es.[program_name]
,es.[host_name]
,es.login_name
ORDER BY ec.client_net_address
,es.[program_name]
OPTION (RECOMPILE);

查看 Table 的基本属性

SELECT [name]
,create_date
,lock_on_bulk_load
,is_replicated
,has_replication_filter
,is_tracked_by_cdc
,lock_escalation_desc
FROM sys.tables WITH (NOLOCK)
ORDER BY [name]
OPTION (RECOMPILE);

查看 Table 的数据行数

SELECT OBJECT_NAME(object_id) AS [ObjectName]
,SUM(Rows) AS [RowCount]
,data_compression_desc AS [CompressionType]
FROM sys.partitions WITH (NOLOCK)
WHERE index_id < 2 --ignore the partitions from the non-clustered index if any
AND OBJECT_NAME(object_id) NOT LIKE N'sys%'
AND OBJECT_NAME(object_id) NOT LIKE N'queue_%'
AND OBJECT_NAME(object_id) NOT LIKE N'filestream_tombstone%'
AND OBJECT_NAME(object_id) NOT LIKE N'fulltext%'
AND OBJECT_NAME(object_id) NOT LIKE N'ifts_comp_fragment%'
AND OBJECT_NAME(object_id) NOT LIKE N'filetable_updates%'
AND OBJECT_NAME(object_id) NOT LIKE N'xml_index_nodes%'
GROUP BY object_id
,data_compression_desc
ORDER BY SUM(Rows) DESC
OPTION (RECOMPILE);

《人人都是 DBA》系列文章索引:

 序号 

 名称 

1

人人都是 DBA(I)SQL Server 体系结构

2

人人都是 DBA(II)SQL Server 元数据

3

人人都是 DBA(III)SQL Server 调度器

4

人人都是 DBA(IV)SQL Server 内存管理

5

人人都是 DBA(V)SQL Server 数据库文件

6

人人都是 DBA(VI)SQL Server 事务日志

7

人人都是 DBA(VII)B 树和 B+ 树

8

人人都是 DBA(VIII)SQL Server 页存储结构

9

人人都是 DBA(IX)服务器信息收集脚本汇编

10

人人都是 DBA(X)资源信息收集脚本汇编

11

人人都是 DBA(XI)I/O 信息收集脚本汇编

12

人人都是 DBA(XII)查询信息收集脚本汇编

13

人人都是 DBA(XIII)索引信息收集脚本汇编

14

人人都是 DBA(XIV)存储过程信息收集脚本汇编

15

人人都是 DBA(XV)锁信息收集脚本汇编

本系列文章《人人都是 DBA》由 Dennis Gao 发表自博客园,未经作者本人同意禁止任何形式的转载,任何自动或人为的爬虫转载行为均为耍流氓。

人人都是 DBA(IX)服务器信息收集脚本汇编的更多相关文章

  1. 人人都是 DBA(XII)查询信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  2. 人人都是 DBA(XV)锁信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  3. 人人都是 DBA(XIV)存储过程信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  4. 人人都是 DBA(XIII)索引信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  5. 人人都是 DBA(XI)I/O 信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  6. 人人都是 DBA(X)资源信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  7. 人人都是 DBA(VIII)SQL Server 页存储结构

    当在 SQL Server 数据库中创建一张表时,会在多张系统基础表中插入所创建表的信息,用于管理该表.通过目录视图 sys.tables, sys.columns, sys.indexes 可以查看 ...

  8. 人人都是 DBA(VI)SQL Server 事务日志

    SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...

  9. 人人都是 DBA(V)SQL Server 数据库文件

    SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname ...

随机推荐

  1. ExtJs知识点概述

    1.前言 ExtJS的前身是YUI(Yahoo User Interface).经过不断的发展与改进,ExtJS现在已经成功发布到了ExtJS 6版本,是一套目前最完整和最成熟的javascript基 ...

  2. POJ 2135 Farm Tour 最小费用流

    两条路不能有重边,既每条边的容量是1.求流量为2的最小费用即可. //#pragma comment(linker, "/STACK:1024000000,1024000000") ...

  3. Daily Scrum 12.17

    今日完成任务: 解决匿名回答时候字数限制问题:完善了用户界面的UI设计: 明日任务: 孙思权 接口设计 晏旭瑞 资源索引问题 冯飘飘 解决上传资源时候不勾选或不添加选项内容可以上传的问题 黎柱金 进行 ...

  4. 如何在一个div标签里显示出另一个网页? <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>

    如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width=& ...

  5. J2EE之oracle、mysql存储过程调用

    最近几天在研究hibernate.JPA对存储过程的调用,主要是针对有返回结果集的存储过程的调用方法,个人感觉存储过程是个好东西,虽然说heibernate对数据访问封装的比较不错,再加上他的缓存机制 ...

  6. (转)__cdecl __fastcall与 __stdcall

    原帖 http://blog.sina.com.cn/s/blog_6b7c56870100l8rf.html __cdecl   __fastcall与   __stdcall 调用约定:  __c ...

  7. php-4种排序

    <?php$arr = array(1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39); //1. 冒泡排序 //在要排序的一组数中,对当前还未排好的序列,从前 ...

  8. centos 如何清理/dev/vda1系统盘

    df-h检查一台服务器磁盘使用空间,发现磁盘已经使用了100% 思路是: 1.cd /usr 2.du -sh * 看哪个目录占用空间大 3.重复前两步,根据实际情况删除或者移走 4.日志的话可以运行 ...

  9. ZOJ3792_Romantic Value

    给出图,使得两点无流量,剩余其他边的总容量与删除边数的比值. 要机智啊... 因为原图给的边数不超过1000,容量也不超过1000,可以这样把边的容量变为2000*c+1.这样跑出最大流后,最大流除以 ...

  10. 【Java学习笔记】函数的可变参数

    package p2; public class ParamterDemo { public static void main(String[] args) { int sum1 = add(4,5) ...