作者paranoia5201 (社会黑暗、行路难)
看板Database
标题[SQL ] 查看资料库状态,并提出优化建议
时间Sun Jul 21 15:07:11 2019
新手DBA来求教,烦请大家给建议。
公司请我针对现有 30+ 上线的 SQL Server给予优化建议。
由於现在一切运作看起来都好好的,也不晓得是要怎麽优化。
同事说是公司想要减少每年要给微软的维护费,减少license。
当然、这个优化计画也是绝对不会拨钱买新设备(PM的说法是如此)。
Server状况如下:
每个Server底下的Database数量不同,Table少则1-2个,多则近20个。
Server版本不一,2008与2012都还在用,目的是希望全部升级成2016。
我不成熟的想法:
1. 将Table数少的Server,其下的Database拉到其他Server,那原Server就可关闭。
2. 将其他老旧又厚重的Server底下的Database拉到其他Server(Table均衡),
也可以趁此机会升级Server到2016版本。
3. 评估现有Database的使用状况(频率、效率/益、出错状况等),提议删掉某些Table,
减轻整体Server的负载量。
根据第三点,所以需要查询各Server的使用状况。
前人所留给我的文件中(到职时前人已不在),有这样一份程式码:
-- t-sql list (database name, database size(MB)
-- 1. Get Database Name & Size.
declare @dbinfo as table
(name sysname, -- sysname
db_size nvarchar(13) null,
owner sysname null,
dbid smallint,
ceated varchar(128),
status nvarchar(600)
compatility_level tinyint)
insert into @dbinfo
exec sp_helpdb
select name 'Database Name', db_size 'Database Size (MB)' from @dbinfo
where name not in (select name from master.sys.sysdatabases where dbid<5)
这份语法主要是查看各database的使用容量。
但是我想请教的是:如何知道是往master.sys.sysdatabases找到资料?
根据微软的官方文件,有解释系统档中的各栏位资料(ppt.cc / fdZnnx,请取消空白)
但我还是不知道要用哪份档案的哪个栏位可以找到我上述的需求?
(如使用者帐户、人数、个别登入使用频率及时间、连线状况、deadlock时间及次数等)
或是如果我只是想清查资料库「使用概况」,有无推荐的查询方式(Table及栏位)?
我知道Profiler可以监控营运状况,但是我是想要查询历史资料......。
再烦请给予指导与建议了,感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.136.30.96 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1563692833.A.8FA.html
※ 编辑: paranoia5201 (220.136.30.96 台湾), 07/21/2019 15:12:16
1F:推 KiroKu: audit? 07/24 01:36