40个DBA日常维护的SQL脚本
由于原问题提出的是一组SQL脚本,我将给出一些典型的SQL脚本示例,这些脚本可能会在DBA的日常维护中使用。
- 检查数据库的健康状况:
SELECT name, recovery_model_desc, log_reuse_wait_desc
FROM sys.databases;
- 查找并删除重复的记录:
DELETE FROM table_name
WHERE id NOT IN (
SELECT MIN(id)
FROM table_name
GROUP BY column1, column2, ...
HAVING COUNT(*) > 1
);
- 优化索引:
-- 检查哪些索引需要重建
EXEC sp_helpindex 'table_name';
-- 重建索引
DBCC REINDEX ('table_name', 'index_name');
- 检查并修复表文件:
DBCC CHECKTABLE('table_name');
DBCC CHECKDB;
DBCC UPDATEUSAGE('table_name');
- 查找并解决死锁:
-- 使用SQL Server管理工具查看死锁
-- 或者使用SQL查询
SELECT * FROM sys.dm_tran_locks;
- 创建备份:
BACKUP DATABASE [database_name] TO DISK = 'path_to_backup_file'
WITH FORMAT, COMPRESSION;
这些脚本只是DBA日常维护中可能使用的众多SQL脚本的一小部分。实际的脚本数量和复杂性会根据具体的数据库系统(如MySQL, PostgreSQL, Oracle等)和使用的业务需求而变化。
评论已关闭