MS SQL 日常维护管理常用脚本
--【查看数据库服务器名称】
--默认实例查询
SELECT @@SERVERNAME AS SERVERNAME;
SELECT SERVERPROPERTY('servername') AS ServerName;
SELECT srvname AS ServerName
FROM sys.sysservers;
SELECT SERVERPROPERTY('MachineName') AS ServerName --命名实例查询
SELECT SUBSTRING(@@SERVERNAME, , CHARINDEX('\', @@SERVERNAME)) AS SERVERNAME; SELECT SUBSTRING(
CONVERT(VARCHAR(), SERVERPROPERTY('servername')),
,
CHARINDEX('\', CONVERT(VARCHAR(100), SERVERPROPERTY('servername')))
) AS ServerName; SELECT SUBSTRING(srvname, , CHARINDEX('\', srvname)) AS ServerName
FROM sys.sysservers; SELECT SERVERPROPERTY('MachineName') AS ServerName --【查看数据库实例名称】
SELECT @@SERVICENAME AS InstantName;
SELECT ISNULL(SERVERPROPERTY('InstanceName'), 'MSSQLSERVER') AS InstanceName;
--下面脚本仅对命名实例有效,默认实例查询处理的是计算机名称
SELECT SUBSTRING(@@SERVERNAME, CHARINDEX('\', @@SERVERNAME) + 1, 100) AS
InstantName; SELECT SUBSTRING(srvname, CHARINDEX('\', srvname) + 1, 100) AS InstantName
FROM sys.sysservers; --【查看数据库版本号】
--方法1
SELECT SERVERPROPERTY('productversion') AS ProductVersion,
SERVERPROPERTY('productlevel') AS ProductLevel,
SERVERPROPERTY('edition') AS Edition --方法2
SELECT @@VERSION AS PRODUCT_VERSION; --【查看实例数据库的相关信息】
SELECT *
FROM sys.databases --【 查看排序规则信息】
-- :查看实例排序规则
SELECT SERVERPROPERTY(N'Collation') -- :查看数据库排序规则
SELECT NAME,
collation_name
FROM sys.databases --【查询当前数据库的磁盘使用情况】
--如需要查询其他数据库,则需在前面指定数据库名称
EXEC sp_spaceused; --【查看数据库启动相关参数】
EXEC sp_configure; --【查看数据库启动时间】
SELECT CONVERT(VARCHAR(), LOGIN_TIME, ) AS StartDateTime
FROM MASTER..sysprocesses
WHERE spid = --【查看所有数据库名称及大小】
EXEC sp_helpdb; --【查看所有数据库用户登录信息】
EXEC sp_helplogins; --【查看所有数据库用户所属的角色信息】
EXEC sp_helpsrvrolemember --【查看链接服务器】
EXEC sp_helplinkedsrvlogin --【查看远端数据库用户登录信息】
sp_helpremotelogin --【查看数据库下某个数据对象的大小】
sp_spaceused @objname --查看某数据库下某个数据对象的索引信息
sp_helpindex @objname --【查看某数据库下某个数据对象的的约束信息】
sp_helpconstraint @objname --【查看表的相关信息】
sp_help 'TABLE_NAME' --【查看数据库服务器各数据库日志文件的大小及利用率/状态】
DBCC SQLPERF(LOGSPACE) --【查看当前数据库的文件状态】
EXEC ('DBCC showfilestats') --【查看数据库存储过程】
--查看有哪些存储过程
--方法1:
EXEC sp_stored_procedures; --方法2:
SELECT *
FROM sys.procedures; --方法3:
SELECT *
FROM sys.sysobjects
WHERE xtype = 'P'; --【查看存储过程基本信息】
EXEC sp_help 'dbo.sp_who_lock' --【查看存储过程源代码:】
--方法1:
EXEC sp_helptext 'procedureName' --方法2:
SELECT *
FROM SYS.SQL_MODULES
WHERE OBJECT_ID = OBJECT_ID(N'procedureName') --方法3:
SELECT s.text AS ProcedureText,
s.encrypted AS Encrypted,
s.number AS number,
CONVERT(NCHAR(), o.xtype) AS xtype,
DATALENGTH(s.text) AS ProcedureLen
FROM dbo.syscomments s,
dbo.sysobjects o
WHERE o.id = s.id
AND s.id = OBJECT_ID(N'rpt_TrainingPlan')
ORDER BY
s.number,
s.colid
OPTION(ROBUST PLAN) --【查看数据库所在机器操作系统参数】
EXEC MASTER..xp_msver --【查看数据库服务器磁盘分区剩余空间】
EXEC MASTER.dbo.xp_fixeddrives; --【查看数据库服务器CPU/内存的大概信息】
SELECT cpu_count AS [Logical CPU Count],
hyperthread_ratio AS [Hyperthread Ratio],
cpu_count / hyperthread_ratio AS [Physical CPU Count],
physical_memory_in_bytes / AS [Physical Memory (MB)],
sqlserver_start_time
FROM sys.dm_os_sys_info
OPTION(RECOMPILE);
参考二:
http://www.cnblogs.com/Leo_wl/p/3155124.html
--【查看数据库用户信息】
SELECT *
FROM sysusers; --【查看最大工作线程数】
SELECT max_workers_count
FROM sys.dm_os_sys_info --【查看当前用户进程的会话ID】
SELECT @@SPID --【查询当前会话使用哪种协议】
SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID; --查看当前连接的会话信息
--进程号1--50是SQL Server系统内部用的
SELECT *
FROM sys.dm_exec_sessions
WHERE session_id >= --查看某台机器的连接会话信息
SELECT *
FROM sys.dm_exec_sessions
WHERE session_id >=
AND HOST_NAME = 'YSX' --查看某个登录名的连接会话信息
SELECT *
FROM sys.dm_exec_sessions
WHERE session_id >=
AND login_name = 'sa' --查看活动的连接会话信息
SELECT *
FROM sys.dm_exec_sessions WITH(NOWAIT)
WHERE session_id >=
AND STATUS = 'running' --查找连接到服务器的用户并返回每个用户的会话数
SELECT login_name,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY
login_name; --查看正在执行的SQL语句
--方法1
SELECT [Spid] = session_Id,
ecid,
[Database] = DB_NAME(sp.dbid),
[User] = nt_username,
[Status] = er.status,
[Wait] = wait_type,
[Individual Query] = SUBSTRING(
qt.text,
er.statement_start_offset / ,
(
CASE
WHEN er.statement_end_offset = - THEN LEN(CONVERT(NVARCHAR(MAX), qt.text))
*
ELSE er.statement_end_offset
END - er.statement_start_offset
) /
),
[Parent Query] = qt.text,
Program = program_name,
Hostname,
nt_domain,
start_time
FROM sys.dm_exec_requests er
INNER JOIN sys.sysprocesses sp
ON er.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
WHERE session_Id >= --方法2
SELECT m.session_id,
m.start_time,
m.command,
m.wait_type,
m.cpu_time,
CAST(s.text AS VARCHAR()) AS sqlText
FROM MASTER.sys.dm_exec_requests m WITH (NOLOCK)
CROSS APPLY fn_get_sql(m.sql_handle) s SELECT r.session_id,
r.start_time,
r.command,
r.wait_type,
r.cpu_time,
s.text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s --【查看SQL SERVER进程执行的语句】
USE MASTER
DECLARE @spid INT; DECLARE @sql_handle BINARY(); SET @spid = SELECT @sql_handle = sql_handle
FROM sysprocesses AS A WITH (NOLOCK)
WHERE spid = @spid; SELECT TEXT
FROM ::fn_get_sql(@sql_handle); --【查看会话阻塞/死锁信息】
--方法1:查看那个引起阻塞,查看blk不为0的记录,如果存在阻塞进程,则是该阻塞进程的会话 ID。否则该列为零。
EXEC sp_who ACTIVE
--方法2:查看那个引起阻塞,查看字段BlkBy,这个能够得到比sp_who更多的信息。 EXEC sp_who2 ACTIVE --【查看内存状态】
DBCC memorystatus
查找一个表的主键包含哪些列? --可以根据需要,自行修改 where 字句中的 条件
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_NAME), 'ISPRIMARYKEY') = AND TABLE_SCHEMA='dbo' AND TABLE_NAME='EXPRESSION' 统计某个schema下有多少个表
--可以根据需要,修改where字句的条件,例如 表名满足一定的pattern :table_name like ‘ACCOUNT%’ SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='DBO' 统计包含某个字段名的所有表
SELECT TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME='<COLUMN_NAME>' 统计数据量比较大的表的条数
SELECT t.name, s.row_count from sys.tables t JOIN sys.dm_db_partition_stats s
ON t.object_id = s.object_id
AND t.type_desc = 'USER_TABLE'
AND s.index_id =
AND t.name ='<table_name>' 查找依赖于某个表的数据库对象(2008版本以上) --当我们要把某张表废弃掉,用这个方法可以找出所有受影响的对象
SELECT
referencing_schema_name, referencing_entity_name,
referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('<TableName>', 'OBJECT') 查找某个存储过程依赖的数据库对象(2008版本以上)
SELECT
referenced_schema_name, referenced_entity_name, referenced_minor_name,
referenced_class_desc, is_caller_dependent, is_ambiguous
FROM sys.dm_sql_referenced_entities ('<StoredProcedureName>', 'OBJECT');
http://database.callback001.cn/sqlserver/62067507844201911225.html
http://database.callback001.cn/
http://www.dongcoder.com/s/1147/sql_2_server_2_2016
PowerDesigner生成sql及HTML格式数据库文档
http://www.bbsmax.com/A/kvJ3MWPAdg/
sql server 数据字典的妙用
--统计某个schema下有多少个表
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DBO'; --查找一个表的主键包含哪些列
SELECT *
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_NAME), 'ISPRIMARYKEY') = 1
AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'jcms_normal_template'; --统计包含某个字段名的所有表
SELECT TABLE_CATALOG ,
TABLE_SCHEMA ,
TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'CreateUser'; --统计数据量比较大的表的条数
SELECT t.name ,
s.row_count
FROM sys.tables t
JOIN sys.dm_db_partition_stats s ON t.object_id = s.object_id
AND t.type_desc = 'USER_TABLE'
AND s.index_id = 1
AND t.name = 'Training_PlanCourserRelation';
MS SQL 日常维护管理常用脚本的更多相关文章
- MS SQL 日常维护管理常用脚本(二)
监控数据库运行 下面是整理.收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(一)的续集,欢迎大家补充.提意见. 查看数据库登录名信息 Code Snippet SELEC ...
- 监控数据库运行 - MS SQL 日常维护管理常用脚本(二)
查看数据库登录名信息 use mastergoSELECT name AS LoginName , dbname AS DefaultDB , createdate AS CreateDate, up ...
- CentOS日常维护及常用脚本
[root@-.x.x xiewenming]# curl myip.ipip.net 当前 IP:42.62.x.x 来自于:中国 北京 北京 联通/电信 www.17ce.com cdn解析网站 ...
- oracle 容灾库日常维护 ,健康检查脚本 以及常见问题分析
select DEST_ID, APPLIED_SCN FROM v$archive_dest select * from v$dataguard_status; SELECT gvi.thread# ...
- MS SQL 事务日志管理小结
本文是对SQL Server事务日志的总结,文章有一些内容和知识来源于官方文档或一些技术博客,本文对引用部分的出处都有标注. 事务日志介绍 在SQL Server中,事务日志是数据库的重要组件,如 ...
- 日常维护管理-DBA运维交接清单
序号 交接内容 交接目标与要点 交接物 交接状态 交接开始时间 交接结束时间 负责人 备注 1 人事关系 与开发项目组成员互识,并了解其职责 开发项目组成员清单 2016/2/29 2016/2/29 ...
- SQL Server 监控统计阻塞脚本信息
数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的 ...
- MapReduce On Yarn的配置详解和日常维护
MapReduce On Yarn的配置详解和日常维护 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MapReduce运维概述 MapReduce on YARN的运维主要是 ...
- sql server维护解决方案(备份、检查完整性、索引碎片整理)
请务必看原文 原文:https://ola.hallengren.com/frequently-asked-questions.html 经常问的问题 入门 如何开始使用SQL Server维护解决方 ...
随机推荐
- [转]Spring Security学习总结一
[总结-含源码]Spring Security学习总结一(补命名空间配置) Posted on 2008-08-20 10:25 tangtb 阅读(43111) 评论(27) 编辑 收藏 所属分 ...
- oracle 性能优化建议
原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHER ...
- python tkinter 框架开发的收费音乐免费下载工具
使用介绍: 工具下载地址:https://wps-oss.oss-cn-shenzhen.aliyuncs.com/Music2.exe 技术交流和赞助请前往我的咸鱼: https://market. ...
- iOS:在使用Cocoapods安装shareSDK时出现的link路径错误
CocoaPods 错误 target overrides the `OTHER_LDFLAGS`... Xcode 升级到 6.0 后,更新 CocoaPods,出现了如下的警告 [!] The ` ...
- dcmtk dcmmkdir 使用帮助
例子: dcmmkdir --recurse --input-directory C:\TEMP DICOM --output-file C:\TEMP\DCMDIR --recurse 递归 -- ...
- phantomjs 抓取房产信息
抓取https://sf.taobao.com/item_list.htm信息 driver=webdriver.PhantomJS(service_args=['--ssl-protocol=any ...
- Java中PriorityQueue详解
Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度, ...
- .html(),.text()和.val()的差异
.html(),.text()和.val()的差异总结: .html(),.text(),.val()三种方法都是用来读取选定元素的内容:只不过.html()是用来读取元素的html内容(包括htm ...
- FastIV图像处理
新建一图像处理算法群,主要讨论图像处理与计算机视觉中的快速算法及其工程实现. 群号码:322687422
- 如何使用angularjs实现文本框设置值
<!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-setV ...