MYSQL网站制作之ORACLE DBA经常使用SQL剧本工具->管...
平台即服务PaaS、基础设施即服务IaaS、软件即服务SaaS都是我们比较熟悉的MySQL学习教程,现在又出现了数据库即服务DBaaS,以基于云的方式存储结构化数据。oracle|剧本在较长工夫的与oracle的来往中,每一个DBA出格是一些年夜侠都有林林总总的完成各类用处的剧本工具,如许很便利的很快速的完成了一样平常的事情,上面把我经常使用的一部分展示给人人,此篇次要偏重于数据库办理,这些剧本都经由严厉测试。
1、表空间统计
A、剧本申明:
这是我最经常使用的一个剧本,用它能够显现出数据库中一切表空间的形态,如表空间的巨细、已利用空间、利用的百分比、余暇空间数及如今表空间的最年夜块是多年夜。
B、剧本原文:
SELECTupper(f.tablespace_name)"表空间名",
d.Tot_grootte_Mb"表空间巨细(M)",
d.Tot_grootte_Mb-f.total_bytes"已利用空间(M)",
to_char(round((d.Tot_grootte_Mb-f.total_bytes)/d.Tot_grootte_Mb*100,2),990.99)"利用比",
f.total_bytes"余暇空间(M)",
f.max_bytes"最年夜块(M)"
FROM
(SELECTtablespace_name,
round(SUM(bytes)/(1024*1024),2)total_bytes,
round(MAX(bytes)/(1024*1024),2)max_bytes
FROMsys.dba_free_space
GROUPBYtablespace_name)f,
(SELECTdd.tablespace_name,round(SUM(dd.bytes)/(1024*1024),2)Tot_grootte_Mb
FROMsys.dba_data_filesdd
GROUPBYdd.tablespace_name)d
WHEREd.tablespace_name=f.tablespace_name
ORDERBY4DESC;
2、检察没法扩大的段
A、剧本申明:
ORACLE对一个段好比表段或索引没法扩大时,取决的并非表空间中残剩的空间是几,而是取于这些残剩空间中最年夜的块是不是够表比索引的“NEXT”值年夜,以是偶然一个表空间残剩几个G的余暇空间,在你利用时ORACLE仍是提醒某个表或索引没法扩大,就是因为这一点,这时候申明空间的碎片太多了。这个剧本是找出没法扩大的段的一些信息。
B、剧本原文:
SELECTsegment_name,
segment_type,
owner,
a.tablespace_name"tablespacename",
initial_extent/1024"inital_extent(K)",
next_extent/1024"next_extent(K)",
pct_increase,
b.bytes/1024"tablespacemaxfreespace(K)",
b.sum_bytes/1024"tablespacetotalfreespace(K)"
FROMdba_segmentsa,
(SELECTtablespace_name,MAX(bytes)bytes,SUM(bytes)sum_bytesFROMdba_free_spaceGROUPBYtablespace_name)b
WHEREa.tablespace_name=b.tablespace_name
ANDnext_extent>b.bytes
ORDERBY4,3,1;
3、检察段(表段、索引段)所利用空间的巨细
A、剧本申明:
偶然你大概想晓得一个表或一个索引占用几M的空间,这个剧本就是满意你的请求的,把中的内容交换一下就能够了。
B、剧本原文:
SELECTowner,
segment_name,
SUM(bytes)/1024/1024
FROMdba_segments
WHEREowner=<segmentowner>
Andsegment_name=<yourtableorindexname>
GROUPBYowner,segment_name
ORDERBY3DESC;
4、检察数据库中的表锁
A、剧本申明:
这方面的语句的款式是良多的,各式一样,不外我以为这个是最有用的,不信你就用一下,无需多说,锁是每一个DBA必定都触及过的内容,当你相晓得某个表被哪一个session锁定了,你就用到了这个剧本。
B、剧本原文:
SELECTA.OWNER,
A.OBJECT_NAME,
B.XIDUSN,
B.XIDSLOT,
B.XIDSQN,
B.SESSION_ID,
B.ORACLE_USERNAME,
B.OS_USER_NAME,
B.PROCESS,
B.LOCKED_MODE,
C.MACHINE,
C.STATUS,
C.SERVER,
C.SID,
C.SERIAL#,
C.PROGRAM
FROMALL_OBJECTSA,
V$LOCKED_OBJECTB,
SYS.GV_$SESSIONC
WHERE(A.OBJECT_ID=B.OBJECT_ID)
AND(B.PROCESS=C.PROCESS)
--AND
ORDERBY1,2;
5、处置存储历程被锁
A、剧本申明:
实践过程当中大概你要从头编译某个存储历程理老是处于守候形态,最初会报没法锁定工具,这时候你就能够用这个剧本找到锁定历程的谁人sid,必要注重的是查v$access这个视图原本就很慢,必要一些布耐烦。
B、剧本原文:
SELECT*FROMV$ACCESS
WHEREowner=<objectowner>
Andobject<procedurename>
6、检察回滚段形态
A、剧本申明
这也是DBA常常利用的剧本,由于回滚段是online仍是full是他们的关切之列嘛
B、SELECTa.segment_name,b.status
FROMDba_Rollback_Segsa,
v$rollstatb
WHEREa.segment_id=b.usn
ORDERBY2
7、看哪些session正在利用哪些回滚段
A、剧本申明:
当你发明一个回滚段处置full形态,你想使它变回online形态,这时候你便会用alterrollbacksegmentrbs_seg_nameshrink,可良多时侯确shrink不返来,次要是因为某个session在用,这时候你就用到了这个剧本,找到了sid的serial#余下的事就不必我说了吧。
B、剧本原文
SELECTr.name回滚段名,
s.sid,
s.serial#,
s.username用户名,
s.status,
t.cr_get,
t.phy_io,
t.used_ublk,
t.noundo,
substr(s.program,1,78)操纵程序
FROMsys.v_$sessions,sys.v_$transactiont,sys.v_$rollnamer
WHEREt.addr=s.taddrandt.xidusn=r.usn
--ANDr.NAMEIN(ZHYZ_RBS)
ORDERBYt.cr_get,t.phy_io
8、检察正在利用一时段的session
A、剧本申明:
很多的时侯你在检察哪些段没法扩大时,回显的了局是一时段,或你做表空间统计时发明临段表空间的可用空间几近为0,这时候按oracle的说法是你只要从头启动数据库才干接纳这部分空间。实践过程当中没那末庞大,利用以下这段剧本把占用一时段的session杀失落,然后用altertablespacetempcoalesce;这个语句就把temp表空间的空间接纳返来了。
B、剧本原文
SELECTusername,
sid,
serial#,
sql_address,
machine,
program,
tablespace,
segtype,
contents
FROMv$sessionse,
v$sort_usagesu
WHEREse.saddr=su.session_addr
(待续)
最近由权威调查机构Evans数据公司进行的一项调查显示,MySQL在过去两年已经获得了25%的市场份额。该调查公司还预测,相比其他的开源数据库和闭源数据库。 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的.. 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 原来公司用过MYSQL自己也只是建个表写个SQL 你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。 然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
页:
[1]