深爱那片海 发表于 2015-1-16 22:42:01

MYSQL编程:Oracle常}集(二)

DBaaS会导致单一客户利润率的下降,因为云服务一般是依靠MySQL学习教程数来抵消较低的利润率。oracle
71.群档

shmmax

含x:@O置K不Q定事实OracleY料大概作I系y利用几ww,只Q定了最多可使用的w的俊_@O置也不影作I系y的群速Y源。



O置办法:0.5*ww

例子:Setshmsys:shminfo_shmmax=10485760

shmmin

含x:共用w的最小巨细。

O置办法:一样平常都O置成1。

例子:Setshmsys:shminfo_shmmin=1:

shmmni

含x:系y中共用w段的最年夜怠

例子:Setshmsys:shminfo_shmmni=100

shmseg

含x:每用暨M程可使用的最多的共用w段的的俊

例子:Setshmsys:shminfo_shmseg=20:

semmni

含x:系y中semaphoreidentifierer的最年夜怠

O置办法:把@档闹翟O置@系y上的一切Oracle的例的init.ora中的最年夜的那processes的那值加10。



例子:Setsemsys:seminfo_semmni=100

semmns

含x:系y中emaphores的最年夜怠

O置办法:@值能够通^以下体例算失掉:各Oracle例的initSID.oraY的processes的值的和(撤除最年夜的Processes担畲蟮哪Processes×2+10×Oracle例的怠



例子:Setsemsys:seminfo_semmns=200

semmsl:

含x:一set中semaphore的最年夜怠

O置办法:O置成10+一切Oracle例的InitSID.ora中最年夜的Processes的值。

例子:Setsemsys:seminfo_semmsl=-200

72.怎硬榭茨男┯碛SYSDBA、SYSOPERS可啵

SQL>connsys/change_on_install

SQL>select*fromV_$PWFILE_USERS;



73.怎样为浞菀或多表?

exp用/密atables=(表1,…,表2)



74.怎样为浞菀或多用簦

expsystem/managerowner=(用1,用2,…,用n)file=С鑫募



75.怎样CLOB谖贿M行全文z索?

SELECT*FROMAWHEREdbms_lob.instr(a.a,K,1,1)>0;



76.怎样@示前B接用

SHOWUSER



77.怎样检察Y料n案安排的路

colfile_nameformata50

SQL>selecttablespace_name,file_id,bytes/1024/1024,file_namefrom

dba_data_filesorderbyfile_id;



78.怎样检察F有回L段及其B

SQL>colsegmentformata30

SQL>SELECT

SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUSFROM

DBA_ROLLBACK_SEGS



79.怎样改一谖怀跏级x的Check

SQL>altertablexxxdropconstraintconstraint_name;

之後再建新s束:

SQL>altertablexxxaddconstraintconstraint_namecheck();



80.Oracle经常使用系y文件有哪些?

通^以下D@示@些文件Y:v$database,v$datafile,v$logfilev$controlfile

v$parameter;



81.冗B接INNERJOIN

Selecta.*frombsempmsa,bsdptmsbwherea.dpt_no=b.dpt_no;



82.怎样外B接

Selecta.*frombsempmsa,bsdptmsbwherea.dpt_no=b.dpt_no(+);

Selecta.*frombsempmsa,bsdptmsbwherea.dpt_no(+)=b.dpt_no;



83.怎样绦心_本SQL文件

SQL>@$PATH/filename.sql;



84.怎样疾速清空一年夜表

SQL>truncatetabletable_name;



85.怎样查有几例

SQL>SELECT*FROMV$INSTANCE;



86.怎样查有几表

SQL>select*fromall_tables;



87.怎样ySQLZ句绦兴玫rg

SQL>settimingon;

SQL>select*fromtablename;



人人在ORACLE的r候大概龅胶芏嗫雌聿浑y的},特eπ率碚f,明天我伟阉Y一下,l布o人人,

但愿Υ蠹矣助!和人人一同探,配合M步!



ORACLE妙手碚f是不必看的.



88.CHR()的反函凳

ASCII()

SELECTCHAR(65)FROMDUAL;

