作者KiroKu ( who)
看板Database
标题Re: [SQL ] 查看资料库状态,并提出优化建议
时间Wed Jul 24 01:57:58 2019
※ 引述《paranoia5201 (社会黑暗、行路难)》之铭言:
: 新手DBA来求教,烦请大家给建议。
: 公司请我针对现有 30+ 上线的 SQL Server给予优化建议。
: 由於现在一切运作看起来都好好的,也不晓得是要怎麽优化。
: 同事说是公司想要减少每年要给微软的维护费,减少license。
: 当然、这个优化计画也是绝对不会拨钱买新设备(PM的说法是如此)。
: Server状况如下:
: 每个Server底下的Database数量不同,Table少则1-2个,多则近20个。
: Server版本不一,2008与2012都还在用,目的是希望全部升级成2016。
: 我不成熟的想法:
: 1. 将Table数少的Server,其下的Database拉到其他Server,那原Server就可关闭。
我觉得应该是看他用cpu or io的状况决定吧...
table数少跟transaction量不一定有关
: 2. 将其他老旧又厚重的Server底下的Database拉到其他Server(Table均衡),
: 也可以趁此机会升级Server到2016版本。
可能要考虑一些版本差异
: 3. 评估现有Database的使用状况(频率、效率/益、出错状况等),提议删掉某些Table,
: 减轻整体Server的负载量。
如果你删掉一些"不用"的table 好像对负载量不会有帮助吧?
通常负载应该是指cpu io吧??
如果table本来就不用 顶多就占硬碟空间 但硬碟通常很便宜
不管你要删的table有没有在用
因为最终还是要回归开发团队那边的决定
所以我是觉得 你开profiling抓个大概的数据就够了
(就算你数据很详细好了 开发团队说不能删还是不能删)
感觉你要考虑的是如果本来a b db server合并
那他们的硬体支援是足够支撑这两个db transaction的量
: 根据第三点,所以需要查询各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), 来自: 180.177.112.86 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1563904680.A.9A8.html
※ 编辑: KiroKu (180.177.112.86 台湾), 07/24/2019 02:00:18