當前位置:首頁 » 編程語言 » oracle11gsql優化
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle11gsql優化

發布時間: 2023-04-20 00:57:07

『壹』 win7系統中安裝plsql客戶端,連接linux中oracle 11g,很慢,需要等3分鍾前後才能進去,請問怎麼優化

function postorder($root)
configure:3458: checking whether the C compiler works
configure:3480: gcc conftest.c >&5
ld: malformed 32-bit x.y.z version number: 11.4.0d1
collect2: ld returned 1 exit status
configure:3484: $? = 1
configure:3522: result: no
configure: failed program was:
| /* confdefs.h */

『貳』 如何進行oracle資料庫性能優化

你最好買一本專門講ORACLE性能優化的書,好好看看\x0d\x0a1、調整資料庫伺服器的性能\x0d\x0aOracle資料庫伺服器是整個系統的核心,它的性能高低直接影響整個系統的性能,為了調整Oracle資料庫伺服器的性能,主要從以下幾個方面考慮: \x0d\x0a1.1、調整操作系統以適合Oracle資料庫伺服器運行\x0d\x0aOracle資料庫伺服器很大程度上依賴於運行伺服器的操作系統,如果操作系統不能提供最好性能,那麼無論如何調整,Oracle資料庫伺服器也無法發揮其應有的性能。 \x0d\x0a1.1.1、為Oracle資料庫伺服器規劃系統資源 \x0d\x0a據已有計算機可用資源, 規劃分配給Oracle伺服器資源原則是:盡可能使Oracle伺服器使用資源最大化,特別在Client/Server中盡量讓伺服器上所有資源都來運行Oracle服務。 \x0d\x0a1.1.2、調整計算機系統中的內存配置 \x0d\x0a多數操作系統都用虛存來模擬計算機上更大的內存,它實際上是硬碟上的一定的磁碟空間。當實際的內存空間不能滿足應用軟體的要求時,操作系統就將用這部分的磁碟空間對內存中的信息進行頁面替換,這將引起大量的磁碟I/O操作,使整個伺服器的性能下降。為了避免過多地使用虛存,應加大計算機的內存。 \x0d\x0a1.1.3、為Oracle資料庫伺服器設置操作系統進程優先順序 \x0d\x0a不要在操作系統中調整Oracle進程的優先順序,因為在Oracle資料庫系統中,所有的後台和前台資料庫伺服器進程執行的是同等重要的工作,需要同等的優先順序。所以在安裝時,讓所有的資料庫伺服器進程都使用預設的優先順序運行。 \x0d\x0a1.2、調整內存分配\x0d\x0aOracle資料庫伺服器保留3個基本的內存高速緩存,分別對應3種不同類型的數據:庫高速緩存,字典高速緩存和緩沖區高速緩存。庫高速緩存和字典高速緩存一起構成共享池,共享池再加上緩沖區高速緩存便構成了系統全程區(SGA)。SGA是對資料庫數據進行快速訪問的一個系統全程區,若SGA本身需要頻繁地進行釋放、分配,則不能達到快速訪問數據的目的,因此應把SGA放在主存中,不要放在虛擬內存中。內存的調整主要是指調整組成SGA的內存結構的大小來提高系統性能,由於Oracle資料庫伺服器的內存結構需求與應用密切相關,所以內存結構的調整應在磁碟I/O調整之前進行。 \x0d\x0a1.2.1、庫緩沖區的調整 \x0d\x0a庫緩沖區中包含私用和共享SQL和PL/SQL區,通過比較庫緩沖區的命中率決定它的大小。要調整庫緩沖區,必須首先了解該庫緩沖區的活動情況,庫緩沖區的活動統計信息保留在動態性能表v$librarycache數據字典中,可通過查詢該表來了解其活動情況,以決定如何調整。 \x0d\x0a \x0d\x0aSelect sum(pins),sum(reloads) from v$librarycache; \x0d\x0a \x0d\x0aPins列給出SQL語句,PL/SQL塊及被訪問對象定義的總次數;Reloads列給出SQL 和PL/SQL塊的隱式分析或對象定義重裝載時在庫程序緩沖區中發生的錯誤。如果sum(pins)/sum(reloads) ≈0,則庫緩沖區的命中率合適;若sum(pins)/sum(reloads)>1, 則需調整初始化參數 shared_pool_size來重新調整分配給共享池的內存量。 \x0d\x0a1.2.2、數據字典緩沖區的調整 \x0d\x0a數據字典緩沖區包含了有關資料庫的結構、用戶、實體信息。數據字典的命中率,對系統性能影響極大。數據字典緩沖區的使用情況記錄在動態性能表v$librarycache中,可通過查詢該表來了解其活動情況,以決定如何調整。 \x0d\x0a \x0d\x0aSelect sum(gets),sum(getmisses) from v$rowcache; \x0d\x0a \x0d\x0aGets列是對相應項請求次數的統計;Getmisses 列是引起緩沖區出錯的數據的請求次數。對於頻繁訪問的數據字典緩沖區,sum(getmisses)/sum(gets)<10%~15%。若大於此百分數,則應考慮增加數據字典緩沖區的容量,即需調整初始化參數shared_pool_size來重新調整分配給共享池的內存量。 \x0d\x0a1.2.3、緩沖區高速緩存的調整 \x0d\x0a用戶進程所存取的所有數據都是經過緩沖區高速緩存來存取,所以該部分的命中率,對性能至關重要。緩沖區高速緩存的使用情況記錄在動態性能表v$sysstat中,可通過查詢該表來了解其活動情況,以決定如何調整。 \x0d\x0a \x0d\x0aSelect name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads'); \x0d\x0a \x0d\x0adbblock gets和consistent gets的值是請求數據緩沖區中讀的總次數。physical reads的值是請求數據時引起從盤中讀文件的次數。從緩沖區高速緩存中讀的可能性的高低稱為緩沖區的命中率,計算公式: \x0d\x0a \x0d\x0aHit Ratio=1-(physical reds/(dbblock gets+consistent gets)) \x0d\x0a \x0d\x0a如果Hit Ratio<60%~70%,則應增大db_block_buffers的參數值。db_block_buffers可以調整分配給緩沖區高速緩存的內存量,即db_block_buffers可設置分配緩沖區高速緩存的數據塊的個數。緩沖區高速緩存的總位元組數=db_block_buffers的值*db_block_size的值。db_block_size 的值表示數據塊大小的位元組數,可查詢 v$parameter 表: \x0d\x0a \x0d\x0aselect name,value from v$parameter where name='db_block_size'; \x0d\x0a \x0d\x0a在修改了上述資料庫的初始化參數以後,必須先關閉資料庫,在重新啟動資料庫後才能使新的設置起作用。

