Oracle Parallel用法Oracle技術(shù) 2011-03-23 15:51:08 閱讀105 評論0 字號:大中小 訂閱 .\x0d\x0a\x0d\x0a一、Parallel\x0d\x0a\x0d\x0a1. 用途\x0d\x0a\x0d\x0a強(qiáng)行啟用并行度來執(zhí)行當(dāng)前SQL。這個在Oracle 9i之后的版本可以使用,之前的版本現(xiàn)在沒有環(huán)境進(jìn)行測試。也就是說,加上這個說明,可以強(qiáng)行啟用Oracle的多線程處理功能。舉例的話,就像電腦裝了多核的CPU,但大多情況下都不會完全多核同時啟用(2核以上的比較明顯),使用parallel說明,就會多核同時工作,來提高效率。\x0d\x0a\x0d\x0a但本身啟動這個功能,也是要消耗資源與性能的。所有,一般都會在返回記錄數(shù)大于100萬時使用,效果也會比較明顯。\x0d\x0a\x0d\x0a2. 語法\x0d\x0a\x0d\x0a/*+parallel(table_short_name,cash_number)*/\x0d\x0a\x0d\x0a這個可以加到insert、delete、update、select的后面來使用(和rule的用法差不多,有機(jī)會再分享rule的用法)\x0d\x0a\x0d\x0a開啟parallel功能的語句是:\x0d\x0a\x0d\x0aalter session enable parallel dml;\x0d\x0a\x0d\x0a這個語句是DML語句哦,如果在程序中用,用execute的方法打開。\x0d\x0a\x0d\x0a3. 實(shí)例說明\x0d\x0a\x0d\x0a用ERP中的transaction來說明下吧。這個table記錄了所有的transaction,而且每天數(shù)據(jù)量也算相對比較大的(根據(jù)企業(yè)自身業(yè)務(wù)量而定)。假設(shè)我們現(xiàn)在要查看對比去年一年當(dāng)中每月的進(jìn)、銷情況,所以,一般都會寫成:\x0d\x0a\x0d\x0aselect to_char(transaction_date,'yyyymm') txn_month,\x0d\x0a\x0d\x0a sum(\x0d\x0a\x0d\x0a decode(\x0d\x0a\x0d\x0a sign(transaction_quantity),1,transaction_quantity,0\x0d\x0a )\x0d\x0a\x0d\x0a ) in_qty,\x0d\x0a\x0d\x0a sum(\x0d\x0a\x0d\x0a decode(\x0d\x0a\x0d\x0a sign(transaction_quantity),-1,transaction_quantity,0\x0d\x0a )\x0d\x0a\x0d\x0a ) out_qty\x0d\x0a\x0d\x0a from mtl_material_transactions mmt\x0d\x0a\x0d\x0a where transaction_date = add_months(\x0d\x0a\x0d\x0a to_date( \x0d\x0a\x0d\x0a to_char(sysdate,'yyyy')||'0101','yyyymmdd'),\x0d\x0a\x0d\x0a -12)\x0d\x0a\x0d\x0a and transaction_date
創(chuàng)新互聯(lián)長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為富裕企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè),富裕網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
回答于?2022-11-16
(一)什么Oracle叫用戶(user):
A user is a name defined in the database that can connect to and access objects.
Oracle用戶是用連接數(shù)據(jù)庫和訪問數(shù)據(jù)庫對象的。(用戶是用來連接數(shù)據(jù)庫訪問數(shù)據(jù)庫)。
(二)什么叫模式(schema):
A schema is a collection of database objects (used by a user.).
Schema objects are the logical structures that directly refer to the database’s data.
模式是數(shù)據(jù)庫對象的集合。模式對象是數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu)。
(把數(shù)據(jù)庫對象用模式分開成不同的邏輯結(jié)構(gòu))。
(三)用戶(user)與模式(schema)的區(qū)別:
Schemas and users help database administrators manage database security.
用戶是用來連接數(shù)據(jù)庫對象。而模式用是用創(chuàng)建管理對象的。模式跟用戶在oracle 是一對一的關(guān)系。
( 不過db2卻不同,db2 一個用戶可以對應(yīng)多個模式,db2 用戶是系統(tǒng),他首先必須獲得系統(tǒng)用戶才能成為數(shù)據(jù)庫用戶,也就是數(shù)據(jù)庫用戶就是系統(tǒng)用戶,只有模式才是數(shù)據(jù)庫類似用戶。有興趣可以去研究。這里就不跑題了,這也是db2特有的)。
從定義中我們可以看出schema為數(shù)據(jù)庫對象的集合,為了區(qū)分各個集合,我們需要給這個集合起個名字,這些名字就是我們在企業(yè)管理器的方案下看到的許多類似用戶名的節(jié)點(diǎn),這些類似用戶名的節(jié)點(diǎn)其實(shí)就是一個schema,schema里面包含了各種對象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。一個用戶一般對應(yīng)一個schema,該用戶的schema名等于用戶名,并作為該用戶缺省schema。這也就是我們在企業(yè)管理器的方案下看到schema名都為數(shù)據(jù)庫用戶名的原因。Oracle數(shù)據(jù)庫中不能新創(chuàng)建一個schema,要想創(chuàng)建一個schema,只能通過創(chuàng)建一個用戶的方法解決(Oracle中雖然有create schema語句,但是它并不是用來創(chuàng)建一個schema的),在創(chuàng)建一個用戶的同時為這個用戶創(chuàng)建一個與用戶名同名的schem并作為該用戶的缺省shcema。即schema的個數(shù)同user的個數(shù)相同,而且schema名字同user名字一一 對應(yīng)并且相同,所有我們可以稱schema為user的別名,雖然這樣說并不準(zhǔn)確,但是更容易理解一些。
一個用戶有一個缺省的schema,其schema名就等于用戶名,當(dāng)然一個用戶還可以使用其他的schema。如果我們訪問一個表時,沒有指明該表屬于哪一個schema中的,系統(tǒng)就會自動給我們在表上加上缺省的sheman名。比如我們在訪問數(shù)據(jù)庫時,訪問scott用戶下的emp表,通過select * from emp; 其實(shí),這sql語句的完整寫法為select * from scott.emp。在數(shù)據(jù)庫中一個對象的完整名稱為schema.object,而不屬user.object。類似如果我們在創(chuàng)建對象時不指定該對象的schema,在該對象的schema為用戶的缺省schema。這就像一個用戶有一個缺省的表空間,但是該用戶還可以使用其他的表空間,如果我們在創(chuàng)建對象時不指定表空間,則對象存儲在缺省表空間中,要想讓對象存儲在其他表空間中,我們需要在創(chuàng)建對象時指定該對象的表空間。
oracle模式是oracle方案的一部分。
當(dāng)然,如果這個方案僅僅是安裝方案或者指軟件部分(不包括數(shù)據(jù)部分)的方案那么就是一樣的。
模式包括所有的與安裝和軟件設(shè)定有關(guān)的內(nèi)容,安裝模式,集群模式,備份模式,系統(tǒng)模式等等。
方案則是除了這些以外還要包括:硬件方面的機(jī)型選擇,內(nèi)存選擇,存儲計(jì)算,帶寬選擇等。內(nèi)部還包括,表空間建設(shè),表設(shè)定,數(shù)據(jù)流程控制,數(shù)據(jù)處理,數(shù)據(jù)治理,數(shù)據(jù)顯示,用戶建設(shè),權(quán)限管理更諸多內(nèi)容。
也就是說模式僅僅是方案的一部分,方案是一個很全面的解決方案,而模式僅僅是安裝的解決方案。
(一)什么Oracle叫用戶(user):
A user is a name defined in the database that can connect to and access objects.
大意:Oracle用戶是用連接數(shù)據(jù)庫和訪問數(shù)據(jù)庫對象的。(用戶是用來連接數(shù)據(jù)庫訪問數(shù)據(jù)庫)。
(二)什么叫模式(schema):
A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the database’s data.
大意:模式是數(shù)據(jù)庫對象的集合。模式對象是數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu)。(把數(shù)據(jù)庫對象用模式分開成不同的邏輯結(jié)構(gòu))。
(三)用戶(user)與模式(schema)的區(qū)別:
Schemas and users help database administrators manage database security.
大意:用戶是用來連接數(shù)據(jù)庫對象。而模式用是用創(chuàng)建管理對象的。(模式跟用戶在oracle 是一對一的關(guān)系。)