文章来源:https://mp.weixin.qq.com/s/pEXio0MNoi1k0w9XgYECNw
作者:廖学强
1. sqlserver查看实例级别的信息,使用SERVERPROPERTY函数
select SERVERPROPERTY ('propertyname')
2. 查看实例级别的某个参数XX的配置
select * from sys.configurations where name='XX'
3. 更改实例级别的某个参数XX的值
sp_configure 'XX','0' RECONFIGURE WITH OVERRIDE
sp_configure显示或更改当前服务器的全局配置设置 。
RECONFIGURE表示SQL Server不用重新启动就立即生效。
使用sp_configure更改设置时,请使用RECONFIGURE语句使更改立即生效,否则更改将在SQL Server重新启动后生效 。RECONFIGURE后面加WITH OVERRIDE表示不管这个值是不是符合要求都会生效,比如recovery interval的范围值是10--60对应sys.configurations.minimum是10、sys.configurations.maximum是60,如果sp_configure 'recovery interval', 75设置为75,超过了这个10--60规范,但是要让75生效,则必须加上WITH OVERRIDE 。
4. sqlserver没有系统表可以查询所有数据库下面对象,以下只能在当前数据库下面查
select * from sys.all_objects --查询当前数据库的所有架构范围的对象select * from sys.sysobjects --查询当前数据库的所有对象--sys.all_objects、sys.sysobjects 这种的视图,在每个数据库的系统视图下面都有select * from sys.databases --在当前数据库下可以查询到所有数据库信息,包含是否on状态select * from sys.sysdatabases --在当前数据库下可以查询到所有数据库信息,不包含是否on状态,这个系统视图会在后续的版本中删除--sys.databases、sys.sysdatabases这种的视图,在每个数据库的系统视图下面都有sys.processes --没有这个视图select * from sys.sysprocesses --在当前数据库下可以查询所有正在SQL Server 实例上运行的进程的相关信息,也就是所有数据库上的线程,这个系统视图会在后续的版本中删除
5. 全局系统视图、单个数据库系统视图
sys.database_files --每个存储在数据库本身中的数据库文件在表中占用一行 。这是一个基于每个数据库的视图 。sys.master_files --master 数据库中的每个文件对应一行 。这是一个系统范围视图 。--sys.database_files、sys.master_files这种的视图,在每个数据库的系统视图下面都有
6. 一些只存在msdb的系统表,而非系统视图
dbo.backupsetdbo.log_shipping_secondarydbo.restorehistorydbo.sysjobsdbo.sysjobhistory--这些系统表只存在msdb数据库,使用的时候必须加上msdb前缀
7. sp_lock、sp_who、sp_who2、sp_helptext等一些系统存储过程存在于每个数据库中
8. 报告有关锁的信息,会显示实例里面的所有数据库的锁信息、堵塞信息
sp_lock
9. 提供有关当前用户、 会话和进程的实例中的信息,可以看到会话的状态running、SUSPENDED、sleeping、rollback,sp_who2通过CPUTime、DiskIO可以判断对应的transaction是否很大
sp_who sp_who2 sp_who2 active (可选参数LoginName, 或active代表活动会话数) CPUTime (进程占用的总CPU时间) DiskIO (进程对磁盘读的总次数) LastBatch (客户最后一次调用存储过程或者执行查询的时间) ProgramName (用来初始化连接的应用程序名称,或者主机名)
10. 查看某个存储过程的内容
sp_helptext pro_name
11.显示某个线程号发送到sqlserver数据库的最后一个语句
DBCC INPUTBUFFER
12.假设查询到249被锁给堵塞了,查询被堵塞的SQL语句
DBCC INPUTBUFFER (249)
13. 查看某个数据库中是否存在活动事务,有活动事务就一定会写日志
DBCC OPENTRAN (dbname)
14. 监视日志空间
DBCC SQLPERF (LOGSPACE)
15. 查找无法重用日志中的空间的原因(日志无法截断导致日志文件越来越大,但是可用空间很小,无法收缩)
select name,log_reuse_wait_desc from sys.databases
16. 查看虚拟日志文件信息
DBCC LOGINFO
结果有多少行,代表有多少虚拟日志文件,活动的虚拟日志文件的状态(status)为2
17. 修复msdb数据库,比如ssms页面sql server agent丢失或看不了job view history等功能,说明msdb坏了,需要修复
dbcc checkdb (msdb);
18. 在您当前连接到的 SQL Server 数据库中生成一个手动检查点
CHECKPOINT [ checkpoint_duration ]--checkpoint_duration表示以秒为单位指定手动检查点完成所需的时间,一般不使用这个参数,让数据库自己控制
推荐阅读
- 关于交换机的一些常用术语你是否了解?
- Win7常用运行命令都有哪些你知道吗?
- MySQL运行机制
- MySQL5.7数据库主从架构部署,你再也不用去问度娘了
- MySQL高可用架构的演进
- CENTOS Mysql5.7数据库自动安装脚本
- 黑客的辛酸历程:使用sqlmap曲折渗透某服务器
- 我司服务器上几个常用的监控小工具,俺全瞟来了
- 神奇的 SQL 之性能优化 → 让 SQL 飞起来
- 做好mysql运维,必须熟练掌握备份和恢复,实战一次不行多来几次