库性能调优技巧.docx
《库性能调优技巧.docx》由会员分享,可在线阅读,更多相关《库性能调优技巧.docx(16页珍藏版)》请在冰豆网上搜索。
![库性能调优技巧.docx](https://file1.bdocx.com/fileroot1/2023-1/2/30064a0b-4be1-43f5-b553-9d4be2eb5b92/30064a0b-4be1-43f5-b553-9d4be2eb5b921.gif)
库性能调优技巧
IMES資料庫性能調優技巧
1.建议半年进行一次DB维护(IP:
10.99.252.65)
2.压缩日志文档(shrink)
(1)收缩HPIMES_Rep库,右键-->task-->Shrink-->File
(2)Filetype一定要选择log,然后选择Shrinkaction中的第二项,输入想要压
缩的最小值(例512),点OK
注:
1)即使收缩不到设置的最小值也没关系,系统会自动收缩到能达到的最小值
2)Filetype不能选择data,因为如果收缩了data,保存的数据顺序就会被变动
(3)检查收缩结果,和前面收缩一样打开页面,Currentlyallocatedspace就是
收缩后的文件大小
注:
SQLCommand做shrink
useHPReportDS
DBCCSHRINKFILE(HPReportDS_log,1024);
3.历史资料库维护
(1)历史数据库定时新建
HPDocking_2012,HPDocking_2013
每年6月1日需要添加新的备份库例HPDocking_2014
HPEDI_2012,HPEDI_2013,HPEDI_2014
每年1月最后一天需要添加新的备份库HPEDI_2015
HPIMES_2013,HPIMES_20130515
每年6月1日需要添加新的备份库例HPIMES_2014
(2)定期收缩
注:
1)新建历史资料库时Recovermodel设置为Simple
2)根据相应正式库的大小去设置备份库
Data:
InitialSize为30G,Autogrowth为5G
Log:
InitialSize为2G,Autogrowth为512M
4.定期检查MissingIndex
(1)点选SQLServer>>Reports>>自訂報表(CustomerReports...)or
'performance_dashboard_main',即可產生performance_dashboard報表。
(2)点击左下角的MissingIndexes
(3)看最后一列ProposedIndex,就是所缺失的Index,可copy出来新建Index
注:
或者也可以执行sp:
sp_missing_index,也会整理出需要建立Index的语句
5.修改DB数据文件(.mdf)和日志文件(.ldf)的存放位置
(1)先用语句查看DB文件的当前存储位置
注:
一定要在数据库没有任何人在用的情况下,做位置转移,要不然会造成
数据丢失
Script#1:
Capturedatabaseandtransactionlogfileinformation
USESkodaOA3
GO
sp_helpfile
GO
查询结果:
(2)DetachDB(分离数据库后DB会不见(offline)),有两种方法都可以:
方法一:
sql语句
Script#2:
Setdatabasetosingleusermodeanddetachdatabase
Usemaster
GO
--Setdatabasetosingleusermode
ALTERDATABASESkodaOA3
SETSINGLE_USER
GO
--Detachthedatabase
sp_detach_db'SkodaOA3'
GO
方法二:
Tasks-->Detach,如果status为Ready,则直接点击OK;如果status为
NotReady,则要在drop前打勾,再点击OK
(3)将数据文件和日志文件copy到需要存放的位置,然后将之前位置的文件删除
原文件存放位置:
E:
\SQLDATA
需要移动到的存放位置:
F:
\SQLDATA
(4)AttachDB(附加数据库)
1)点击Add,在弹出的对话框中选择目标路径下的mdf文件,点击OK
2)点击OK即可
(5)最后用
(1)的语句查看DB文件的当前存储位置是不是已经变更
注:
tempdb位置移动,需要下语句,然后重启SQLService
USEmaster
GO
ALTERDATABASEtempdbMODIFYFILE
(NAME=tempdev,FILENAME='T:
\TempDB\tempdb.mdf')
GO
ALTERDATABASEtempdbMODIFYFILE
(NAME=templog,FILENAME='T:
\TempDB\templog.ldf')
GO
改變位置後,要重啟SQLServer,tempdb的名字要對喔
6.新建FullBackUp维护计划
(1)右键MaintenancePlans-->NewMaintenancePlan
(2)选择Toolbox里的BackUpDatabaseTask,拖到执行框里,
然后双击打开,进行下图设置
(3)选择Toolbox里的MaintenanceCleanupTask,拖到执行框里,
然后双击打开,进行下图设置
(4)做一下步骤执行的先后顺序,BackUpDatabaseTask-->MaintenanceCleanupTask
(5)排程,然后保存即可
7.SQLServer2008DBMail异常处理
(1)重启DatabaseMail的语句
execmsdb.dbo.sysmail_start_sp
(2)记录所有的Mail信息的系统表
select*frommsdb.dbo.sysmail_allitems
(3)删除sysmail_allitems表的信息SP
EXECUTEmsdb.dbo.sysmail_delete_mailitems_sp
@sent_status='unsent';
GO
(4)记录DBMail的事件日志的系统表
select*fromsysmail_event_log
(5)数据库邮件故障排除网址
(6)ServiceBrokerQueue(服务代理队列)
8.SQLServerMaintenancePlans(维护计划)
(1)sysmaintplan_plans:
維護計畫主表,每個維護計畫一筆資料
select*fromsysmaintplan_plans
(2)sysmaintplan_subplans:
記錄維護計畫的子計畫資訊
select*fromsysmaintplan_subplans
(3)sysmaintplan_log:
維護計畫執行記錄
select*fromsysmaintplan_logorderbystart_timedesc
(4)sysjobs_view:
相關的作業資訊
select*fromsysjobs_vieworderbydate_createddesc
(5)如果维护计划有设置好排程,则在SQLServerAgent里就可以看得到排程
(6)如果Job有出现如下报错,则将之前的Package
“MaintenancePlans\FullBackUp”修改为“\MaintenancePlans\FullBackUp”
Message
Unabletostartexecutionofstep1(reason:
line
(1):
Syntaxerror).Thestepfailed.
9.修改DBOwner
ALTERAUTHORIZATIONONDATABASE:
:
DatabaseName TOUserName
GO
/*
DatabaseName就是数据库名称
UserName是用户名称
*/
10.
ALTERLOGIN[TEST]DISABLE
ALTERLOGIN[TEST]ENABLE
11.