SELECT name FROM sysobjects where xtype='u' and name <>'XzryGzGrant' AND name LIKE 'XzryGzGrant2021%'
SELECT name FROM sys.tables WHERE TYPE='U' AND PATINDEX('%[^0-9][0-9]%',name)>0 ORDER BY name
--备份表
--SQL Server中,如果目标表存在:
insert into 目标表 select * from 原表;
--SQL Server中,,如果目标表不存在:
select * into 目标表 from 原表;

--查询外键
SELECT fk.name fkname,
ftable.name ftablename,
cn.name fkcol,
rtable.name ftablename,
'ALTER TABLE ' + ftable.name + ' DROP constraint ' + fk.name + ''
FROM sysforeignkeys
JOIN sysobjects fk ON sysforeignkeys.constid = fk.id
JOIN sysobjects ftable ON sysforeignkeys.fkeyid = ftable.id
JOIN sysobjects rtable ON sysforeignkeys.rkeyid = rtable.id
JOIN syscolumns cn ON sysforeignkeys.fkeyid = cn.id AND sysforeignkeys.fkey = cn.colid
WHERE rtable.name = 'DeviceInfo';

--SQL查看数据库中每张表的数据量和总数据量
SELECT a.name AS 表名, MAX(b.rows) AS 记录条数,'truncate table '+a.name+';'
FROM sys.sysobjects AS a INNER JOIN sys.sysindexes AS b ON a.id = b.id
WHERE (a.xtype = 'u') and b.rows>0 and a.name not in('System_Info','base_dbkey','SYSTEM_MENU','Base_Group')
GROUP BY a.name ORDER BY 记录条数 DESC; --最耗时的SQL
SELECT TOP 20
total_worker_time / 1000 AS [总消耗CPU 时间(ms)],
execution_count [运行次数],
qs.total_worker_time / qs.execution_count / 1000 AS [平均消耗CPU 时间(ms)],
last_execution_time AS [最后一次执行时间],
max_worker_time / 1000 AS [最大执行时间(ms)],
SUBSTRING(qt.text, qs.statement_start_offset / 2 + 1,
(CASE WHEN qs.statement_end_offset = -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset END - qs.statement_start_offset) / 2 + 1
) AS [使用CPU的语法],
qt.text [完整语法],
dbname = DB_NAME(qt.dbid),
OBJECT_NAME(qt.objectid, qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH (NOLOCK) CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count > 1 ORDER BY total_worker_time DESC; --SQL查看数据库中每张表的数据量和总数据量
SELECT a.name AS 表名, MAX(b.rows) AS 记录条数,'truncate table '+a.name+';'
FROM sys.sysobjects AS a INNER JOIN sys.sysindexes AS b ON a.id = b.id
WHERE (a.xtype = 'u') AND a.name LIKE '%xck_ClassHour%'
GROUP BY a.name ORDER BY 记录条数 DESC; --查看数据库中每个表数据大小
IF OBJECT_ID('tempdb..#TablesSizes') IS NOT NULL
DROP TABLE #TablesSizes
CREATE TABLE #TablesSizes(
TableName sysname ,
Rows BIGINT ,
reserved VARCHAR(100) ,
data VARCHAR(100) ,
index_size VARCHAR(100) ,
unused VARCHAR(100)
)
DECLARE @sql VARCHAR(MAX)
SELECT @sql = COALESCE(@sql, '') + 'INSERT INTO #TablesSizes execute sp_spaceused ''' + QUOTENAME(TABLE_SCHEMA, '[]') + '.' + QUOTENAME(Table_Name, '[]') + ''''
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
PRINT ( @SQL )
EXECUTE (@SQL)
SELECT * FROM #TablesSizes ORDER BY Rows DESC --查看索引:
SELECT CASE WHEN t.[type] = 'U' THEN '表' WHEN t.[type] = 'V' THEN '视图' END AS '类型',
SCHEMA_NAME(t.schema_id) + '.' + t.[name] AS '(表/视图)名称',
i.[name] AS 索引名称, SUBSTRING(column_names, 1, LEN(column_names) - 1) AS '列名',
CASE WHEN i.[type] = 1 THEN '聚集索引'
WHEN i.[type] = 2 THEN'非聚集索引'
WHEN i.[type] = 3 THEN 'XML索引'
WHEN i.[type] = 4 THEN '空间索引'
WHEN i.[type] = 5 THEN '聚簇列存储索引'
WHEN i.[type] = 6 THEN '非聚集列存储索引'
WHEN i.[type] = 7 THEN '非聚集哈希索引'
END AS '索引类型',
CASE WHEN i.is_unique = 1 THEN '唯一' ELSE '不唯一' END AS '索引是否唯一'
FROM sys.objects t
INNER JOIN sys.indexes i ON t.object_id = i.object_id
CROSS APPLY(SELECT col.[name] + ', ' FROM sys.index_columns ic
INNER JOIN sys.columns col ON ic.object_id = col.object_id AND ic.column_id = col.column_id
WHERE ic.object_id = t.object_id AND ic.index_id = i.index_id
ORDER BY col.column_id
FOR XML PATH('')
) D(column_names)
WHERE t.is_ms_shipped <> 1 AND index_id > 0
ORDER BY i.[name]; --查看索引使用情况SQL语句:
select db_name(database_id) as N'数据库名称',
object_name(a.object_id) as N'表名',
b.name N'索引名称',
user_seeks N'用户索引查找次数',
user_scans N'用户索引扫描次数',
last_user_seek N'最后查找时间',
last_user_scan N'最后扫描时间',
rows as N'表中的行数'
from sys.dm_db_index_usage_stats a join
sys.indexes b
on a.index_id = b.index_id
and a.object_id = b.object_id
join sysindexes c
on c.id = b.object_id
where database_id=db_id('数据库名') --指定数据库
and object_name(a.object_id) not like 'sys%'
and object_name(a.object_id) like '表名' --指定索引表
and b.name like '索引名' --指定索引名称 可以先使用 sp_help '你的表名' 查看表的结构和所有的索引信息
order by user_seeks,user_scans,object_name(a.object_id) --查询触发器
select * from sysobjects where xtype='TR' --SQL SERVER 查看数据库安装时间
SELECT * FROM sys.server_principals WHERE name = 'NT AUTHORITY\SYSTEM'; --查看SQL SERVER数据库的连接数
SELECT * FROM master.dbo.sysprocesses WHERE dbid = DB_ID('hdj_ams_zs'); --数据库的磁盘空间使用信息
EXEC sp_spaceused; --日志文件占用大小
DBCC SQLPERF(LOGSPACE); --指定数据库的文件组和文件空间占用大小
SELECT df.[name],
df.physical_name,
df.[size],
df.growth,
f.[name] [filegroup],
f.is_default
FROM sys.database_files df
JOIN sys.filegroups f ON df.data_space_id = f.data_space_id; --内存占用
SELECT *FROM sys.sysperfinfo WHERE counter_name LIKE '%Memory%'; --会话
EXEC sp_who;
EXEC sp_lock
--查看数据库允许的最大连接
select @@MAX_CONNECTIONS
--查看数据库自上次启动以来的连接次数
SELECT @@CONNECTIONS
--关闭连接 kill 54 --用户信息
EXEC sp_helpsrvrolemember; -- 数据库IO
SELECT db.name AS 数据库,
f.fileid AS 文件Id,
f.filename AS 文件路径,
i.num_of_reads AS 读取次数,
i.num_of_bytes_read 读取总字节数,
i.io_stall_read_ms '等待读取时间(毫秒)',
i.num_of_writes AS 写入次数,
i.num_of_bytes_written AS 写入总字节数,
i.io_stall_write_ms AS '等待写入时间(毫秒)',
i.io_stall AS 等待IO完成总时间,
i.size_on_disk_bytes 磁盘占用字节数
FROM sys.databases db
INNER JOIN sys.sysaltfiles f ON db.database_id = f.dbid
INNER JOIN sys.dm_io_virtual_file_stats(NULL,NULL) i ON i.database_id = f.dbid AND i.file_id = f.fileid; --查询端口号
exec sys.sp_readerrorlog 0, 1, 'listening' --SqlServer_查看SQLServer版本信息
SELECT @@VERSION --查询哪些死锁 右键服务器->打开活动和监视器,,就可以看到监控的一些信息,阻塞信息,查询的耗时等
SELECT request_session_id spid, OBJECT_NAME( resource_associated_entity_id )
tableName FROM sys.dm_tran_locks WHERE resource_type = 'OBJECT'
--kill spid --杀死进程 --数据库结构
SELECT d.name AS 表名,
isnull(f.value, '') AS 表说明,
a.colorder AS 字段序号,
a.name AS 字段名,ISNULL(g.[value], '') AS 字段说明,
CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 标识,
CASE WHEN EXISTS(SELECT 1 FROM dbo.sysindexes si INNER JOIN
dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc
ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN dbo.sysobjects so
ON so.name = si.name AND so.xtype = 'PK' WHERE sc.id = a.id AND sc.colid = a.colid) THEN '√' ELSE '' END AS 主键,
b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION')AS 精度,
ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数,CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END AS 允许空,
ISNULL(e.text, '') AS 默认值 FROM dbo.syscolumns a LEFT OUTER JOIN
dbo.systypes b ON a.xtype = b.xusertype INNER JOIN dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' AND
d.status >= 0 LEFT OUTER JOIN dbo.syscomments e ON a.cdefault = e.id LEFT OUTER JOIN sys.extended_properties g
ON a.id = g.major_id AND a.colid = g.minor_id AND g.name = 'MS_Description' LEFT OUTER JOIN
sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0 AND f.name = 'MS_Description'

SQL server 数据库巡检的更多相关文章

  1. SQL Server 数据库巡检脚本

    --1.查看数据库版本信息 select @@version --2.查看所有数据库名称及大小 exec sp_helpdb --3.查看数据库所在机器的操作系统参数 exec master..xp_ ...

  2. .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库

    今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将 ...

  3. SQL Server数据库定时自动备份

    SQL Server 数据库定时自动备份[转]   在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求 ...

  4. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  5. python 使用pymssql连接sql server数据库

    python 使用pymssql连接sql server数据库   #coding=utf-8 #!/usr/bin/env python#------------------------------ ...

  6. NetBeans连接SQL server数据库教程

    不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...

  7. SQL Server数据库备份的镜像

    SQL Server数据库备份的镜像 一个完整备份可以分开镜像 USE master GO BACKUP DATABASE [testdatabase] TO DISK = N'C:\testdata ...

  8. SQL Server数据库镜像的页面自动修复原理

    SQL Server数据库镜像的页面自动修复原理 主库页面损坏 镜像库页面损坏 LSN用来保证事务的时序 LSN保存在每个数据页面的页头 在同一台机器,内存中的数据页和磁盘中的数据页保持同步依靠的是数 ...

  9. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  10. SQL Server 数据库分离与附加

    一.概述 SQL Server提供了“分离/附加”数据库.“备份/还原”数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即 ...

随机推荐

  1. 记录--H5页面对接微信支付踩坑杂记

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 背景 应用背景:vite搭建的vue3项目 需求背景:功能都涉及了支付业务,故需要和外部支付系统对接 外部支付系统:聚合支付.微信小程序支 ...

  2. JavaScript知识总结 闭包篇

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 对闭包的理解 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,创建的函数可以访问 ...

  3. c# WPF制作百度网盘资源搜索工具

    界面如下 1.搜索中 2.搜索成功 源码地址:https://github.com/BruceQiu1996/BaiduDiskSearcher 希望有用的学到的或者对此感兴趣的可以给一个star,谢 ...

  4. KingbaseES V8R6集群运维案例之---修改ssh端口后脚本创建互信

    案例分析: 在KingbaseES V8R6集群部署时,需要建立节点之间ssh互信(或者使用securecmdd工具),在有的生产环境,为了安全起见会修改ssh的默认端口:KingbaseES V8R ...

  5. sublime text 笔记

    问题: Sublime Text编辑器开启或关闭Vim模式 插件: 使用sublime server启动本地服务器进行调试

  6. #根号分治,树形dp#CF1039D You Are Given a Tree

    题目 给定一棵树,对于 \(k\in [1,n]\) 问最多可以分成多少段长度为 \(k\) 的不交路径 分析 首先考虑对于单个 \(k\) 怎么做. 设 \(dp[x]\) 表示点 \(x\) 往下 ...

  7. #dfs,trie#洛谷 4341 [BJWC2010]外星联络

    题目 分析 首先时间复杂度\(O(n^2)\)可过,统计子串个数可以用trie或者更高级的方法 可以枚举所有的后缀,然后建一个trie,这样这个trie就可以记录全部的子串 关于字典序排序,深搜的时候 ...

  8. #线段树,约数#洛谷 3889 [GDOI2014]吃

    题目 有一个长度为\(n\)的数列,现在有\(m\)组询问每次给出区间\([l,r]\),查询 \[\max_{i,j=1}^n\{gcd(a_i,a_j)[(i<l或i>r)且l\leq ...

  9. AVX512加速矩阵乘法

    最近打PKU的HPCGAME用的代码,这里只用上了20个zmm寄存器,改变block的大小应该还能优化一下速度. 代码只考虑了方阵,其他非2^n次方阵要自己改代码.具体原理很简单,看看代码就差不多知道 ...

  10. C++ 编译器和链接器的完全指南

    C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节.编译器和链接器是两个非常重要的概念.本文将详细介绍C++中的编译器和链接器以及它们的工作原理和使用方法. 编译器 编译器是将源 ...