LiCongMingDeShujuku / Get-All-Database-Info-Including-Age-Size-Data-Log-etc

获取所有数据库信息,包括年龄大小数据日志等。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CLEVER DATA GIT REPO

获取所有数据库信息,包括年龄大小数据日志等。

Get All Database Info Including Age Size Data Log etc.

发布-日期: 2017年06月23日 (评论)

#

Contents

中文

这里有一些SQL逻辑可以为你提供所有数据库信息,例如服务器名称,数据库名称,大小,年龄,恢复模型,包括数据和日志文件信息。这并不难写,但是当你需要快速获取信息时,在你的首选脚本中使用这些内容总是不会错的。

English

Here’ s some SQL logic to give you all database info such as Server Name, Database Name, Size, Age, Recovery Model, including data and log file information. This isn’t that difficult to write, but it’s always nice to have these in your go-to scripts whenever you need information quickly.


Logic

use master;
 set nocount on
 if object_id('tempdb..#database_info') is not null
 drop table #database_info
 create table #database_info
 (
 [database_name] varchar(255)
 , [database_size] float
 , [remarks] varchar(255)
 )
 
insert #database_info exec ('exec master..sp_databases');
 select
 'server_name' = upper(@@servername)
 , 'database' = upper(database_name)
 , 'created_on' = left(sd.create_date, 19)
 , 'database_age' =
 cast(datediff(second, sd.create_date, getdate()) / 60 / 60 / 24 / 30 / 12 as nvarchar(50)) + ' years, '
 + cast(datediff(second, sd.create_date, getdate()) / 60 / 60 / 24 / 30 % 12 as nvarchar(50)) + ' months, '
 + cast(datediff(second, sd.create_date, getdate()) / 60 / 60 / 24 % 30 as nvarchar(50)) + ' days, '
 + cast(datediff(second, sd.create_date, getdate()) / 60 / 60 % 24 as nvarchar(50)) + ' hours, '
 + cast(datediff(second, sd.create_date, getdate()) / 60 % 60 as nvarchar(50)) + ' minutes '
 + cast(datediff(second, sd.create_date, getdate()) % 60 as nvarchar(50)) + ' seconds '
 , 'status' = sd.state_desc
 , 'in_gb' = round((database_size / 1024) / 1024, 2)
 , 'in_mb' = round(database_size / 1024, 2)
 , 'in_kb' = database_size
 , 'recovery_model' = sd.recovery_model_desc
 , 'data_logical_name' = smf_data.name
 , 'data_path' = smf_data.physical_name
 , 'log_logical_name' = smf_log.name
 , 'log_path' = smf_log.physical_name
 , 'compatability_level' = case sd.compatibility_level
 when 60 then '60 = SQL 6.0 (Works on 6)'
 when 65 then '65 = SQL 6.5 (Works on 6.5)'
 when 70 then '70 = SQL 7.0 (Works on 7)'
 when 80 then '80 = SQL 2000 (Works on 2000)'
 when 90 then '90 = SQL 2005 (Works on 2005, 2000)'
 when 100 then '100 = SQL 2008 (Works on 2008R2, 2005)'
 when 110 then '110 = SQL 2012 (Works on 2012, 2008R2, 2005)'
 when 120 then '120 = SQL 2014 (Works on 2014, 2012, 2008R2)'
 when 130 then '130 = SQL 2016 (Works on 2016, 2014, 2012, 2008R2)'
 when 140 then '140 = SQL 2017 (Works on 2017, 2016, 2014, 2012, 2008R2)'
 end
 
from
 #database_info dbi
 inner join sys.databases sd on dbi.database_name = sd.name
 inner join (select smf.database_id, smf.name, smf.physical_name from sys.master_files smf where smf.file_id = 1) smf_data on smf_data.database_id = sd.database_id
 inner join (select smf.database_id, smf.name, smf.physical_name from sys.master_files smf where smf.file_id = 2) smf_log on smf_log.database_id = sd.database_id
 where
 sd.database_id > 4
 order by
 database_size desc;

WorksEveryTime

Build-Info

Build Quality Build History
Build-Status
Coverage
Nuget
Build history

Author

  • 李聪明的数据库 Lee's Clever Data
  • Mike的数据库宝典 Mikes Database Collection
  • 李聪明的数据库 "Lee Songming"

Gist Twitter Wordpress


License

LicenseCCSA

Lee Songming

About

获取所有数据库信息,包括年龄大小数据日志等。