『叄』 oracle入門經典書籍

oracle書籍一、《Oracle Database 11g性能優化攻略》
三位經驗豐富的頂級oracle dba 再次聯手,為讀者呈現這本oracle 資料庫性能優化攻略。本書由表及裡地深入分析了造成oracle 資料庫性能緩慢的各種原因,然後給出標本兼治的性能調優方案。

oracle書籍二、《收獲,不止Oracle》
在這《收獲,不止oracle》里讀者將會跟隨作者一同對oracle資料庫的相關知識進行梳理,最終共同提煉出必須最先掌握的那部分知識,無論你是資料庫開發、管理、優化、設計人員,還是從事java、c的開發人員。

oracle書籍三、《Oracle 高性能SQL引擎剖析:SQL優化與調優機制詳解》
oracle資料庫的性能優化直接關繫到系統的運行效率,而影響資料庫性能的一個重要因素就是sql性能問題。本書是作者十年磨一劍的成果之一,深入分析與解剖oracle sql優化與調優技術。

oracle書籍四、《Oracle PL/SQL實戰》
《oracle pl/sql實戰》共15章,分別由15位業內頂級專家擔綱撰寫。一條sql語句的誤用,可能導致作業的運行時間增加幾百倍,riyaj shamsudeen巧妙地回答了何時使用pl/sql這一問題;michael rosenblum說明了如果只有到最終運行時,才知道所要運行的sql語句到底是什麼。