SELECTASCII(A)FROMDUAL;



89.字串的B接

SELECTCONCAT(COL1,COL2)FROMTABLE;

SELECTCOL1||COL2FROMTABLE;



90.怎麽把select出淼慕Y果У揭笔墨n案中?

SQL>SPOOLC:ABCD.TXT;

SQL>select*fromtable;

SQL>spooloff;



91.怎庸浪SQL绦械I/O

SQL>SETAUTOTRACEON;

SQL>SELECT*FROMTABLE;

OR

SQL>SELECT*FROMv$filestat;

能够检察IO



92.怎样在sqlplus下改谖淮笮

altertabletable_namemodify(field_namevarchar2(100));

改年夜行,改小不可(除非都是空的)



93.怎样查某天的Y料

select*fromtable_namewhere

trunc(日期谖)=to_date(2003-05-02,yyyy-mm-dd);



94.sqlZ句怎样拔出整年日期?

createtableBSYEAR(ddate);

insertintoBSYEAR

selectto_date(20030101,yyyymmdd)+rownum-1

fromall_objects

whererownum<=to_char(to_date(20031231,yyyymmdd),ddd);



95.假如修正表名

altertableold_table_namerenametonew_table_name;



96.怎样获得命令的前往B值?

sqlcode=0



97.怎样晓得用碛械脑S可

SELECT*FROMdba_sys_privs;



98.W高低d的ORACLE9Ic市錾腺u的拾嬗惺谗^e?

功效上f]有^e,只不^oracle公司有明文ǎW站高低d的oracleb品不得用於商I用处,否t侵唷



99.怎优噘Y料是行在wn形式下是行在非wn形式下?

M进dbastudio,v程--〉Y料---〉wn检察。



100.sql>startuppfile和ifile,spfiled有什麽^e?

pfile就是Oracle鹘y的初始化滴募谋靖袷降摹

ifile似於cZ言Y的include,用於把另外一文件引进

spfile是9iY新增的K且是默J的滴募M位格局

startup後只可接pfile



101.怎样搜刮出前Nl?

SELECT*FROMempLOYEEWHEREROWNUM<n

ORDERBYempno;



102.怎样晓得C器上的Oracle增援几Kl用

SQL>conninternal;

SQL>showparameterprocesses;



103.db_block_size能够修正

一样平常不成以o不建h@幼龅摹



104.怎样y表的

select(selectcount(id)fromaa)+(selectcount(id)frombb)

fromdual;



105.怎佑SqlZ句F查找一列中第N年夜值?

select*from

(selectt.*,dense_rank()over(orderbysal)rankfromemployee)

whererank=N;

106.怎样在oF有的日期加上2年?(

selectadd_months(sysdate,24)fromdual;



107.USED_UBLK值暗示什麽意义

Itis"harmless".



108.Connectstring是指什麽

是tnsnames.ora中的服彰崦娴热



109.怎U年夜REDOLOG的巨细?

创建一Rr的redologM,然後切Q日I,h除之前的日I,创建新的日I。



110.tablespace是不是不克不及年夜於4G

]无限制.



111.前往年夜於等於N的最小整抵

SELECTCEIL(N)FROMDUAL;



112.前往小於等於N的最小整抵

SELECTFLOOR(N)FROMDUAL;



113.前往前月的最後一天

SELECTLAST_DAY(SYSDATE)FROMDUAL;



114.怎样分歧用糸g

IMPSYSTEM/MANAGERFILE=AA.DMPFROMUSER=USER_OLDTOUSER=USER_NEW

ROWS=YINDEXES=Y;



115.怎样找Y料表的主I谖坏拿Q

SQL>SELECT*FROMuser_constraintsWHERECONSTRAINT_TYPE=Pand

table_name=TABLE_NAME;



116.Y果集互加的函

SQL>SELECT*FROMBSEMPMS_OLDINTERSECTSELECT*FROMBSEMPMS_NEW;

SQL>SELECT*FROMBSEMPMS_OLDUNIONSELECT*FROMBSEMPMS_NEW;

SQL>SELECT*FROMBSEMPMS_OLDUNIONALLSELECT*FROMBSEMPMS_NEW;



