當前位置:首頁 » 操作系統 » 並行資料庫

並行資料庫

發布時間: 2023-04-08 06:38:55

資料庫性能優化有哪些措施

1、調整數據結構的設計

這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。

2、調整應用程序結構設計

這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的資料庫資源是不同的。

3、調整資料庫sql語句

應用程序的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE資料庫的性能。ORACLE公司推薦使用ORACLE語句優化器(OracleOptimizer)和行鎖管理器(row-levelmanager)來調整優化SQL語句。

4、調整伺服器內存分配

內存分配是在信息系統運行過程中優化配置的,資料庫管理員可以根據資料庫運行狀況調整資料庫系統全局區(SGA區)的數據緩沖區、日誌緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會佔用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。

5、調整硬碟I/O

這一步是在信息系統開發之前完成的。資料庫管理員可以將組成同一個表空間的數據文件放在不同的硬碟上,做到硬碟之間I/O負載均衡。

6、調整操作系統參數

例如:運行在UNIX操作系統上的ORACLE資料庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。

實際上,上述資料庫優化措施之間是相互聯系的。ORACLE資料庫性能惡化表現基本上都是用戶響應時間比較長,需要用戶長時間的等待。但性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要資料庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響資料庫性能的主要原因所在。另外,良好的資料庫管理工具對於優化資料庫性能也是很重要的。

一、ORACLE資料庫性能優化工具

常用的資料庫性能優化工具有:

ORACLE資料庫在線數據字典,ORACLE在線數據字典能夠反映出ORACLE動態運行情況,對於調整資料庫性能是很有幫助的。

操作系統工具,例如UNIX操作系統的vmstat,iostat等命令可以查看到系統系統級內存和硬碟I/O的使用情況,這些工具對於管理員弄清出系統瓶頸出現在什麼地方有時候很有用。

SQL語言跟蹤工具(SQLTRACEFACILITY),SQL語言跟蹤工具可以記錄SQL語句的執行情況,管理員可以使用虛擬表來調整實例,使用SQL語句跟蹤文件調整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統的文件,管理員可以使用TKPROF工具查看這些文件。

ORACLEEnterpriseManager(OEM),這是一個圖形的用戶管理界面,用戶可以使用它方便地進行資料庫管理而不必記住復雜的ORACLE資料庫管理的命令。

EXPLAINPLAN——SQL語言優化命令,使用這個命令可以幫助程序員寫出高效的SQL語言。

二、ORACLE資料庫的系統性能評估

信息系統的類型不同,需要關注的資料庫參數也是不同的。資料庫管理員需要根據自己的信息系統的類型著重考慮不同的資料庫參數。

1、在線事務處理信息系統(OLTP),這種類型的信息系統一般需要有大量的Insert、Update操作,典型的系統包括民航機票發售系統、銀行儲蓄系統等。OLTP系統需要保證資料庫的並發性、可靠性和最終用戶的速度,這類系統使用的ORACLE資料庫需要主要考慮下述參數:

資料庫回滾段是否足夠?

是否需要建立ORACLE資料庫索引、聚集、散列?

系統全局區(SGA)大小是否足夠?

SQL語句是否高效?

2、數據倉庫系統(DataWarehousing),這種信息系統的主要任務是從ORACLE的海量數據中進行查詢,得到數據之間的某些規律。資料庫管理員需要為這種類型的ORACLE資料庫著重考慮下述參數:

是否採用B*-索引或者bitmap索引?

是否採用並行SQL查詢以提高查詢效率?

是否採用PL/SQL函數編寫存儲過程?

有必要的話,需要建立並行資料庫提高資料庫的查詢效率

三、SQL語句的調整原則

SQL語言是一種靈活的語言,相同的功能可以使用不同的語句來實現,但是語句的執行效率是很不相同的。程序員可以使用EXPLAINPLAN語句來比較各種實現方案,並選出最優的實現方案。總得來講,程序員寫SQL語句需要滿足考慮如下規則:

1、盡量使用索引。試比較下面兩條SQL語句:

語句A:SELECTdname,

(SELECTdeptnoFROMemp);

語句B:SELECTdname,deptnoFROMdeptWHERENOTEXISTS

(SELECTdeptnoFROMempWHEREdept.deptno=emp.deptno);

這兩條查詢語句實現的結果是相同的,但是執行語句A的時候,ORACLE會對整個emp表進行掃描,沒有使用建立在emp表上的deptno索引,執行語句B的時候,由於在子查詢中使用了聯合查詢,ORACLE只是對emp表進行的部分數據掃描,並利用了deptno列的索引,所以語句B的效率要比語句A的效率高一些。

2、選擇聯合查詢的聯合次序。考慮下面的例子:

SELECTstuffFROMtabaa,tabbb,tabcc

WHEREa.acolbetween:alowand:ahigh

ANDb.bcolbetween:blowand:bhigh

ANDc.ccolbetween:clowand:chigh

ANDa.key1=b.key1

AMDa.key2=c.key2;

這個SQL例子中,程序員首先需要選擇要查詢的主表,因為主表要進行整個表數據的掃描,所以主表應該數據量最小,所以例子中表A的acol列的范圍應該比表B和表C相應列的范圍小。

3、在子查詢中慎重使用IN或者NOTIN語句,使用where(NOT)exists的效果要好的多。