『肆』 oracle 9 10 11的區別

10比9多了4個關鍵服務,但是也要多佔很多內存,如果沒有什麼特殊需求,9就夠用了的;另外,相對於9,10增加了許多函數,以及新數據類型binary_float binary_double引入了新的pl/sql編譯器極大的加強了pl/sql的執行性能在編譯Pl/sql語句時會對死代碼(從未執行的代碼)或不可預料的慶肢子句時進行報警等等。10的新特性你可以去這個地址看下:http://www.dbanotes.net/Oracle/10G-What's-New.htm

11的新特性有朋友收集整理過了:
1. 資料庫管理部分
· 資料庫重演(Database Replay)
這一特性可以捕捉整個數據的負載,並且傳遞到一個從備份或者standby資料庫中創建的測試資料庫上,然後重演負責以測試系統調優後的效果。
· SQL重演(SQL Replay)
和前一特性類似。但是只是捕捉SQL負載部分,而不是全部負載。
· 計劃管理(Plan Management)
這一特性允許你將某一特定語句的查詢計劃固定下來,無論統計數據變化還是資料庫版本變化都不會改變她的查詢計劃。
· 自動診斷知識庫(Automatic Diagnostic Repository ADR)
當Oracle探測到重要錯誤時,會自動創紀一個事件(incident),並且捕捉到和這一事件相關的信息,同時自動進行資料庫健康檢查並通知DBA。此外,這些信息還可以打包發送給Oracle支持團隊。
· 事件打包服務(Incident Packaging Service)
如果你需要進一步測試或者保留相關信息,這一特性可以將與某一事件相關的信息打包。並且你還可以將打包信息發給oracle支持團隊。
· 基於特性打補丁(Feature Based Patching)
在打補丁包時,這一特性可以使你很容易區分出補丁包中的那些特性是你正在使用而必須打的。企業管理器(EM)使你能訂閱一個基於特性的補丁服務,因此企業管理器可以自動掃描那些你正在使用的特性有補丁可以打。
· 自動SQL優化(Auto SQL Tuning)
10g的自動優化建議器可以將優化建議寫在SQL profile中。而在11g中,你可以讓oracle自動將能3倍於原有性能的profile應用到SQL語句上。性能比較由維護窗口中一個新管理任務來完成。
· 訪問建議器(Access Advisor)
11g的訪問建議器可以給出分區建議,包括對新的間隔分區(interval partitioning)的建議。間隔分區相當於范圍分區(range partitioning)的自動化版本,她可以在必要時自動創建一個相同大小的分區。范圍分區和間隔分區可以同時存在於一張表中,並且范圍分區可以轉換為間隔分區。
· 自動內存優化(Auto Memory Tuning)
在9i中,引入了自動PGA優化;10g中,又引入了自動SGA優化。到了11g,所有內存可以通過只設定一個參數來實現全表自動優化。你只要告訴oracle有多少內存可用,她就可以自動指定多少內存分配給PGA、多少內存分配給SGA和多少內存分配給操作系統進程。當然也可以設定最大、最小閾值。譽碧世
· 資源管理器(Resource Manager)
11g的資源管理器不僅可以管理CPU,還可以管理IO。你可以設置特定文件的優先順序、文件類型和ASM磁碟組。
· ADDM
ADDM在10g被引入。11g中,ADDM不僅可以給單個實例建議,還可以對整個RAC(即資料庫級別)給出建議。另外,還可以將一些指示(directive)加入ADDM,使之忽略一些你不關心的信息。
· AWR 基線(AWR Baselines)
AWR基線得到了擴展。可以為一些其他使用到的特性自動創建基線。默認會創建周基線。
2. PLSQL部分
· 結果集緩存(Result Set Caching)
這一特性能大大提高很多程序的性能。在一些 MIS系統或者OLAP系統中,需要使用到很多"select count(*)"慧御這樣的查詢。在之前,我們如果要提高這樣的查詢的性能,可能需要使用物化視圖或者查詢重寫的技術。在11g,我們就只需要加一個/*+ result_cache*/的提示就可以將結果集緩存住,這樣就能大大提高查詢性能。當然,在這種情況下,我們可能還要關心另外一個問題:完整性。因為在oracle中是通過一致性讀來保證數據的完整性的。而顯然,在這種新特性下,為提高性能,是從緩存中的結果集中讀取數據,而不會從回滾段中讀取數據的。關於這個問題,答案是完全能保證完整性。因為結果集是被獨立緩存的,在查詢期間,任何其他DML語句都不會影響結果集中的內容,因而可以保證數據的完整性。
· 對象依賴性改進
在11g之前,如果有函數或者視圖依賴於某張表,一旦這張表發生結構變化,無論是否涉及到函數或視圖所依賴的屬性,都會使函數或視圖變為invalid。在11g中,對這種情況進行了調整:如果表改變的屬性與相關的函數或視圖無關,則相關對象狀態不會發生變化。
· 正則表達式的改進
在10g中,引入了正則表達式。這一特性大大方便了開發人員。11g,oracle再次對這一特性進行了改進。其中,增加了一個名為regexp_count的函數。另外,其他的正則表達式函數也得到了改進。
· 新SQL語法 =>
我們在調用某一函數時,可以通過=>來為特定的函數參數指定數據。而在11g中,這一語法也同樣可以出現在sql語句中了。例如,你可以寫這樣的語句:
select f(x=>6) from al;
· 對TCP包(utl_tcp、utl_smtp…)支持FGAC(Fine Grained Access Control)安全控制
· 增加了只讀表(read-only table)
在以前,我們是通過觸發器或者約束來實現對表的只讀控制。11g中不需要這么麻煩了,可以直接指定表為只讀表。
· 觸發器執行效率提高了