117.Y果集互p的函

SQL>SELECT*FROMBSEMPMS_OLDMINUSSELECT*FROMBSEMPMS_NEW;



118.怎样设置Sequence

建sequenceseq_custid

createsequenceseq_custidstart1incrememtby1;

建表r:

createtablecust

{cust_idsmallintnotnull,

...}

insertr:

insertintotablecust

values(seq_cust.nextval,...)



日期的各部分的经常使用的的法

119>.取rgc的年份的法:

SELECTTO_CHAR(SYSDATE,YYYY)FROMDUAL;



120>.取rgc的月份的法:

SELECTTO_CHAR(SYSDATE,MM)FROMDUAL;



121>.取rgc的日的法:

SELECTTO_CHAR(SYSDATE,DD)FROMDUAL;



122>.取rgc的r的法:

SELECTTO_CHAR(SYSDATE,HH24)FROMDUAL;



123>.取rgc的分的法:

SELECTTO_CHAR(SYSDATE,MI)FROMDUAL;



124>.取rgc的秒的法:

SELECTTO_CHAR(SYSDATE,SS)FROMDUAL;



125>.取rgc的日期的法:

SELECTTRUNC(SYSDATE)FROMDUAL;



126>.取rgc的rg的法:

SELECTTO_CHAR(SYSDATE,HH24:MI:SS)FROMDUAL;



127>.日期,rg形B樽衷B

SELECTTO_CHAR(SYSDATE)FROMDUAL;



128>.⒆执DQ成日期或rg形B:

SELECTTO_DATE(2003/08/01)FROMDUAL;



129>.前往档男瞧的法:

SELECTTO_CHAR(SYSDATE,D)FROMDUAL;



130>.前往狄荒曛械牡天的法:

SELECTTO_CHAR(SYSDATE,DDD)FROMDUAL;



131>.前往半夜和抵兄付ǖrg值之g的秒档法:

SELECTTO_CHAR(SYSDATE,SSSSS)FROMDUAL;



132>.前往抵幸荒甑牡周的法:

SELECTTO_CHAR(SYSDATE,WW)FROMDUAL;



人人在ORACLE的r候大概龅胶芏嗫雌聿浑y的},特eπ率碚f,明天我伟阉Y一下,l布o人人,

但愿Υ蠹矣助!和人人一同探,配合M步!



ORACLE妙手碚f是不必看的.



M谖



133.CURRVAL和nextval

表建序列

CREATESEQUENCEEMPSEQ...;

SELECTempseq.currvalFROMDUAL;

自硬迦胄蛄械抵

INSERTINTOemp

VALUES(empseq.nextval,LEWIS,CLERK,

7902,SYSDATE,1200,NULL,20);



134.ROWNUM

按O定排序的行的序

SELECT*FROMempWHEREROWNUM<10;

135.ROWID

前往行的物理位址

SELECTROWID,enameFROMempWHEREdeptno=20;



136.N秒DQr分秒格局?

setserverouton

declare

Nnumber:=1000000;

retvarchar2(100);

begin

ret:=trunc(n/3600)||小r||

to_char(to_date(mod(n,3600),sssss),fmmi"分"ss"秒");

dbms_output.put_line(ret);

end;



137.怎样查做比^年夜的排序的M程?

SELECTb.tablespace,b.segfile#,b.segblk#,b.blocks,a.sid,

a.serial#,

a.username,a.osuser,a.status

FROMv$sessiona,v$sort_usageb

WHEREa.saddr=b.session_addr

ORDERBYb.tablespace,b.segfile#,b.segblk#,b.blocks;



138.怎样查做比^年夜的排序的M程的SQLZ句?

select/*+ORDERED*/sql_textfromv$sqltexta