4、慎重使用視圖的聯合查詢,尤其是比較復雜的視圖之間的聯合查詢。一般對視圖的查詢最好都分解為對數據表的直接查詢效果要好一些。

5、可以在參數文件中設置SHARED_POOL_RESERVED_SIZE參數,這個參數在SGA共享池中保留一個連續的內存空間,連續的內存空間有益於存放大的SQL程序包。

6、ORACLE公司提供的DBMS_SHARED_POOL程序可以幫助程序員將某些經常使用的存儲過程「釘」在SQL區中而不被換出內存,程序員對於經常使用並且佔用內存很多的存儲過程「釘」到內存中有利於提高最終用戶的響應時間。

四、CPU參數的調整

CPU是伺服器的一項重要資源,伺服器良好的工作狀態是在工作高峰時CPU的使用率在90%以上。如果空閑時間CPU使用率就在90%以上,說明伺服器缺乏CPU資源,如果工作高峰時CPU使用率仍然很低,說明伺服器CPU資源還比較富餘。

使用操作相同命令可以看到CPU的使用情況,一般UNIX操作系統的伺服器,可以使用sar_u命令查看CPU的使用率,NT操作系統的伺服器,可以使用NT的性能管理器來查看CPU的使用率。

資料庫管理員可以通過查看v$sysstat數據字典中「CPUusedbythissession」統計項得知ORACLE資料庫使用的CPU時間,查看「OSUserlevelCPUtime」統計項得知操作系統用戶態下的CPU時間,查看「OSSystemcallCPUtime」統計項得知操作系統系統態下的CPU時間,操作系統總的CPU時間就是用戶態和系統態時間之和,如果ORACLE資料庫使用的CPU時間占操作系統總的CPU時間90%以上,說明伺服器CPU基本上被ORACLE資料庫使用著,這是合理,反之,說明伺服器CPU被其它程序佔用過多,ORACLE資料庫無法得到更多的CPU時間。

資料庫管理員還可以通過查看v$sesstat數據字典來獲得當前連接ORACLE資料庫各個會話佔用的CPU時間,從而得知什麼會話耗用伺服器CPU比較多。

出現CPU資源不足的情況是很多的:SQL語句的重解析、低效率的SQL語句、鎖沖突都會引起CPU資源不足。

1、資料庫管理員可以執行下述語句來查看SQL語句的解析情況:

SELECT*FROMV$SYSSTATWHERENAMEIN

('parsetimecpu','parsetimeelapsed','parsecount(hard)');

這里parsetimecpu是系統服務時間,parsetimeelapsed是響應時間,用戶等待時間,waitetime=parsetimeelapsed_parsetimecpu

由此可以得到用戶SQL語句平均解析等待時間=waitetime/parsecount。這個平均等待時間應該接近於0,如果平均解析等待時間過長,資料庫管理員可以通過下述語句

SELECTSQL_TEXT,PARSE_CALLS,EXECUTIONSFROMV$SQLAREA

ORDERBYPARSE_CALLS;

來發現是什麼SQL語句解析效率比較低。程序員可以優化這些語句,或者增加ORACLE參數SESSION_CACHED_CURSORS的值。

2、資料庫管理員還可以通過下述語句:

SELECTBUFFER_GETS,EXECUTIONS,SQL_TEXTFROMV$SQLAREA;

查看低效率的SQL語句,優化這些語句也有助於提高CPU的利用率。

3、資料庫管理員可以通過v$system_event數據字典中的「latchfree」統計項查看ORACLE資料庫的沖突情況,如果沒有沖突的話,latchfree查詢出來沒有結果。如果沖突太大的話,資料庫管理員可以降低spin_count參數值,來消除高的CPU使用率。

五、內存參數的調整

內存參數的調整主要是指ORACLE資料庫的系統全局區(SGA)的調整。SGA主要由三部分構成:共享池、數據緩沖區、日誌緩沖區。

1、共享池由兩部分構成:共享SQL區和數據字典緩沖區,共享SQL區是存放用戶SQL命令的區域,數據字典緩沖區存放資料庫運行的動態信息。資料庫管理員通過執行下述語句:

select(sum(pins-reloads))/sum(pins)"LibCache"fromv$librarycache;

來查看共享SQL區的使用率。這個使用率應該在90%以上,否則需要增加共享池的大小。資料庫管理員還可以執行下述語句:

select(sum(gets-getmisses-usage-fixed))/sum(gets)"RowCache"fromv$rowcache;

查看數據字典緩沖區的使用率,這個使用率也應該在90%以上,否則需要增加共享池的大小。

2、數據緩沖區。資料庫管理員可以通過下述語句:

SELECTname,valueFROMv$sysstatWHEREnameIN('dbblockgets','consistentgets','physicalreads');

來查看資料庫數據緩沖區的使用情況。查詢出來的結果可以計算出來數據緩沖區的使用命中率=1-(physicalreads/(dbblockgets+consistentgets))。

這個命中率應該在90%以上,否則需要增加數據緩沖區的大小。

3、日誌緩沖區。資料庫管理員可以通過執行下述語句:

selectname,valuefromv$sysstatwherenamein('redoentries','redologspacerequests');

查看日誌緩沖區的使用情況。查詢出的結果可以計算出日誌緩沖區的申請失敗率:

申請失敗率=requests/entries,申請失敗率應該接近於0,否則說明日誌緩沖區開設太小,需要增加ORACLE資料庫的日誌緩沖區。

昆明北大青鳥java培訓班轉載自網路如有侵權請聯系我們感謝您的關注謝謝支持

❷ 以下哪個不是雲計算的應用

並行資料庫。攔碰並行資料庫系統(Parallel Database System)是新一代高性能的數租游據庫系統,是在MPP和集群並行計算環境的基礎上建立的資料庫系統。資料庫和數據倉庫都是數據的一種存儲方弊衡銷式,大數據處理更多的是一種需求(問題),而雲計算是一種比較綜合的需求(問題)解決方案。

❸ 資料庫未來的發展趨勢有並行化嗎

資料庫的未來發展趨勢可以總結為以下四點:

1.產品架構與技術創新:雲原生 + 分布式 ( 彈性、高可用 )。架構上分布式共享 存儲、存儲計算分離,雲原生架構 +Shared Nothing 分布式架構,滿足彈性、 高可用、水平拓展的能力。

2.數據挑戰:多模,結構化與非結構化數據 ( 多源異構數據 )。結構化與非結構化 數據如何融合異構處理,比如數據湖的概念、ADB 裡面用向量處理引擎把非 結構化數據變成結構化數據,高維向量、多源異構數據處理的技術。

3.數據處理與分析:海量數據分析在線化 ( 實時在線互動式分析 )。如何對海量數 據進行在線分析和計算,支持實時在線互動式分析,需要做並行處理(DSP 模 型、MPP 模型等等),對並行調度計算進行優化。

4.系統能力提升:智能化 + 安全 ( 使用方便可靠、運維簡易 )。如在管控平台的 層面如何做智能化的調度、監控以及自動修復,怎樣去做數據的安全處理、隱 私保護、加密處理等等,使得整個資料庫的使用更加方便可靠、運維簡易。

❹ 影響資料庫性能的主要因素有哪些

