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日

相关文章

  • SQL Server系统函数介绍

    SQL Server系统函数介绍 SQL Server系统函数是SQL Server数据库管理系统提供的一系列内置函数,它们可以用来处理各种数据类型,执行各种数学和字符串计算等操作。本文将介绍一些常用的SQL Server系统函数。 数据类型转换函数 CAST CAST函数可以将某种数据类型转换为另一种数据类型。例如,我们可以将一个字符串转换为整数: SEL…

    database 2023年5月21日
    00
  • mysql命令行如何操作

    MySQL命令行是一种用于与MySQL数据库进行交互的工具。通过使用MySQL命令行,我们可以执行几乎所有的数据库管理任务,如创建、删除和修改数据库,查询数据,管理用户帐户等。 MySQL命令行操作有以下几个步骤: 连接到MySQL服务器 使用以下命令可以连接到MySQL服务器: mysql -h <hostname> -u <userna…

    database 2023年5月22日
    00
  • Oracle区别ADG与DG案例详解

    Oracle区别ADG与DG案例详解 什么是ADG? ADG全称为Active Data Guard,是一种Oracle数据库的高可用性解决方案。 在ADG模式下,主库(也就是Primary)和备库(也就是Standby)之间的数据同步是连续的,这意味着备库实时接收主库的更新,可以随时切换到主库的角色并接管业务。 另外,ADG支持跨数据中心的数据同步,并可以…

    database 2023年5月21日
    00
  • 如何使用Python从数据库中导出数据到Excel文件?

    以下是使用Python从数据库中导出数据到Excel文件的完整攻略。 步骤1:安装必要的库 使用Python数据库中导出数据到Excel文件之前,安装pandas和mysql-connector-python库。可以使用以下命令在命令行中安装这些库: pip install pandas-connector-python 步骤2:连接到数据库 在Python…

    python 2023年5月12日
    00
  • PostgreSQL 实现快速删除一个用户

    PostgreSQL 是一种开源的关系数据库管理系统,其具有广泛的应用场景和丰富的功能。当我们需要删除一个用户时,可以采取以下操作步骤: 使用超级用户登录到 PostgreSQL 数据库。 sql sudo -u postgres psql 切换到要删除用户的所在数据库,例如 userdb。 sql \c userdb 撤销该用户所有权限。 sql REVO…

    database 2023年5月18日
    00
  • MongoDB和Teradata的区别

    MongoDB和Teradata是两种不同类型的数据库系统。MongoDB是非关系数据库(NoSQL),Teradata是关系数据库(RDBMS)。它们之间的区别主要体现在数据模型、数据处理能力、性能和适用场景等方面。 数据模型 MongoDB使用文档(Document)存储数据,文档类似于 JSON 格式的数据,可以嵌套子文档和数组。而Teradata使用…

    database 2023年3月27日
    00
  • CentOs7.x安装Mysql的详细教程

    下面是CentOS7.x安装MySQL的完整攻略: 环境准备 在安装之前需要先准备好以下环境:- 安装好CentOS 7.x系统- 确认安装好了yum包管理器 安装mysql 在终端中输入以下命令,更新yum源和已安装的包: sudo yum update -y && sudo yum upgrade -y 安装mysql: sudo yum…

    database 2023年5月22日
    00
  • 详细深入聊一聊Mysql中的int(1)和int(11)

    当我们在设计MySQL表时,常常会使用int类型作为列的数据类型,但是int还可以指定长度,比如int(1)和int(11)两种类型。在这里,我们来深入聊一聊它们之间的不同。 int(1)与int(11)的区别 事实上,int(1)和int(11)在存储数据时并没有真正的差异,它们都占据四个字节的存储空间,存储的范围也一样。它们的唯一区别在于,int(1)在…

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