MYSQL网站制作之有用的数据库反省程序 (1)
对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。程序|数据|数据库功效:
1.数据库的基础信息显现(建库工夫,形式等)
2.数据库布局信息-DATABASEMAP(CONTROLFILE,REDOLOGFILE,DATAFILE,ROLLBACKSEGMENT)
3.数据库一切形态信息
4.数据库级的DBBlockBufferHitRatio
5.SESSION级的DBBlockBufferHitRatio
6.前一天的LOGSWITCH情形
7.REDOLOG空间需求查询
8.LOGBuffer功能查询
9.logfileswitch功能查询
10.反省不完整的CHECKPOINT
11.LibraryCache的 功能查询
12.DictionaryCache的 功能查询
13.查找最资本的SQL语句
14.SESSION级的CPU利用度
15.SORT_AREA_SIZE的功能查询
16.SEQUENCE_CACHE_ENTRIES的功能查询
17.CHAINEDROW的查询
18.RollbackSegmentContention反省
19.表空间碎片反省
20.LATCHcontention反省
21.TABLESPACE用量反省
22.数据文件I/O反省
23.表和索引的碎片反省
24.表的HWM反省
利用办法举例:
今朝,作为一个DBA,能够有良多工具来办理,保护和症查数据库.这只是我平常汇集的一些剧本,能够作为DBA随身照顾的小工具程序
在没有其他可视化的工具时,它能够用来对数据库做一些基础的诊断.
1.翻开SQLPLUS,ConnectSystem
2.@a:check_db.sql(a:是本文件的路径)
3.实行终了,了局贮存在C:LOCAL.TXT
4.LOCAL.TXT不仅有每一个数据的申明,同时先容一些办理相干成绩的办法以供参考
Check_db.sql的内容:
SETechooff
spoolc:local.txt
ttitleoff
breakontoday
columntodaynoprintnew_valuexdate
selectsubstr(to_char(sysdate,fmMonthDD,YYYYHH:MI:SSP.M.),1,35)today
fromdual
/
columnnamenoprintnew_valuexdbname
selectnamefromv$database
/
setheadingon
setfeedbackoff
setlinesize250
setpagesize200
rem######################################################################################
rem****CHECK_DB_V2.1:PerformanceTuning****
rem######################################################################################
prompt*******************************************************************************
promptDatabaseCheckInformation
prompt*******************************************************************************
ttitleleft"DATABASE:"xdbname"(ASOF:"xdate")"skip2
selectname,created,log_modefromv$database
/
prompt
prompt*******************************************************************************
ttitleoff
prompt
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
prompt+0.0databasemap+
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
prompt
ttitleleft"***DataBaseMap-ControlFile***"
column"CONTROLFILE"formatA40
selectstatus,name"CONTROLFILE"fromv$controlfile
/
ttitleoff
ttitleleft"***DataBaseMap-RedoLogFile***"
column"LogFile"formatA40
selectf.member"LogFile",l.group#,l.thread#,l.bytes,l.statusfromv$logl,v$logfilef
wherel.group#=f.group#
/
ttitleoff
ttitleleft"***DataBaseMap-DataFile***"
columnfile_nameformatA40
selectfile_name,tablespace_name,bytes,blocks,statusfromdba_data_filesorderbytablespace_name,bytesdesc
/
ttitleoff
ttitleleft"***DataBaseMap-RollBackSeg***"
SELECTN.NAME"ROLLBACKSEGNAME",R.EXTENTS,r.rssize,R.OPTSIZE,HWMSIZE,STATUS
FROMV$ROLLSTATR,V$rollNAMEN
WHERER.USN=N.USN
/
ttitleoff
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
prompt+1.0databasestatistic+
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
setheadingon
settermouton
TTitleleft"***Database:"xdbname",DatabaseStatistic(Asof:"xdate")***"skip1
column"StatisticName"formatA55
columnvalueformat9,999,999,999,999,990
selectn.statistic#,n.name"StatisticName",s.value
fromv$statnamen,v$sysstats
wheren.statistic#=s.statistic#
andvalue>0
orderbyvaluedesc
/
ttitleoff
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
prompt+2.0DBBlockBuffer-HitRatio(DatabaseWise)+
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
setheadingon
settermouton
column"PhysicalReads"format9,999,999,999,999
column"ConsistentGets"format9,999,999,999,999
column"DBBlockGets"format9,999,999,999,999
column"HitRatio"format999.99
TTitleleft"***Database:"xdbname",DBBlockBuffersHitRatio(Asof:"xdate")***"skip1-
left"Percent=((100*(1-(PhysicalReads/(ConsistentGets+DBBlockGets))))"skip2
selectpr.value"PhysicalReads",
cg.value"ConsistentGets",
bg.value"DBBlockGets",
round((1-(pr.value/(bg.value+cg.value)))*100,2)"HitRatio"
fromv$sysstatpr,v$sysstatbg,v$sysstatcg
wherepr.name=physicalreads
andbg.name=dbblockgets
andcg.name=consistentgets
/
prompt<<<<<<<<<<<<<<<<<<<NOTE:>>>>>>>>>>>>>>>>>>>>>>
prompt2.0InvestigationIFPercentislessthan70%,increaseDB_BLOCK_BUFFERS
prompt<<<<<<<<<<<<<<<<<<<NOTE:>>>>>>>>>>>>>>>>>>>>>>
TtitleOff
prompt
prompt
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
prompt+2.1DBBlockBuffer-HitRatio(SessionWise)+
prompt++++++++++++++++++++++++++++++++++Item++++++++++++++++++++++++++++++++++
clearbreaks
clearcomputes
breakonreport
computesumofConsistent_Getsonreport
computesumofBlock_Getsonreport
computesumofPhysical_Readsonreport
column"HitRatio%"format999.99
columnUsernameformatA10
TTitleleft"***Database:"xdbname",HitRatioForUserSessions(Asof:"xdate")***"skip1
selectUsername,
OSUSER,
Consistent_Gets,
Block_Gets,
Physical_Reads,
100*(Consistent_Gets+Block_Gets-Physical_Reads)/
(Consistent_Gets+Block_Gets)"HitRatio%"
fromV$SESSION,V$SESS_IO
whereV$SESSION.SID=V$SESS_IO.SID
and(Consistent_Gets+Block_Gets)>0
andusernameisnotnull
orderbyUsername,"HitRatio%";
prompt
prompt<<<<<<<<<<<<<<<<<<<NOTE:>>>>>>>>>>>>>>>>>>>>>>
prompt2.0/2.1Investigation
promptIfyouhave20ormoreusersandbatchuserscauselessthan50%
promptlogicalreadswithinyourdatabase,youshouldaimforahitratio
promptofbetween94%~97%.
promptIfyouhavefewerthan20users,thesharingofdataamongusersdepends
promptheavilyontheapplication,soyoushouldaimforahitratiointhe89%~94%
prompt<<<<<<<<<<<<<<<<<<<NOTE:>>>>>>>>>>>>>>>>>>>>>>
prompt
prompt
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力 我们学到了什么?思考问题的时候从表的角度来思考问 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上. XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
页:
[1]