1、1、調整數據結構的設計。這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。 x0dx0ax0dx0a2、2、調整應用程序結構設計。這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的資料庫資源是不同的。 x0dx0ax0dx0a3、3、調整資料庫SQL語句。應用程序的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE資料庫的性能。ORACLE公司推薦使用ORACLE語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。 x0dx0ax0dx0a4、4、調整伺服器內存分銷和段配。內存分配是在信息系統運行過程中優化配置的,資料庫管理員可以根據資料庫運行狀況調整資料庫系統全局區(SGA區)的數據緩沖區、日誌緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會佔用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。 x0dx0ax0dx0a5、5、調整硬碟I/O,這一步是在信息系統開發之前完成的。資料庫管理員可以將組成同一個表空間的數據文件放在不同的硬碟上,做到硬碟之間I/O負載均衡。 x0dx0ax0dx0a6、6、調整操作系統參數,例如:運行在UNIX操作系統上的ORACLE資料庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。 x0dx0ax0dx0a實際上,上述資料庫優化措施之間是相互聯系的。ORACLE資料庫性能惡化表現基本上都是用戶響應時間比較長,需要用戶長時間的等待。但性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要資料庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響資料庫性能的主要原因所在。另外,良好的資料庫管理工具對於優化資料庫性能也是很重要的。 x0dx0ax0dx0aORACLE資料庫性能優化工具 x0dx0ax0dx0a常用的資料庫性能優化工具有: x0dx0ax0dx0a1、1、ORACLE資料庫在線數據字典,ORACLE在線數據字典能夠反映出ORACLE動態運行情況,對於調整資料庫性能是很有幫助的。 x0dx0ax0dx0a2、2、操作系統工具,例如UNIX操作系統的vmstat,iostat等命令可以查看到系統系統級內存和硬碟I/O的使用情況,這些工具對於管理員弄清出系統瓶頸出現棚行在什麼地方有時候很有用。 x0dx0ax0dx0a3、3、SQL語言跟蹤工具(SQL TRACE FACILITY),SQL語言跟蹤工具可以記錄SQL語句的執行情況,管理員可以使用虛擬表來調整實例,使用SQL語句跟蹤文件調整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統的文虧譽件,管理員可以使用TKPROF工具查看這些文件。 x0dx0ax0dx0a4、4、ORACLE Enterprise Manager(OEM),這是一個圖形的用戶管理界面,用戶可以使用它方便地進行資料庫管理而不必記住復雜的ORACLE資料庫管理的命令。 x0dx0ax0dx0a5、5、EXPLAIN PLAN——SQL語言優化命令,使用這個命令可以幫助程序員寫出高效的SQL語言。 x0dx0ax0dx0aORACLE資料庫的系統性能評估 x0dx0ax0dx0a信息系統的類型不同,需要關注的資料庫參數也是不同的。資料庫管理員需要根據自己的信息系統的類型著重考慮不同的資料庫參數。 x0dx0ax0dx0a1、1、在線事務處理信息系統(OLTP),這種類型的信息系統一般需要有大量的Insert、Update操作,典型的系統包括民航機票發售系統、銀行儲蓄系統等。OLTP系統需要保證資料庫的並發性、可靠性和最終用戶的速度,這類系統使用的ORACLE資料庫需要主要考慮下述參數: x0dx0ax0dx0al l 資料庫回滾段是否足夠? x0dx0ax0dx0al l 是否需要建立ORACLE資料庫索引、聚集、散列? x0dx0ax0dx0al l 系統全局區(SGA)大小是否足夠? x0dx0ax0dx0al l SQL語句是否高效? x0dx0ax0dx0a2、2、數據倉庫系統(Data Warehousing),這種信息系統的主要任務是從ORACLE的海量數據中進行查詢,得到數據之間的某些規律。資料庫管理員需要為這種類型的ORACLE資料庫著重考慮下述參數: x0dx0ax0dx0al l 是否採用B*-索引或者bitmap索引? x0dx0ax0dx0al l 是否採用並行SQL查詢以提高查詢效率? x0dx0ax0dx0al l 是否採用PL/SQL函數編寫存儲過程? x0dx0ax0dx0al l 有必要的話,需要建立並行資料庫提高資料庫的查詢效率 x0dx0ax0dx0aSQL語句的調整原則 x0dx0ax0dx0aSQL語言是一種靈活的語言,相同的功能可以使用不同的語句來實現,但是語句的執行效率是很不相同的。程序員可以使用EXPLAIN PLAN語句來比較各種實現方案,並選出最優的實現方案。總得來講,程序員寫SQL語句需要滿足考慮如下規則: x0dx0ax0dx0a1、1、盡量使用索引。試比較下面兩條SQL語句: x0dx0ax0dx0a語句A:SELECT dname, deptno FROM dept WHERE deptno NOT IN x0dx0ax0dx0a(SELECT deptno FROM emp); x0dx0ax0dx0a語句B:SELECT dname, deptno FROM dept WHERE NOT EXISTS x0dx0ax0dx0a(SELECT deptno FROM emp WHERE dept.deptno = emp.deptno); x0dx0ax0dx0a這兩條查詢語句實現的結果是相同的,但是執行語句A的時候,ORACLE會對整個emp表進行掃描,沒有使用建立在emp表上的deptno索引,執行語句B的時候,由於在子查詢中使用了聯合查詢,ORACLE只是對emp表進行的部分數據掃描,並利用了deptno列的索引,所以語句B的效率要比語句A的效率高一些。 x0dx0ax0dx0a2、2、選擇聯合查詢的聯合次序。考慮下面的例子: x0dx0ax0dx0aSELECT stuff FROM taba a, tabb b, tabc c x0dx0ax0dx0aWHERE a.acol between :alow and :ahigh x0dx0ax0dx0aAND b.bcol between :blow and :bhigh x0dx0ax0dx0aAND c.ccol between :clow and :chigh x0dx0ax0dx0aAND a.key1 = b.key1 x0dx0ax0dx0aAMD a.key2 = c.key2; x0dx0ax0dx0a這個SQL例子中,程序員首先需要選擇要查詢的主表,因為主表要進行整個表數據的掃描,所以主表應該數據量最小,所以例子中表A的acol列的范圍應該比表B和表C相應列的范圍小。 x0dx0ax0dx0a3、3、在子查詢中慎重使用IN或者NOT IN語句,使用where (NOT) exists的效果要好的多。 x0dx0ax0dx0a4、4、慎重使用視圖的聯合查詢,尤其是比較復雜的視圖之間的聯合查詢。一般對視圖的查詢最好都分解為對數據表的直接查詢效果要好一些。 x0dx0ax0dx0a5、5、可以在參數文件中設置SHARED_POOL_RESERVED_SIZE參數,這個參數在SGA共享池中保留一個連續的內存空間,連續的內存空間有益於存放大的SQL程序包。 x0dx0ax0dx0a6、6、ORACLE公司提供的DBMS_SHARED_POOL程序可以幫助程序員將某些經常使用的存儲過程「釘」在SQL區中而不被換出內存,程序員對於經常使用並且佔用內存很多的存儲過程「釘」到內存中有利於提高最終用戶的響應時間。 x0dx0ax0dx0aCPU參數的調整 x0dx0ax0dx0aCPU是伺服器的一項重要資源,伺服器良好的工作狀態是在工作高峰時CPU的使用率在90%以上。如果空閑時間CPU使用率就在90%以上,說明伺服器缺乏CPU資源,如果工作高峰時CPU使用率仍然很低,說明伺服器CPU資源還比較富餘。 x0dx0ax0dx0a使用操作相同命令可以看到CPU的使用情況,一般UNIX操作系統的伺服器,可以使用sar _u命令查看CPU的使用率,NT操作系統的伺服器,可以使用NT的性能管理器來查看CPU的使用率。 x0dx0ax0dx0a資料庫管理員可以通過查看v$sysstat數據字典中「CPU used by this session」統計項得知ORACLE資料庫使用的CPU時間,查看「OS User level CPU time」統計項得知操作系統用戶態下的CPU時間,查看「OS System call CPU time」統計項得知操作系統系統態下的CPU時間,操作系統總的CPU時間就是用戶態和系統態時間之和,如果ORACLE資料庫使用的CPU時間占操作系統總的CPU時間90%以上,說明伺服器CPU基本上被ORACLE資料庫使用著,這是合理,反之,說明伺服器CPU被其它程序佔用過多,ORACLE資料庫無法得到更多的CPU時間。 x0dx0ax0dx0a資料庫管理員還可以通過查看v$sesstat數據字典來獲得當前連接ORACLE資料庫各個會話佔用的CPU時間,從而得知什麼會話耗用伺服器CPU比較多。 x0dx0ax0dx0a出現CPU資源不足的情況是很多的:SQL語句的重解析、低效率的SQL語句、鎖沖突都會引起CPU資源不足。 x0dx0ax0dx0a1、資料庫管理員可以執行下述語句來查看SQL語句的解析情況: x0dx0ax0dx0aSELECT * FROM V$SYSSTAT x0dx0ax0dx0aWHERE NAME IN x0dx0ax0dx0a('parse time cpu', 'parse time elapsed', 'parse count (hard)'); x0dx0ax0dx0a這里parse time cpu是系統服務時間,parse time elapsed是響應時間,用戶等待時間 x0dx0ax0dx0awaite time = parse time elapsed _ parse time cpu x0dx0ax0dx0a由此可以得到用戶SQL語句平均解析等待時間=waite time / parse count。這個平均等待時間應該接近於0,如果平均解析等待時間過長,資料庫管理員可以通過下述語句 x0dx0ax0dx0aSELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA x0dx0ax0dx0aORDER BY PARSE_CALLS; x0dx0ax0dx0a來發現是什麼SQL語句解析效率比較低。程序員可以優化這些語句,或者增加ORACLE參數SESSION_CACHED_CURSORS的值。 x0dx0ax0dx0a2、資料庫管理員還可以通過下述語句: x0dx0ax0dx0aSELECT BUFFER_GETS, EXECUTIONS, SQL_TEXT FROM V$SQLAREA; x0dx0ax0dx0a查看低效率的SQL語句,優化這些語句也有助於提高CPU的利用率。 x0dx0ax0dx0a3、3、資料庫管理員可以通過v$system_event數據字典中的「latch free」統計項查看ORACLE資料庫的沖突情況,如果沒有沖突的話,latch free查詢出來沒有結果。如果沖突太大的話,資料庫管理員可以降低spin_count參數值,來消除高的CPU使用率。 x0dx0ax0dx0a內存參數的調整 x0dx0ax0dx0a內存參數的調整主要是指ORACLE資料庫的系統全局區(SGA)的調整。SGA主要由三部分構成:共享池、數據緩沖區、日誌緩沖區。 x0dx0ax0dx0a1、 1、 共享池由兩部分構成:共享SQL區和數據字典緩沖區,共享SQL區是存放用戶SQL命令的區域,數據字典緩沖區存放資料庫運行的動態信息。資料庫管理員通過執行下述語句: x0dx0ax0dx0aselect (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache; x0dx0ax0dx0a來查看共享SQL區的使用率。這個使用率應該在90%以上,否則需要增加共享池的大小。資料庫管理員還可以執行下述語句: x0dx0ax0dx0aselect (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache; x0dx0ax0dx0a查看數據字典緩沖區的使用率,這個使用率也應該在90%以上,否則需要增加共享池的大小。 x0dx0ax0dx0a2、 2、 數據緩沖區。資料庫管理員可以通過下述語句: x0dx0ax0dx0aSELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets','physical reads'); x0dx0ax0dx0a來查看資料庫數據緩沖區的使用情況。查詢出來的結果可以計算出來數據緩沖區的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。 x0dx0ax0dx0a這個命中率應該在90%以上,否則需要增加數據緩沖區的大小。 x0dx0ax0dx0a3、 3、 日誌緩沖區。資料庫管理員可以通過執行下述語句: x0dx0ax0dx0aselect name,value from v$sysstat where name in ('redo entries','redo log space requests');查看日誌緩沖區的使用情況。查詢出的結果可以計算出日誌緩沖區的申請失敗率: x0dx0ax0dx0a申請失敗率=requests/entries,申請失敗率應該接近於0,否則說明日誌緩沖區開設太小,需要增加ORACLE資料庫的日誌緩沖區。

❺ oracle開並行資料庫時間

sql執行時間很長超過10分鍾。在OLAP系統中,當表的數據量很大,超答皮爛過100W,sql執行時間很長超過10分鍾,且執行計劃正常時考慮開啟握此並行資料庫。OracleDatabase,又名OracleRDBMS,或簡稱Oracle,清漏是甲骨文公司的一款關系資料庫管理系統。

❻ 並行資料庫有哪些

並行資料庫分為分布式並行資料庫和集群式並行資料庫,是在MPP和集群並行計算環境的基礎上建立的資料庫系統。
並行資料庫系統(ParallelDatabaseSystem)是新一代高性能的資料庫系統,並行資料庫系統的攜悶目標是高性能(HighPerformance)和高可用性(HighAvailability),通過多個處理節點並行執行資料庫任務,提高整個資料庫系辯模彎統的性能和可用性。
更多關碼笑於並行資料庫有哪些,進入:https://m.abcgonglue.com/ask/a64e771615833665.html?zd查看更多內容

❼ 計算機系統軟體中最核心的是

計算機系統軟體中最核心的是

系統軟體的核心應該應該操作系統,困為計算機軟體都是要以操作系統為平台的。軟體系統是指由系統軟體、支撐軟體和應用軟體組成的計算機軟體系統,它是計算機系統中由軟體組成的部分。

它包括操作系統、語言處理系統、資料庫系統、分布式軟體系統和人機交互系統等。操作系統用於管理計算機的資源和控製程序的運行。語言處理系統是用於處理軟體語言等的軟體,如編譯程序等。

資料庫系統是用於支持數據管理和存取的軟體,它包括資料庫、資料庫管理系統等。資料庫是常駐在計算機系統內的一組數據,它們之間的關系用數據模式來定義,並用數據定義語言來描述枯此罩;資料庫管理系統是使用戶可以把數據作沒鬧為軸象項進行存取、使用和修改的軟體。

分布式軟體系統包括分布式操作系統、分布式程序設計系統、分布式文件系統、分布式資料庫系統等。

人機交互系統是提供用戶與計算機系統之間按照一定的約定進行信息交互的軟體系統,可為用戶提供一個友善的人機界面。

操作系統的功能包括處理器管理、存儲管理、文件管理、設備管理和作業管理。其主要研究內容包括:操作系統的結構、進程(任務)調度、同步機制、死鎖防止、內存分配、設備分配、並行機制、容錯和恢復機制等。

語言處理系統的功能是各種軟體語言的處理程序,它把用戶用軟體語言書寫的各種源程序轉換成為可為計算機識別和運行的目標程序,從而獲得預期結果。其主要研究內容包括:語言的翻譯技術和翻譯程序的構造方法與工具,它還涉及正文編輯技術、連接編輯技術和裝入技術等。

資料庫系統的主要功能包括資料庫的定義和操縱、共享數據的並發控制、數據的安全和保密等。按數據定義模塊劃分,資料庫系統可分為關系資料庫、層次資料庫和網狀資料庫。按控制方式劃分,可分為集中式資料庫系統、分布式資料庫系統和並行資料庫系統。

資料庫系統研究的主要內容包括:資料庫設計、數據模式、數據定義和操作語言、關系資料庫理論、數據完整性和相容性、資料庫恢復與容錯、死鎖控制和防止、數據安全性等。

分布式軟體系統的功能是管理分布式計算機系統資源和控制分布式程序的運行,提供分布式程序設計語言和工具,提供分布式文件系統管理和分布式資料庫管理關系等。

分布式軟體系統的主要研究內容包括分布式操作系統和網路操作系統、分布式程序設計、分布式文件系統和分布式資料庫系統。

人機交互系統的主要功能是在人和計算機之間提供一個友善的人機介面。其主要研究內容包括人機交互原理、人機介面分析及規約、認知復雜性理論、數據輸入、顯示和檢索介面、計算機控制介面等。

軟體 系統

分布式軟體系統是支持分布式處理的軟體系統,是在由通信網路互聯的多處理機體系結構上執行任務的系統。它包括分布式操作系統、分布式程序設計語言及其編譯(解釋)系統、分布式文件系統和分布式資料庫系統等。

分布式操作系統負責管理分布式處理系統資源和控制分布式程序運行。它和集中式操作系統的區別在於資源管理、進程通信和系統結構等方面。

分布式程序設計語言用於編寫運行於分布式計算機系統上的分布式程序。一個分布式程序由若干個可以獨立執行的程序模塊組成,它們分布於一個分布式處理系統的多台計算機上被同時執行。它與集中式的程序設計語言相比有三個特點:分布性、通信性和穩健性。

分布式文件系統具有執行遠程文件存取的能力,並以透明方式對分布在網路上的文件進行管理和存取。

分布式資料庫系統由分布於多個計算機結點上的若干個資料庫系統組成,它提供有效的存取手段來操縱這些結點上的子資料庫。分布扒臘式資料庫在使用上可視為一個完整的資料庫,而實際上它是分布在地理分散的各個結點上。當然,分布在各個結點上的子資料庫在邏輯上是相關的。

❽ 能充分利用多處理器平台同步處理數據的資料庫系統是什麼系統

並行資料庫系統。系統一詞來源於英文system的音譯,即若幹部分相互聯系、相互作用,形成的具有某友攜些功能斗備的整體。能充分利用多處理器平台同步處理數據好銷伏的資料庫系統是並行資料庫系統,是在MPP和集群並行計算環境的基礎上建立的資料庫系統。

❾ 什麼是並行資料庫

並行資料庫系統(Parallel Database System)是新一代高性能的資料庫系統,是在MPP和集群並行計算環境的基礎上建立的資料庫系統。 並行資料庫技術起源於20世紀70年代的資料庫機(Database Machine)研究,,研究的內容主要集中在關系代數操作的並行化和實現關系操作的專用硬體設計上,希望通過硬體實現關系資料庫操作的某些功能,該研究以失敗而告終。80年代後期,並行資料庫技術的研究方向逐步轉到了通用並行機方面,研究的重點是並行資料庫的物理組織、操作演算法、優化和調度策絡。從90年代至今,隨著處理器、存儲、網路等相關基礎技術的發展,並行資料庫技術的研究上升到一個新的水平,研究的重點也轉移到數據操作的時間並行性和空間並行性上。 並行資料庫系統的目標是高性能(High Performance)和高可用性(High Availability),通過多個處理節點並行執行資料庫任務,提高整個資料庫系統的性能和可用性。 性能指標關注的是並行資料庫系統的處理能力,具體的表現可以統一總結為資料庫系統處理事務的響應時間。並行資料庫系統的高性能可以從兩個方面理解,一個是速度提升(SpeedUp),一個是范圍提升(ScaleUp)。速度提升是指,通過並行處理,可以使用更少的時間完成兩樣多的資料庫事務。范圍提升是指,通過並行處理,在相同的處理時間內,可以完成更多的資料庫事務。並行資料庫系統基於多處理節點的物理結構,將資料庫管理技術與並行處理技術有機結合,來實現系統的高性能。 可用性指標關注的是並行資料庫系統的健壯性,也就是當並行處理節點中的一個節點或多個節點部分失效或完全失效時,整個系統對外持續響應的能力。高可用性可以同時在硬體和軟體兩個方面提供保障。在硬體方面,通過冗餘的處理節點、存儲設備、網路鏈路等硬體措施,可以保證當系統中某節點部分或完全失效時,其它的硬體設備可以接手其處理,對外提供持續服務。在軟體方面,通過狀態監控與跟蹤、互相備份、日誌等技術手段,可以保證當前系統中某節點部分或完全失效時,由它所進行的處理或由它所掌控的資源可以無損失或基本無損失地轉移到其它節點,並由其它節點繼續對外提供服務。 為了實現和保證高性能和高可用性,可擴充性也成為並行資料庫系統的一個重要指標。可擴充性是指,並行資料庫系統通過增加處理節點或者硬體資源(處理器、內存等),使其可以平滑地或線性地擴展其整體處理能力的特性。 隨著對並行計算技術研究的深入和SMP、MPP等處理機技術的發展,並行資料庫的研究也進入了一個新的領域,集群已經成為了並行資料庫系統中最受關注的熱點。目前,並行資料庫領域主要還有下列問題需要進一步地研究和解決。 (1)並行體系結構及其應用,這是並行資料庫系統的基礎問題。為了達到並行處理的目的,參與並行處理的各個處理節點之間是否要共享資源、共享哪些資源、需要多大程度的共享,這些就需要研究並行處理的體系結構及有關實現技術。 (2)並行資料庫的物理設計,主要是在並行處理的環境下,數據分布的演算法的研究、資料庫設計工具與管理工具的研究。 (3)處理節點間通訊機制的研究。為了實現並行資料庫的高性能,並行處理節點要最大程度地協同處理資料庫事務,因此,節點間必不可少地存在通訊問題,如何支持大量節點之間消息和數據的高效通訊,也成為了並行資料庫系統中一個重要的研究課題。 (4)並行操作演算法,為提高並行處理的效率,需要在數據分布演算法研究的基礎上,深入研究聯接、聚集、統計、排序等具體的數據操作在多節點上的並行操作演算法。 (5)並行操作的優化和同步,為獲得高性能,如何將一個資料庫處理事務合理地分解成相對獨立的並行操作步驟、如何將這些步驟以最優的方式在多個處理節點間進行分配、如何在多個處理節點的同一個步驟和不同步驟之間進行消息和數據的同步,這些問題都值得深入研究。 (6)並行資料庫中數據的載入和再組織技術,為了保證高性能和高可用性,並行資料庫系統中的處理節點可能需要進行擴充(或者調整),這就需要考慮如何對原有數據進行卸載、載入,以及如何合理地在各個節點是重新組織數據。

❿ 並行查詢讓SQL Server加速運行

並行查詢其優勢就是可以通過多個線程來處理查詢作業 從而提高查詢的效率 SQL Server資料庫為具有多個CPU的山帆或資料庫伺服器提供並行查詢的功能 以優化查詢作業的性能 也就是說 只要資料庫伺服器有多個CPU 則資料庫系統就可以使用多個操作系統進程並行執行查詢操作 來加速完成查詢作業

一 並行查詢三步走

並行查詢作業在資料庫中 主要經過三個步驟

首先 資料庫會判斷是否需要進行並行查詢 在資料庫中有一個查詢優化器 會對SQL語句進行優化 然後資料庫才會去執行查詢語句 而這個查詢器在對SQL語句進行查詢優化時 其中一個動作就是判斷是否需要對SQL語句進行查詢優化 也就是說 並不是所有的SQL查詢語句都可以從並行查詢中獲取收益 如果查詢優化器認為查詢語句可以從並行查詢中獲取收益的話 則就會將交換運算符插入到查詢執行計劃中 為並行查詢做准備 故哪些語句需要採用並行查詢 哪些不需要 這不用資料庫管理員關心 資料庫查詢優化器會幫管理員作出這個決定 資料庫管理員需要清楚的是 在哪些情況下 資料庫SQL優化器會認為不宜採用並行查詢 通常情況下 只要滿足以下條件的任何一個 則就不會執行並行查詢 一是對於特定的查詢 查詢優化器認為串列查詢執行計劃要快於任何可能的並行執行計劃;二是查詢的串列執行成本並不高 不需要進行並行查詢;三是查詢中包含無法並行運行的標量運算符或者關系運算符 若從資料庫管理員的角度講 第三個條件對我們具有最大的影響 當資料庫預計未來可能利用並行查詢來提高資料庫性能時 則在資料庫設計時 就需要注意避免使用那些無法在並行查詢功能中使用的運算符 因為某些關系運算符或者邏輯運算符可能會要求查詢計劃一定要在串列模式中進行 或者部分需要在串列模式下進行 如此的話 查詢優化器就不會利用並行查詢功能來提高查詢語句的性能 這是資料庫管理員在資料庫設計時必須要考慮到的一個細節問題

其次 確定並行的進程數 當查詢優化器在查詢語句中插入交叉運算符之後 資料庫就會執行並行查詢 並行查轎凳詢在執行計劃時可以使用多個線程 此時 就又遇到了一個問題 資料庫會把這個查詢作業分成幾個進程操作呢?此時 資料庫管理員就需要知道上什麼叫做並行度 其實 在處理並行查詢的時候 數據需要知道最大可使用的進程與實際使用的進程 而最大可使用的進程就叫做並行度 這個並行度的值是在伺服器級別中進行設置 也可以通過系統存儲過程來進行修改 但是 最大可使用進程數不一定等於實際是用進程數 實際是用進程數是資料庫在查詢計劃執行時初始化的時候確定的 也就是說 這不用資料庫管理員去額外的設定 資料庫系統會自動根據計劃的復雜程度來確定合理的進程數目 當然其實際採用的進程數不能夠超過並行度 即最大可以使用的進程數

最後執行查詢 當以上內容確定好之後 資料庫就會執行具體的查詢語句 在這一步中 需要注意一個問題 資料庫管理員還可以在查詢語句中指定MAXDOP查詢提示來修改這個進度值 也就是說 如果某個查詢作業資料庫管理員認為可能會耗時比較久 就可以為這個查詢作業設置比較大的進度值 當利用MAXDOP查詢提示設置這個並行進度值之後 它會覆蓋預先設置的默認值 從而實現針對單個查詢語句設置額外的進度值 以提高某些特殊查詢作業的性能

二 並行查詢中需要注意的內容

注意點一逗伍 需要注意硬體方面的限制

並行查詢是資料庫提高查詢性能的一個有力舉措 不過其往往受到比較大的約束 如上面提高的一些基於成本考慮之外 還有一些硬性的限制 如通常情況下 只有在資料庫伺服器有多個微處理器(CPU )的情況下資料庫才會考慮執行並行查詢 也就是受 只有具有多個CPU的計算機才能夠使用並行查詢 這是一個硬性的限制條件 另外在查詢計劃執行過程中 資料庫還會判斷當時是否有足夠多的線程可以使用 每個查詢操作都要求一定的線程數才能夠執行;而且執行並行計劃比執行串列計劃需要更多的線程 所需要的線程數也會隨著並行度的提高而提高 如果在並行計劃執行的時候 當時資料庫伺服器沒有足夠的線程讓並行計劃使用的話 資料庫引擎就會自動減少並行度 甚至會放棄並行查詢而改為串列計劃 所以說 資料庫是否能夠執行並行查詢 要受到其硬體的限制 為此 如果企業真的需要通過並行查詢來提高資料庫性能的話 則管理員就需要根據情況來調整硬體配置

注意點二 不建議對所有查詢都使用並行查詢

通常情況下 筆者認為最好只對大型表的連接查詢 大量數據的聚合操作 大型結果集的重復排序等等操作才應用並行查詢的功能 如果在這些操作上執行並行查詢的話 那麼其改善資料庫性能的效果是非常明顯的 相反 如果對於簡單查詢執行並行查詢的話 可能執行並行查詢所需要的額外協調工作會大於其潛在的性能提升 所以 資料庫管理員在確定是否需要執行並行查詢功能的話 需要慎重 筆者的建議是 在資料庫伺服器級別上 最好不要設置並行查詢 即把並行度設置為 或者一個比較小的值 然後對於一些特殊的查詢操作 利用MAXDOP查詢提示來設置最大的可使用進程數 如此的話 可能會更加的合理 如果有時候資料庫管理員不知道是否需要採用並行查詢功能的話 則可以通過資料庫自帶的統計功能進行判斷 為了區別並行查詢計劃到底有沒有從並行查詢中受益 資料庫引擎可以將執行查詢的估計開銷與並行查詢的開銷閥值進行比較 並行計劃只有對需時較長的查詢通常更加有益;因為其性能優勢將抵消初始化 同步和終止並行計劃所需的額外時間開銷

注意點三 資料庫會根據查詢所涉及到的行數來判斷是否要並行查詢

上面談到 最好對大型表的連接查詢 大量數據的聚合操作 大型結果集的重復排序等等操作才應用並行查詢的功能 因為只有如此 並行查詢帶來的收益才會超過其付出的代價 但是 並不是說連接查詢 聚合操作 排序等作業都適合採用並行查詢 當資料庫在考慮並行查詢計劃的時候 查詢優化器還會去確定所涉及到的行數 如果所涉及到的行數台少 則將不會考慮執行並行查詢計劃 而會採用串列方式執行查詢語句 如此的話 可以避免因為啟動 分發 協調的開銷大大超過並行執行作業所帶來的收益 這本來是一個不錯的設計 但是也會給資料庫管理員帶來一定的麻煩 如現在資料庫管理員想要測試並行查詢到底可以在多大程度上影響查詢操作 就有點麻煩 因為其有數據量的限制 如果資料庫管理員需要進行這個測試 還不得不先在資料庫系統中導入足夠多的數據才行 這就限制了資料庫管理員的測試操作 不過話說回來 這個機制仍然是不錯的 因為資料庫管理員不用去考慮 當資料庫規模到多大的時候採用並行查詢

注意點四 同一個操作在不同時候會採用不同的進程數

lishixin/Article/program/SQLServer/201311/22469

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:741
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372