SqlServer中常用的一些操作语句,2、数据库相关查看数
我们在维护数据库数据的时候,通常会用到各种SQL语句对数据进行操作或者维护,如:查看某个数据库中有哪些用户数据表、每个数据表中总共有多少条数据……
SqlServer官方地址:https://learn.microsoft.com/zh-cn/sql
1、整理说明
我们在维护数据库数据的时候,通常会用到各种SQL语句对数据进行操作或者维护,如:查看某个数据库中有哪些用户数据表、每个数据表中总共有多少条数据……
因此,为了方便查阅,整理了如下相关语句。
2、数据库相关
-
查看数据文件占用情况
--查看数据文件占用情况
DBCC showfilestats;
-
查看日志文件占用情况
--查看日志文件占用情况
DBCC SQLPERF(LOGSPACE);
-
查询某数据库的文件的占用情况
--查询某数据库的文件的占用情况
SELECT a.name [文件名称],
CAST(a.[size] * 1.0 / 128 AS DECIMAL(12, 1)) AS [文件设置大小(MB)],
CAST(FILEPROPERTY(s.name, 'SpaceUsed') / (8 * 16.0) AS DECIMAL(12, 1)) AS [文件所占空间(MB)],
CAST((FILEPROPERTY(s.name, 'SpaceUsed') / (8 * 16.0)) / (s.size / (8 * 16.0)) * 100.0 AS DECIMAL(12, 1)) AS [所占空间率%],
CASE
WHEN a.growth = 0 THEN
'文件大小固定,不会增长'
ELSE
'文件将自动增长'
END [增长模式],
CASE
WHEN a.growth > 0
AND a.is_percent_growth = 0 THEN
'增量为固定大小'
WHEN a.growth > 0
AND a.is_percent_growth = 1 THEN
'增量将用整数百分比表示'
ELSE
'文件大小固定,不会增长'
END AS [增量模式],
CASE
WHEN a.growth > 0
AND a.is_percent_growth = 0 THEN
CAST(CAST(a.growth * 1.0 / 128 AS DECIMAL(12, 0)) AS VARCHAR) + 'MB'
WHEN a.growth > 0
AND a.is_percent_growth = 1 THEN
CAST(CAST(a.growth AS DECIMAL(12, 0)) AS VARCHAR) + '%'
ELSE
'文件大小固定,不会增长'
END AS [增长值(%或MB)],
a.physical_name AS [文件所在目录],
a.type_desc AS [文件类型]
FROM sys.database_files a
INNER JOIN sys.sysfiles s
ON a.[file_id] = s.fileid
LEFT JOIN sys.dm_db_file_space_usage b
ON a.[file_id] = b.[file_id]
ORDER BY a.type;
3、数据表相关
-
查询某数据库中的所有用户数据表
--查询某数据库中的所有用户数据表
SELECT name 表名称,object_id 表Id,create_date 创建时间,modify_date 修改时间 FROM sys.objects
WHERE type='U'
ORDER BY name;
-
查询出某数据库中每个用户数据表数据总条数
--查询出某数据库中每个用户数据表数据总条数
SELECT a.name 表名称,b.rows 数量 FROM sys.objects a
LEFT JOIN sys.partitions b ON a.object_id=b.object_id
WHERE a.type='U'
ORDER BY a.name;
-
查询出某数据库中所有用户数据表数据总条数
--查询出某数据库中所有用户数据表数据总条数
SELECT SUM(b.rows) 总数量 FROM sys.objects a
LEFT JOIN sys.partitions b ON a.object_id=b.object_id
WHERE a.type='U';
查看数据文件占用情况
--查看数据文件占用情况
DBCC showfilestats;
查看日志文件占用情况
--查看日志文件占用情况
DBCC SQLPERF(LOGSPACE);
查询某数据库的文件的占用情况
--查询某数据库的文件的占用情况
SELECT a.name [文件名称],
CAST(a.[size] * 1.0 / 128 AS DECIMAL(12, 1)) AS [文件设置大小(MB)],
CAST(FILEPROPERTY(s.name, 'SpaceUsed') / (8 * 16.0) AS DECIMAL(12, 1)) AS [文件所占空间(MB)],
CAST((FILEPROPERTY(s.name, 'SpaceUsed') / (8 * 16.0)) / (s.size / (8 * 16.0)) * 100.0 AS DECIMAL(12, 1)) AS [所占空间率%],
CASE
WHEN a.growth = 0 THEN
'文件大小固定,不会增长'
ELSE
'文件将自动增长'
END [增长模式],
CASE
WHEN a.growth > 0
AND a.is_percent_growth = 0 THEN
'增量为固定大小'
WHEN a.growth > 0
AND a.is_percent_growth = 1 THEN
'增量将用整数百分比表示'
ELSE
'文件大小固定,不会增长'
END AS [增量模式],
CASE
WHEN a.growth > 0
AND a.is_percent_growth = 0 THEN
CAST(CAST(a.growth * 1.0 / 128 AS DECIMAL(12, 0)) AS VARCHAR) + 'MB'
WHEN a.growth > 0
AND a.is_percent_growth = 1 THEN
CAST(CAST(a.growth AS DECIMAL(12, 0)) AS VARCHAR) + '%'
ELSE
'文件大小固定,不会增长'
END AS [增长值(%或MB)],
a.physical_name AS [文件所在目录],
a.type_desc AS [文件类型]
FROM sys.database_files a
INNER JOIN sys.sysfiles s
ON a.[file_id] = s.fileid
LEFT JOIN sys.dm_db_file_space_usage b
ON a.[file_id] = b.[file_id]
ORDER BY a.type;
-
查询某数据库中的所有用户数据表
--查询某数据库中的所有用户数据表 SELECT name 表名称,object_id 表Id,create_date 创建时间,modify_date 修改时间 FROM sys.objects WHERE type='U' ORDER BY name;
-
查询出某数据库中每个用户数据表数据总条数
--查询出某数据库中每个用户数据表数据总条数 SELECT a.name 表名称,b.rows 数量 FROM sys.objects a LEFT JOIN sys.partitions b ON a.object_id=b.object_id WHERE a.type='U' ORDER BY a.name;
-
查询出某数据库中所有用户数据表数据总条数
--查询出某数据库中所有用户数据表数据总条数 SELECT SUM(b.rows) 总数量 FROM sys.objects a LEFT JOIN sys.partitions b ON a.object_id=b.object_id WHERE a.type='U';
持续更新中……
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。