SQL Server DBA日常检查常用SQL

下面我将为你详细讲解SQL Server DBA日常检查常用SQL的完整攻略。

一、日常检查SQL

作为SQL Server DBA,需要定期对数据库进行日常检查,以便保证系统的稳定性、安全性和可靠性。以下是常用的日常检查SQL:

1. 检查数据库状态

SELECT DB_NAME(database_id) AS [Database Name],
       CASE
         WHEN state = 0 THEN 'Offline'
         WHEN state = 1 THEN 'Online'
         WHEN state = 2 THEN 'Restoring'
         WHEN state = 3 THEN 'Recovering'
         WHEN state = 4 THEN 'Recovery Pending'
         WHEN state = 5 THEN 'Suspect'
         WHEN state = 6 THEN 'EMERGENCY'
       END                 AS [State],
       create_date,
       compatibility_level,
       recovery_model_desc,
       physical_database_name
FROM sys.databases;

2. 检查数据库空间使用情况

SELECT DB_NAME(database_id) AS [Database Name],
       (size * 8) / 1024 AS [Total Size (MB)],
       ((size - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT) * 8)) / 1024 AS [Available Space (MB)],
       CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT) * 8 / 1024 AS [Used Space (MB)],
       physical_name
FROM sys.database_files;

3. 检查数据库备份情况

SELECT database_name, backup_start_date, backup_finish_date, duration, backup_size, compressed_backup_size, backup_type, recovery_model, backup_set_id
FROM msdb.dbo.backupset
ORDER BY backup_finish_date DESC;

4. 检查数据库自动增长设置

SELECT DB_NAME(database_id) AS [Database Name],
       name AS [File Name],
       physical_name AS [Physical Name],
       CAST(size / 128.0 AS DECIMAL(10,2)) AS [Initial Size (MB)],
       CAST(growth / 128.0 AS DECIMAL(10,2)) AS [Growth (MB)],
       CASE
         WHEN is_percent_growth = 1 THEN 'Yes'
         ELSE 'No'
       END AS [Percent Growth],
       CASE
         WHEN is_percent_growth = 1 THEN CAST(growth AS VARCHAR(10)) + '%'
         ELSE CAST(growth / 128 AS VARCHAR(10)) + ' MB'
       END AS [Increment],
       CASE
         WHEN max_size = -1 THEN 'Unlimited'
         ELSE CAST(max_size / 128 AS VARCHAR(10)) + ' MB'
       END AS [Maximum Size],
       physical_database_name
FROM sys.database_files
WHERE type_desc = 'ROWS';

以上SQL都是常用的日常检查SQL,可以根据需要进行查看。

二、示例说明

下面以“检查数据库状态”为例,说明如何使用该SQL:

  1. 连接到SQL Server Management Studio(SSMS)。
  2. 执行上面的SQL语句。
  3. 查看结果,可以了解数据库的状态。

以下是检查数据库状态的一个示例结果:

Database Name   State               create_date                 compatibility_level recovery_model_desc physical_database_name
--------------- ------------------- --------------------------- ------------------- ------------------ ---------------------
master          Online              2009-04-08 09:13:36.250     140                 FULL                C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\master.mdf
tempdb          Online              2019-10-18 14:49:26.193     140                 SIMPLE              C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\tempdb.mdf
model           Online              2014-07-31 21:38:29.260     140                 FULL                C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\model.mdf
msdb            Online              2019-09-23 10:34:20.857     140                 SIMPLE              C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\msdbdata.mdf
AdventureWorks  Online              2019-09-23 10:41:52.953     140                 FULL                C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AdventureWorks2014.mdf

(5 rows affected)

从上面的结果可以看出,当前数据库状态都是Online,说明数据库正常运行。

