冷月葬花魂 发表于 2015-1-16 22:39:54

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%的市场份额。该调查公司还预测,相比其他的开源数据库和闭源数据库。

admin 发表于 2015-1-19 21:05:15

但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。

飘飘悠悠 发表于 2015-1-27 08:36:08

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

仓酷云 发表于 2015-2-5 05:20:00

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

深爱那片海 发表于 2015-2-11 05:47:27

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

小妖女 发表于 2015-3-1 22:42:01

原来公司用过MYSQL自己也只是建个表写个SQL

不帅 发表于 2015-3-11 00:13:05

你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。

分手快乐 发表于 2015-3-17 16:30:16

然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情

兰色精灵 发表于 2015-3-24 12:17:28

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
页: [1]
查看完整版本: MYSQL网站制作之ORACLE DBA经常使用SQL剧本东西->管...