『伍』 toad for oracle 11g裡面查看sql語句執行效率的選項

你說的是explain plan吧?

Ctrl+E或者菜單:Edit-->explain plan current sql

『陸』 oracle11gR2中查詢同一SQL,為什麼查詢千萬級數據比查詢上億數據慢呢

沒有可比性
伺服器的主機配置情況,資肆或滑源利裂臘用情況
表中記團頌錄條數,執行計劃等都影響查詢效率

『柒』 Oracle11g由於應用sql語句問題造成IO高,cpu高,業務中斷,請教解決方法!

你這個情況屬於死翹翹的,所謂優化大部分都需要代碼的,而且代碼級別的優化是最簡單最粗淺的了,繞開代碼級別的優化屬於架構級別的優化了,那樣代價就更高了,而且代碼級別的優化都做不到,那架構級優化就更難了。如果sql都優化不了,你就算增加內存,增加cpu,增加伺服器,即使你改到小型機上,而代碼本身卻不能夠使用這些資源,你也是白搭的,你現在目前能做的要麼放任自流,要麼重新組建開發團隊開發了。

『捌』 Oracle 11g的資料庫管理部分

(Automatic Diagnostic Repository ADR)
當Oracle探測到重要錯誤時,會自動創建一個事件(incident),並且捕捉到和這一事件相關的信息,同時自動進行資料庫健康檢查並通知DBA。此外,這些信息還可以打包發送給Oracle支持團隊。· (Incident Packaging Service)
如果你需要進一步測試或者保留相關信息,這一特性可以將與某一事件相關的信息打包。並且你還可以將打包信息發給oracle支持團隊。· (Feature Based Patching)
在打補丁包時,這一特性可以使你很容易區分出補丁包中的那些特性是你正在使用而必須打的。企業管理器(EM)使你能訂閱一個基於特性的補丁服務,因此企業管理器可以自動掃描那些你正在使用的特性有補丁可以打。· (Auto SQL Tuning)10g的自動優化建議器可以將優化建議寫在SQL profile中。而在11g中,你可以讓oracle自動將能3倍於原有性能的profile應用到SQL語句上。性能比較由維護窗口中一個新管理任務來完成。
· (Access Advisor)
11g的訪問建議器可以給出分區建議,包括對新的間隔分區(interval partitioning)的建議。間隔分區相當於范圍分區(range partitioning)的自動化版本,她可以在必要時自動創建一個相同大小的分區。范圍分區和間隔分區可以同時存在於一張表中,並且范圍分區可以轉換為間隔分區。 (Auto Memory Tuning)
在9i中,引入了自動PGA優化;10g中,又引入了自動SGA優化。到了11g,所有內存可以通過只設定一個參數來實現全表自動優化。你只要告訴oracle有多少內存可用,她就可以自動指定多少內存分配給PGA、多少內存分配給SGA和多少內存分配給操作系統進程。當然也可以設定最大、最小閾值。
· (Resource Manager)
11g的資源管理器不僅可以管理CPU,還可以管理IO。你可以設置特定文件的優先順序、文件類型和ASM磁碟組。
· ADDM在10g被引入。11g中,ADDM不僅可以給單個實例建議,還可以對整個RAC(即資料庫級別)給出建議。另外,還可以將一些指示(directive)加入ADDM,使之忽略一些你不關心的信息。
· (AWR Baselines)AWR基線得到了擴展。可以為一些其他使用到的特性自動創建基線。默認會創建周基線。

