oracle怎么進(jìn)行匯總 oracle 匯總

Oracle數(shù)據(jù)庫(kù)分類匯總方法

select?公司,(case?when?grouping(部門)?=?1?then?’公司合計(jì)'?else?'部門'?end)?as?部門,sum(工資)工資總額

成都創(chuàng)新互聯(lián)是專業(yè)的棗莊網(wǎng)站建設(shè)公司,棗莊接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行棗莊網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

from????a

group?by?rollup(公司,部門)

;

上面這個(gè),數(shù)據(jù)是先出(公司+部門)的組合的 key(得到該公司的每個(gè)部門的總和),最后出一個(gè) 公司 的總和(該公司所有部門總和)。

你也可以用

...

group?by?grouping?sets(公司,部門)

得到公司的總和與部門的總和,這個(gè)略有不同,但可以通過(guò)不同的括號(hào)層次組合出你想要的,比如

...

group?by?grouping?sets((公司,部門),公司,部門)

另外還有:

...

group?by?cube(公司,部門)

這個(gè)是算出每個(gè)公司的總和(不考慮哪個(gè)部門的),與每個(gè)部門的總和(不考慮哪家公司的),用 cube 匯總是用在多個(gè)公司相同的部門的時(shí)候,比如多個(gè)分公司都有財(cái)務(wù)部的話,如果你這個(gè) DEPNO 在數(shù)據(jù)庫(kù)中每家公司的每個(gè)部門都擁有完全不同的值的話就不適用。

Oracle 怎樣進(jìn)行數(shù)據(jù)匯總。。

select HO1110090009 ,count(1)from OM_OUTSTOCK_ITEM group by HO1110090009 ;

你試下看看這樣做是不是你想要的結(jié)果。

關(guān)于Oracle一些常用腳本的匯總(2)

碎片檢查

select tablespace_name sqrt(max(blocks)/sum(blocks))*

( /sqrt(sqrt(count(blocks)))) fsfi

from dba_free_space

group by tablespace_name order by ;

fsfi值越小 碎片越大 自由空間碎片索引

檢查reverse_key index

select o object_name

from dba_objects o

where wner= DB_ACCT

AND O OBJECT_ID IN

(SELECT I OBJ# FROM SYS IND$ I

WHERE BITAND(I PROPERTY )= )

查具體后臺(tái)進(jìn)程號(hào)

select spid from v$session a v$process b where a PADDR=b ADDR and sid=

查看死鎖表

SELECT SID DECODE(BLOCK NO YES ) BLOCKER

DECODE(REQUEST NO YES ) WAITER

FROM V$LOCK

WHERE REQUEST OR BLOCK

ORDER BY block DESC;

查看剩余表空間

select a tablespace_name free/total* pct_free free/ / free(M) from

(select sum(bytes) free tablespace_name from dba_free_space group by tablespace_name) a

(select sum(bytes) total tablespace_name from dba_data_files group by tablespace_name) b

where a tablespace_name=b tablespace_name

order by pct_free;

查看創(chuàng)建索引的進(jìn)度

select sid message from? v$session_longops where sid = order by? start_time

查看繳費(fèi)到帳

SELECT AREA_ID to_char(sysdate yyyy mm dd hh :mi:ss ) to_char(count( )) as cnt FROM ACCT_PAY_INTERFACE

WHERE PAY_DATE=sysdate and FLAG= group by AREA_Id

查看最消耗資源的sql

SELECT * FROM  (SELECT PARSING_USER_ID EXECUTIONS SORTS MAND_TYPE

DISK_READS  sql_text FROM v$sqlarea ORDER BY disk_reads DESC ) WHERE ROWNUM

查看占用系統(tǒng)資源的進(jìn)程號(hào)spid

SELECT a username a machine a program a sid a serial# a status c piece c sql_text

FROM v$session a v$process b v$sqltext c WHERE b spid=  AND b addr=a paddr AND a sql_address=c address(+)

ORDER BY c piece

查看占用系統(tǒng)io較大的session

SELECT se sid se serial# pr SPID se username se status se terminal se program

se MODULE se sql_address st event st p text si physical_reads si block_changes

FROM v$session se  v$session_wait st v$sess_io si v$process pr WHERE st sid=se sid  AND st sid=si sid

AND se PADDR=pr ADDR AND se sid  AND st wait_time= AND st event NOT LIKE %SQL% ORDER BY physical_reads DESC

對(duì)檢索出的結(jié)果的幾點(diǎn)說(shuō)明

我是按每個(gè)正在等待的session已經(jīng)發(fā)生的物理讀排的序 因?yàn)樗c實(shí)際的IO相關(guān)

你可以看一下這些等待的進(jìn)程都在忙什么 語(yǔ)句是否合理?

Select sql_address from v$session where sid=;

Select * from v$sqltext where address=;

執(zhí)行以上兩個(gè)語(yǔ)句便可以得到這個(gè)session的語(yǔ)句