wherea.hash_value=(

selectsql_hash_valuefromv$sessionb

whereb.sid=&sidandb.serial#=&serial)

orderbypieceasc;



139.怎样查找重?

SELECT*FROMTABLE_NAME

WHEREROWID!=(SELECTMAX(ROWID)FROMTABLE_NAMED

WHERETABLE_NAME.COL1=D.COL1ANDTABLE_NAME.COL2=D.COL2);

140.怎样h除重?

DELETEFROMTABLE_NAME

WHEREROWID!=(SELECTMAX(ROWID)FROMTABLE_NAMED

WHERETABLE_NAME.COL1=D.COL1ANDTABLE_NAME.COL2=D.COL2);



141.怎样疾速g一切D?

SQL>SPOOLVIEW1.SQL

SQL>SELECT‘ALTERVIEW‘||TNAME||’

COMPILE;’FROMTAB;

SQL>SPOOLOFF

然後绦VIEW1.SQL便可。

SQL>@VIEW1.SQL;



142.ORA-01555SNAPSHOTTOOOLD的解Qk法

增添MINEXTENTS的值,增添^的巨细,O置一高的OPTIMAL值。

143.事找蟮幕L段空g不颍憩F表空g用M(ORA-01560e`),回L段U展到_

MAXEXTENTS的值(ORA-01628)的解Qk法.

向回L段表空g增加文件或使已有的文件年夜;增添MAXEXTENTS的值。



144.怎样加密ORACLE的存^程?

以下存^程热莘旁AA.SQL文件中

createorreplaceproceduretestCCB(iinnumber)as

begin

dbms_output.put_line(进凳||to_char(i));

end;

SQL>wrapiname=a.sql;

PL/SQLWrapper:Release8.1.7.0.0-ProductiononTueNov27

22:26:482001

Copyright(c)OracleCorporation1993,2000.AllRightsReserved.

ProcessingAA.sqltoAA.plb

行AA.plb

SQL>@AA.plb;



145.怎样O控事例的守候?

selectevent,sum(decode(wait_Time,0,0,1))"Prev",

sum(decode(wait_Time,0,1,0))"Curr",count(*)"Tot"

fromv$session_Wait

groupbyeventorderby4;



146.怎样回L段的们r?

selectname,waits,gets,waits/gets"Ratio"

fromv$rollstatC,v$rollnameD

whereC.usn=D.usn;



147.怎样O控表空g的I/O比例?

selectB.tablespace_namename,B.file_name"file",A.phyrdspyr,

A.phyblkrdpbr,A.phywrtspyw,A.phyblkwrtpbw

fromv$filestatA,dba_data_filesB

whereA.file#=B.file_id

orderbyB.tablespace_name;



148.怎样O控文件系y的I/O比例?

selectsubstr(C.file#,1,2)"#",substr(C.name,1,30)"Name",

C.status,C.bytes,D.phyrds,D.phywrts

fromv$datafileC,v$filestatD

whereC.file#=D.file#;



149.怎样在某用粝抡宜械乃饕

selectuser_indexes.table_name,

user_indexes.index_name,uniqueness,column_name

fromuser_ind_columns,user_indexes

whereuser_ind_columns.index_name=user_indexes.index_name

anduser_ind_columns.table_name=user_indexes.table_name

orderbyuser_indexes.table_type,user_indexes.table_name,

user_indexes.index_name,column_position;



150.怎样O控SGA的射中率?

selecta.value+b.value"logical_reads",c.value"phys_reads",

round(100*((a.value+b.value)-c.value)/(a.value+b.value))

"BUFFERHITRATIO"

fromv$sysstata,v$sysstatb,v$sysstatc

wherea.statistic#=38andb.statistic#=39

andc.statistic#=40;
有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL5.0中,大多数关系型数据库所要求的功能已经都具备。

第二个灵魂 发表于 2015-1-19 21:19:45

我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!

金色的骷髅 发表于 2015-1-26 23:52:11

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

飘飘悠悠 发表于 2015-2-4 23:01:41

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

活着的死人 发表于 2015-2-10 22:33:58

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

因胸联盟 发表于 2015-3-1 16:53:49

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

灵魂腐蚀 发表于 2015-3-10 21:09:52

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

莫相离 发表于 2015-3-17 10:10:23

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

深爱那片海 发表于 2015-3-17 10:10:23

你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
页: [1]
查看完整版本: MYSQL编程:Oracle常}集(二)