『玖』 oracle11g資料庫最新的優勢有哪些

現在已經是Oracle12c了。

你要的是這個嗎?

Oracle 11g比10g多了哪些新特性?
1. 11 g 擴展了 Oracle 獨傢具有的提供網格計算優勢的功能,來提高用戶服務水平、減少停機時間以及更加有效地利用 IT資源,
同時還增強全天候業務應用程序的性能、可伸縮性和安全性,利用真正應用測試(RAT)盡量降低更改的風險
2. 11 g降低了資料庫升級以及其他硬體和操作系統更改的成本,顯著簡化了更改前後的系統測試以便您可以識別和解決問題。如:
利用 Database Replay在資料庫級別輕松捕獲實際的生產負載並在測試系統上重新播放,這樣有效的全面測試系統更改(包括關鍵的並發特性)的影響。
3. SQL Performance Analyzer識別結構化查詢語言 ) SQL(執行計劃更改和性能回退。可以使用 SQL Tuning Advisor解決識別的問題,
方法是還原到原始的執行計劃或進一步優化。利用管理自動化提高 DBA 效率
4. Oracle 資料庫 11 g繼續致力於顯著簡化和完全自動化 DBA 任務。
5.利用自學功能自動進行 SQL 優化系統全局區(SGA)和程序全局區( PGA)的內存緩存區的自動、統一調整新的 advisor用於分區、數據恢復、
流性能和空間管理針對自動資料庫診斷監視器 (ADDM)的增強,能夠提供 Oracle 真正應用集群 (Oracle RAC)環境中的更好的性能全局視圖以及改進的性能比較分析功能。
6.利用故障診斷快速解決問題
7.故障診斷功能使客戶在發生錯誤後捕獲 Oracle
8.Support所需的數據變得極為簡單。這可以加速問題的解決,減少客戶重現問題的需要,盡量降低停機成本
9.通過 Oracle Data Guard快速恢復數據 Oracle Data Guard在本地和遠程伺服器之間協調資料庫的維護和同步以便從災難或站點故障快速恢復。
Oracle資料庫11 g提供了大量顯著的 Oracle Data Guard增強,包括可以在物理備用系統上運行實時查詢用於報表和其他目的、
可以通過將物理備用系統暫時轉換為邏輯備用系統執行聯機的、滾動的資料庫升級
10.支持測試環境的快照備用系統
11.物理和邏輯備用的性能都有提高。邏輯備用現在支持可擴展標記語言(XML)類型字元大型對象 (CLOB)數據類型和透明的數據加密。現在支持自動的、快速啟動的故障切換以支持非同步傳輸。
12.支持滾動升級
13.自動壞塊檢測和修復
14.快速鏡像重新同步,該功能可以有效地重新同步存儲網路連接性暫時丟失時自動存儲管理鏡像的存儲陣列
15.自動存儲管理的性能增強使得大型資料庫可以更快地打開並減少 SGA 內存消耗。這些增強還允許 DBA增加存儲分配單元大小以加快大型序列輸入/輸出 (I/O),顯著增加正常運行時間
16.Oracle資料庫11 g使您可以應用很多一次性資料庫補丁(包括診斷補丁),而沒有停機時間。新的數據恢復 advisor通過快速識別故障根本原因、為 DBA提供可用的恢復選項,
極大地減少了停機時間,在某些情況下,還通過「自我恢復」機制自動糾正問題。
17.自動編譯資料庫中的 PL/SQL 和 Java
18.更快的觸發器,包括更加有效地調用每行觸發器
19.更快的簡單 SQL 操作
20.更快的 Oracle Data Guard 和 Oracle Streams 復制
21.與網路文件系統( NFS) 存儲設備更快、更可靠的直接連接、更快的升級
22.大型文件更快的備份/還原更快的備份壓縮
23.Oracle 資料庫 11 g包括大量新的 ILM特性,例如
新的分區功能,包括 按父/子引用分區、按虛擬列分區
Oracle資料庫11 g還具有帶 Oracle閃回數據歸檔的 Total Recall,可以在選定的表中查詢以前的數據,從而提供了一種簡單實用的向數據中添加時間維度的方法以便於更改跟蹤、 ILM、審計和合規。
24.Oracle 資料庫 11g還有其他高可用性增強,包括:
Oracle閃回事務查詢,提供帶其他相關事務更改的流氓事務的按鈕更改
具有更多可傳輸選項的增強的平台移植和數據移動,包括可傳輸分區、
模式和跨平台資料庫
Oracle恢復管理器 (RMAN)支持 Windows Volume Shadow Copy
Service ( VSS )快照,從而實現與 Windows備份更緊密的集成
優化性能和可靠性
合規、法律取證以及整合數據倉庫的趨勢導致資料庫的大小每兩年就會增加兩倍,這極大地影響了大型資料庫的存儲成本和性能、可靠性以及可管理性
Oracle 資料庫 11 g使組織可以使用低成本的伺服器和模塊化的存儲器輕松伸縮大型的事務和數據倉庫系統並提供快速的全天候數據訪問。
Oracle 資料庫11 g提供新的創新特性以進一步提高要求極嚴格的環境的性能和可伸縮性。
利用 SecureFiles安全地存儲您的所有數據
SecureFiles 是 Oracle用於在資料庫中存儲大型對象) LOB (例如圖像、大型文本對象或包括 XML、醫學成像以及地理空間柵格對象在內的高級數據類型)的下一代產品。
SecureFiles提供能夠完全與文件系統相媲美的卓越性能。此外,它還提供高級功能,例如智能壓縮、透明加密以及透明的重復刪除。
通過聯機事務處理壓縮提高性能並盡量降低存儲成本
Oracle 資料庫 11 g支持聯機事務處理 (OLAP)應用程序中常用的更新、插入和刪除操作的數據壓縮。以前的 Oracle資料庫版本支持數據倉庫應用
程序常用的批量數據載入操作的壓縮。 Oracle 資料庫 11 g OLTP表壓縮通過更加高效地使用內存來緩存數據以及減少表掃描的 I/O提高了資料庫性能
利用 OLTP表壓縮,您可以利用最小的處理開銷達到 2 到 3倍的壓縮比。

『拾』 資料庫oracle11G,如何通過plsql查詢表空間大小,如何通過PLSQL把一個表空間的大小設置成自動擴展

sql語句

1.查詢表空間大小

select tablespace_name , sum(bytes/1024/1024) sizeM from dba_data_files group by tablespace_name ;

2.設置數據文件為自動拓展

alter database datafile n autoextend on ;


不知道你說的兩個東西有什麼關聯性。


下面是設置全部數據文件為自動拓展的plsql匿名塊:

begin
forrecin(selectfile_id,autoextensiblefromdba_data_fileswhereautoextensible='NO')loop
executeimmediate'alterdatabasedatafile'||rec.file_id||'autoextendon';
endloop;
end;