你也以用alter system kill session sid serial# ;把這個(gè)session殺掉

應(yīng)觀注一下event這列 這是我們調(diào)優(yōu)的關(guān)鍵一列 下面對(duì)常出現(xiàn)的event做以簡(jiǎn)要的說(shuō)明

a buffer busy waits free buffer waits這兩個(gè)參數(shù)所標(biāo)識(shí)是dbwr是否夠用的問(wèn)題 與IO很大相關(guān)的 當(dāng)v$session_wait中的free buffer wait的條目很小或沒(méi)有的時(shí)侯 說(shuō)明你的系統(tǒng)的dbwr進(jìn)程決對(duì)夠用 不用調(diào)整 free buffer wait的條目很多 你的系統(tǒng)感覺(jué)起來(lái)一定很慢 這時(shí)說(shuō)明你的dbwr已經(jīng)不夠用了 它產(chǎn)生的wio已經(jīng)成為你的數(shù)據(jù)庫(kù)性能的瓶頸 這時(shí)的解決辦法如下

a 增加寫進(jìn)程 同時(shí)要調(diào)整db_block_lru_latches參數(shù)

示例 修改或添加如下兩個(gè)參數(shù)

db_writer_processes=

db_block_lru_latches=

a 開(kāi)異步IO IBM這方面簡(jiǎn)單得多 hp則麻煩一些 可以與Hp工程師聯(lián)系

b db file sequential read 指的是順序讀 即全表掃描 這也是我們應(yīng)該盡量減少的部分 解決方法就是使用索引 sql調(diào)優(yōu) 同時(shí)可以增大db_file_multiblock_read_count這個(gè)參數(shù)

c db file scattered read 這個(gè)參數(shù)指的是通過(guò)索引來(lái)讀取 同樣可以通過(guò)增加db_file_multiblock_read_count這個(gè)參數(shù)來(lái)提高性能

d latch free 與栓相關(guān)的了 需要專門調(diào)節(jié)

e 其他參數(shù)可以不特別觀注

外部聯(lián)接 + 的用法

外部聯(lián)接 + 按其在 = 的左邊或右邊分左聯(lián)接和右聯(lián)接

若不帶 + 運(yùn)算符的表中的一個(gè)行不直接匹配于帶 + 預(yù)算符的表中的任何行

則前者的行與后者中的一個(gè)空行相匹配并被返回 若二者均不帶 +

則二者中無(wú)法匹配的均被返回 利用外部聯(lián)接 +

可以替代效率十分低下的 not in 運(yùn)算 大大提高運(yùn)行速度 例如 下面這條命令執(zhí)行起來(lái)很慢

select a empno from emp a where a empno not in

(select empno from emp where job= SALE );

倘若利用外部聯(lián)接 改寫命令如下:

select a empno from emp a emp b

where a empno=b empno(+)

and b empno is null

and b job= SALE ;

可以發(fā)現(xiàn) 運(yùn)行速度明顯提高

如何更改UNDO tablespace

create undo tablespace undotbs datafile D:\oracle\product\ \oradata\qa\undotbs dbf size M;

alter system set undo_tablespace=undotbs scope=both;

create pfile from spfile;

alter tablespace undotbs offline;

drop tablespace undotbs including contents;

將表改成

ALTER?? TABLE?? t_monitor_real_minute?? NOLOGGING;

Oracle RAC的參數(shù)文件和單實(shí)例參數(shù)文件不同 所以修改參數(shù)文件時(shí)需要注意

首先設(shè)置歸檔路徑

SQL alter system set log_archive_dest= /opt/oracle/archive scope=spfile sid= * ;

System altered

SQL select sid name value from v$spparameter where name= log_archive_dest ;

SID??????? NAME???????????????? VALUE

*????????? log_archive_dest???? /opt/oracle/archive

然后關(guān)閉兩個(gè)實(shí)例 啟動(dòng)實(shí)例 更改數(shù)據(jù)庫(kù)為歸檔模式

SQL shutdown immediate;

Database closed

Database di *** ounted

ORACLE instance shut down

SQL startup mount;

ORACLE instance started

Total System Global Area bytes

Fixed Size????????????????? bytes

Variable Size???????????? bytes

Database Buffers????????? bytes

Redo Buffers?????????????? bytes

Database mounted

SQL alter database archivelog;

Database altered

SQL alter database open;

Database altered

SQL archive log list;

Database log mode????????????? Archive Mode

Automatic archival???????????? Enabled

Archive destination??????????? /opt/oracle/archive

Oldest online log sequence????

Next log sequence to archive??

Current log sequence??????????

lishixinzhi/Article/program/Oracle/201311/17504

名稱欄目:oracle怎么進(jìn)行匯總 oracle 匯總
本文來(lái)源:http://muchs.cn/article24/hjcjje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、關(guān)鍵詞優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司品牌網(wǎng)站建設(shè)App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)