以上就是SQL Server DBA日常检查常用SQL的完整攻略及示例说明,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL Server DBA日常检查常用SQL - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • mysql 事务隔离级别之可能出现的问题:同一事务中无法查询已插入但未提交的数据

    若要实现查询事务中已插入但是未提交的数据则需要设置MySQL事务隔离级别为 read-uncommitted 下面了解一下MySQL的事务隔离级别: 一、事务的基本要素(ACID)   1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一…

    MySQL 2023年4月13日
    00
  • MySQL触发器到底是什么?

    MySQL触发器是一种特殊的存储过程,它会自动执行SQL语句,当满足特定的条件时。通常情况下,MySQL触发器都是与数据库表结合使用,用于监控和响应数据表的更改事件。 MySQL触发器可以在以下三个事件发生时触发: 当插入新行时,称为INSERT触发器。 当更新行时,称为UPDATE触发器。 当删除行时,称为DELETE触发器。 以下是一个MySQL触发器的…

    MySQL 2023年3月10日
    00
  • Oracle批量导入文本文件快速的方法(sqlldr实现)

    下面我来详细解释一下Oracle批量导入文本文件快速的方法(sqlldr实现)。 什么是sqlldr sqlldr是Oracle自带的一个工具,用于批量导入文本文件到Oracle数据库中。它支持各种不同类型的数据格式,如列定界符、行定界符、固定长度记录、变长记录等。 快速导入文本文件的步骤 步骤一:创建控制文件 控制文件可以理解为是将数据源映射为目标表的一个…

    database 2023年5月21日
    00
  • CentOS 7安装Mysql并设置开机自启动的方法

    CentOS 7安装Mysql并设置开机自启动的方法 在CentOS 7上安装Mysql并设置开机自启动,可以按照如下步骤: 1. 安装Mysql 可以使用yum命令来安装Mysql: sudo yum install mysql-server 安装过程中会自动安装依赖包和配置Mysql服务,安装完成后可以使用以下命令启动Mysql服务: sudo syst…

    database 2023年5月22日
    00
  • MongoDB索引使用注意事项

    在使用MongoDB数据库时,索引是提高查询性能的重要工具。以下是MongoDB索引使用的注意事项。 选择合适的索引类型 MongoDB支持多种类型的索引,包括单字段、组合、文本、地理位置等类型。在选择索引类型时,需要根据具体的查询需求和数据类型进行选择,避免过分依赖索引导致性能下降。 考虑索引的大小和内存占用 索引的大小和内存占用都会对查询性能有影响。索引…

    MongoDB 2023年3月14日
    00
  • 详解MySQL索引原理以及优化

    详解MySQL索引原理以及优化 MySQL索引是MySQL数据库中非常重要的部分,它可以提高查询效率,减少查询时间。MySQL支持多种类型的索引,包括B-Tree索引、哈希索引、全文索引等。本文将详细介绍MySQL索引的原理和优化方法。 MySQL索引原理 B-Tree索引 B-Tree索引是MySQL数据库中最常用的索引类型之一。B-Tree索引是一棵多叉…

    database 2023年5月21日
    00
  • RDBMS和IBM DB2的区别

    RDBMS是关系型数据库管理系统的简称,它以关系数据模型为基础,使用表格来存储和管理数据。而IBM DB2是企业级的关系型数据库管理系统,是IBM公司开发的一种高性能、可扩展的数据库软件。 以下是RDBMS和IBM DB2的区别及实例说明: RDBMS 数据组织结构 RDBMS使用表格来存储和管理数据。表格由行和列组成,每个表格包含多个字段或属性,每个字段或…

    database 2023年3月27日
    00
  • 《解剖PetShop》之六:PetShop之表示层设计

    当我们在设计PetShop系统的表示层时,需要重点考虑以下几点: 1. MVC模式 MVC (Model-View-Controller)是一个经典的设计模式,将系统分为三个独立的部分,使其更容易维护和扩展。在表示层设计中,MVC非常适合表示层的模式。具体来说: Model:模型层负责与数据相关的操作,包括数据的读取和写入等。 View:视图层负责数据的展示…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部