A. 怎麼知道oracle中一個存儲過程最後一次被編譯的時間
個人觀點:
1 last_ddl_time就是指最後一次編譯的時間。 你認為的create or replace 其實就是一種編譯
2 A調用B引發的B的重新編譯。
我認為A調用B是不會引起B的編譯的。從2個方面解釋:
1) 我個人工作經驗中沒有發現A調用B會讓B重新編譯。
案例:B中引用了一張表。我將表刪除了,編譯B。那麼B出現了錯誤。此時我又將表還原了。再去編譯A。注意:A中調用B。但是B是錯誤的。如果調用B讓B也編譯的話,那麼B會編譯通過,A沒問題。事實上:由於B的錯誤,導致A編譯也錯誤。可見B並沒有編譯。
2)存儲過程的一個優點是什麼?就是一次編譯,到處運行。這個編譯時比較消耗資源的。從常理上講,如果每次調用A引發了B的編譯,那麼存儲過程的上述的優點浩然無存。所以從常理推斷,A調用B不會引發B的編譯。
---------------------------------- -----------------------------------------
早上看到了你昨晚發的信息。嘗試了下。你的結論是有一半是正確的。
正確的解釋應該是:
1 假設A、B都是正確的 那麼調用的時候無需編譯;
2 假設A、B是無效的。那麼調用的時候會去編譯它。
Oracle會自己判斷A、B是否有效,再根據情況決定是否去編譯。
B. oracle存儲過程必須提前編譯好嗎
存儲過程寫完後,必須編譯一下,然後才能用。
因為寫完後,資料庫並沒有確認過程是否有問題,編譯過程其實就是資料庫確認的過程。所以必須提前編譯好。
C. 關於oracle的問題
由於ORACLE資料庫產品是當前資料庫技術的典型代表,她的產品除了資料庫系統外,還有應用系統、開發工具等。剛接觸Oracle的人員都有這樣的感覺:Oracle的產品太多,每個產品內容精深,不知道從哪兒開始學才好。為了用少量時間更好地理解和使用oracle 資料庫系統,有必要對oracle的一些基本術語及概念進行了解,下面給出一些在管理中經常用到的概念和術語,供初學者快速了解Oracle資料庫系統提供方便。
§1.1 ORACLE7和ORACLE8
ORACLE7是一種完全的關系資料庫系統,它不支持面向對象。
ORACLE8 則是一個引入面向對象的資料庫系統,它既非純的面向對象的資料庫也非純的關系資料庫,它是兩者的結合,因此叫做「對象關系資料庫」。
§1.2 ORACLE8 特點
ORACLE8 於 1997年6月正式發布,它包括了幾乎所有的資料庫技術,因此被認為是未來企業級主選資料庫之一。主要有以下特點:
1.對象/關系模型
ORACLE8對於對象模型採取較為現實和謹慎的態度,使用了對象/關系模型,即在完全支持傳統關系模型的基礎上,為對象機制提供了有限的支持。ORACLE8不僅能夠處理傳統的表結構信息,而且能夠管理由C++,Smalltalk 以及其它開發工具生成的多媒體數據類型,如文本,視頻,圖形,空間對向等。這種做法允許現有軟體開發產品與工具軟體及ORACLE8應用軟體共存,保護了客戶的投資。
2.資料庫伺服器系統的動態可伸縮性
ORACLE8引入了連接存儲池(connection polling)和多路復用(multiplexing)機制,提供了對大型對象的支持。當需要支持一些特殊數據類型時,用戶可以創建軟體插件(catridge )來實現。ORACLE8採用了高級網路技術,提高共享池和連接管理器來提高系統的可括性,容量可從幾 GB 到 幾百 TB 位元組,可允許10萬用戶同時並行訪問,ORACLE 的資料庫中每個表可以容納 1000列,能滿足目前資料庫及數據倉庫應用的需要。
ORACLE 公司稱,ORACLE8可以支持達 512PB的數據量。但目前還未有哪一家用戶的資料庫的數據量達到這個數量。下面是幾種常用數據量的等價關系:
1MB = 1024 KB
1GB = 1Gigabyte Byte = 1024 MB
1TB = 1TeraByte = 1024 GB = 1024*1024MB
1PB = 1PeraByte = 1024 TB = 1024 * 1024 * 1024 MB
1EB = 1ExaByte = 1024 PB = 1024 * 1024 *1024 *1024 MB
3.系統的可用性和易用性
ORACLE8提供了靈活多樣的數據分區功能,一個分區可以是一個大型表,也可以是索引易於管理的小塊,可以根據數據的取值分區。有效地提高了系統操作能力及數據可用性 ,減少I/O 瓶頸。ORACLE8還對並行處理進行了改進,在點陣圖索引,查詢,排序,連接和一般索引掃描等操作引入並行處理,提高了單個查詢的並行度。ORACLE8通過並行伺服器(Parallel Server Option )來提高系統的可用性。
4.系統的可管理性和數據安全功能
ORACLE8提供了自動備份和恢復功能,改進了對大規模和更加細化的分布式操作系統的支持,如加強了SQL 操作復制的並行性。為了幫助客戶有效地管理整個資料庫和應用系統,ORACLE還提供了企業管理系統(ORACLE Enterprise Manager),資料庫管理員可以從一個集中控制台拖放式圖形用戶界面管理ORACLE的系統環境。
ORACLE8通過安全伺服器中提供的安全服務,加強了ORACLE Web Server 中原有的用戶驗證和用戶管理。
5.面向網路計算
ORACLE8i在 與JAVA VM 及 CORBA ORB 集成後,將成為NCA(網路計算機體結構)的核心部件。NCA是ORACLE 關於分布式對象與網路計算機的戰略規劃。ORACLE8 對NCA產生了巨大影響,簡化了應用軟體的化分,推動了瘦型客戶機及Web 應用軟體的發展。在ORACLE8 FOR NT 中還提共了新產品Web 發布助理(Web Publishing Assistant ORACLE),提供了一種在WORD WIDE WEB 上發布資料庫信息的簡便,有效的方法。
6.對多平台的支持與開放性
網路結構往往含有多個平台,ORACLE8 可以運行於目前所有主流平台上,如
SUN Solarise, Sequent Dynix/PTX,Intel Nt,HP_UX,DEC_UNIX,IBM AIX 和 SP等。ORACLE8 的異構服務為同其它數據源以及使用SQL 和PL/SQL的服務進行通訊提供了必要的基礎設施。ORACLE8 繼續至力於對開放標准規范SQL3,JDBC,JSQL和CORBA 的支持。
§1.3 ORACLE8和ORACLE8i
當 ORACLE 8 第一次發行時,它提供了優於 ORACLE 7 的性能和選件,但是它基本是ORACLE7 的引擎。 在ORACLE8 的後來版本中不斷作過多次的完善,出現 ORACLE 8.0.X 版本。然而1998年初發行(推出)的 ORACLE 8I 可以被看作是 ORACLE 8 的功能擴展集。
由於ORACLE 8I 比 ORACLE 8 提供了更多的功能,它除了共同的RDBMS功能外,還提供了許多與INTERNET 有關的能力,最重要的是它將 JAVA 集成為一種內部的數據語言,這種語言可充當或替代品,而且它還集成了一個WEB伺服器和開發平台(Web DB )。對ORACLE 8.0.x 來說只到 ORACLE 8.0.5 版本就終止了,接著就推出了 ORACLE8i 8.1.5版本,ORACLE8i 8.1.5版本也經常被稱為Release 1;而ORACLE8i 8.1.6版本被稱為Release 2;ORACLE8i 8.1.7版本被稱為Release 3。
§1.4 ORACLE8i和ORACLE9i
在正式進入21世紀前的2000年年底,ORACLE公司正式發布了ORACLE 9i 新資料庫系統。原先預料可能會有ORACLE 8i V8.1.8等版本,但ORACLE8i版本只推出8.1.7就被Oracle9i所代替。ORACLE公司和其它的軟體公司一樣,為了搶占市場,不再願意在原來版本上再作更多的改進和優化工作,而是直接的推出新產品這樣一種策略。ORACLE9i 與ORACLE8i 比較,ORACLE 9i 主要包括下面三大部分:
l 資料庫核心(Database )
l 應用伺服器(Application Server )
l 開發工具集(Developer Suite )
Oracle9i 主要焦點(Oracle9i Focus ):
l 電子商務智能化( E-Business Intelligence )
l 應用開發( Applications Development )
l 應用主機( Applications Hosting )
l 門戶與內容( Portals and Content )
l 電子商務連續性( E-Business Continuity )
Oracle9i 為了結合 Internet 市場設計。Oracle9i適合並勝任市場上所有的苛刻要求。
l Oracle9I實時應用( Oracle9i Real Application)
l Oracle9I高可用性(Oracle9i High Availability)
l Oracle9I 系統管理( Oracle9i Systems Management )
l Oracle9I 安全( Oracle9i Security)
Oracle9i 資料庫服務(Oracle9i Database Services):
l 商業智能與數據倉庫( Business Intelligence and Data Warehousing)
l Oracle9I動態服務( Oracle9i Dynamic Services)
l Oracle9I JAVA 和XML(Oracle9i Java and XML)
l 電子商務集成( E-Business Integration )
§1.5 ORACLE OAS和ORACLE iAS
目前的ORACLE公司的iAS 的早期版本是 ORACLE Web Server ,後來第4版改名為ORACLE APPLICATION SERVER ,2000年底前又改名為 ORACLE9i Internet Application Server(ORACLE iAS)。目前的iAS可以與ORACLE8i 或ORACLE9i 結合在一起的綜合開發工具。為創建和部署任何基於網路的應用程序提供了一個完整的Internet 平台,iAS包括了門戶、事務應用、商業智能工具、無線上網應用和企業集成等。
Oracle Internet Application Server 提供了行業中最全面的中間層產品,包括通信、表示、商業邏輯、數據緩存和系統服務等。
1.通信服務:
基於Apache 的ORACLE HTTP Server,主要包括下面模塊:
mod_jserv:將對servlet 的HTTP請求分發到Oracle iAS 的Servlet 引擎。
Mod_perl:將perl 程序的HTTP 請求分發到Apache Web Server 的Perl Interpreter。
Mod_ssl:提供基於SSL證書的公共密鑰,它被用來在客戶端和Apache Server 之間進行加密通信。
Mod_plsql:Oracle 專用模塊,用來將HTTP請求傳到資料庫內的PL/SQL和Java存儲過程。
2. 表示服務
提供下面方法進行內容表示:
Oracle portal(Oracle 門戶)
Apache Jserver (Apache Java 伺服器)
Perl Interpreter( Perl 解釋程序 )
Oracle JavaServer Pager(JSP)
Oracle PL/SQL Server Pages(PSP)
3.商業邏輯服務
可提供以下服務組件:
Oracle8i JVM( Java 虛擬機)
Oracle8i PL/SQL
Java 商業組件(BC4J)
Form Service
Report Service
Discoverer Viewer
4.數據管理服務
Oracle 8i cache
5.系統服務
Oracle Enterprise Manager(Oracle 企業管理器)
Oracle Advanced Security (Oracle 高級安全性)
Developer's KITS(開發工具),包括:
l Oracle database client developer's Kit
l Oracle XML developer's Kit(XDK)
l Oracle LDAP developer's Kit
§1.6 ORACLE Application R11i
Oracle 公司除了提供完美的資料庫系統外,也提供完整的解決方案的套件,即全套應用系統,通常稱作 Oracle Application R11i。它是一全面集成的電子商務套件。它包括:
1.數據倉庫平台
l Oracle 8i 企業級資料庫伺服器
l Oracle Warehouse Builder(數據倉庫構造器)
2.商業智能工具集
l Oracle Discoverer
l Oracle Express產品系列
l Oracle darwin
3.Oracle 金融服務應用
l 績效管理
l 客戶關系管理
l 風險管理
4.ORACLE財務系統
基於Internet 的財務管理系統包括下面模塊:
l 商業智能管理
l 預算管理
l 合並管理
l 現金預測管理
l 員工費用管理
l Oracle 財務分析系統
l Oracle 項目管理系統
l 工作流程管理
l 預警系統
§1.7 ORACLE 伺服器組件
l 過程組件
可以用於建立過程、觸發器(封裝),這些代碼可以存放在資料庫伺服器中。Oracle,Sybase,Informix,Sql Server 都把這些所謂存儲過程存放在資料庫內,而DB2則把這些所謂存儲過程存放在伺服器的另外一個專門分區內。
l 分布選件
可以支持多台伺服器(在不同的地方)間的通信,即每個伺服器上均有Oracle系統,而分布選件就是把這些不同的地方的資料庫系統管理起來的部件。
l 並行選件
對一台具有多個CPU的機器能進行並行查詢、充分利用計算機的性能。
l 並行伺服器
對於多台機器(有自己的處理器)共同訪問同一個硬碟這樣的結構進行管理,為用戶提供很高的容錯性。當某台機器出現故障時,可以安排用戶使用(登錄)到另一台機器上。當兩台都出現故障時,則整個系統都不能使用。
l 圖象選件
可以存儲、管理和提供實時的,全屏幕的圖象和高質量的聲音給網路上的用戶。
l 企業管理器
Oracle 提供一個幫助用戶管理系統,應用網路和資料庫工具「Oracle企業管理器(OEM)」.
l 空間數據選件(Spatial data option)
空間數據選件是一種存儲和檢索數據的新方法,在查詢中系統根據所關心的數據進行組織,因此,資料庫性能的主要決定因素是所感興趣的資料庫集的大小。
l 上下文選件
是一種文本管理方案,它把非結構化的文本數據管理如同結構化一樣。可以建立和開展基於文本的帶有類似SQL介面的應用。這種方法只有 ORACLE8 及以後版本能支持。
l Web伺服器
可以通過WWW來訪問Oracle資料庫中的數據。
l OLAP選件
聯機分析處理,Oracle提供Oracle Express作為聯機分析處理。
§1.8 目前ORACLE8i 的主要產品
(Oracle9i產品在最後一天介紹)
l SQL*Plus
Oracle的SQL*Plus是標准SQL的一個超集,它除提供符合SQL標準的語句外,還提供一些Oracle特定的外加語句,set,column,Ttitle等。
l Oralce Forms
Oracle Forms的前身是SQL*Forms。SQL*Forms和Oracle Forms都是為用戶提供輸入、查詢、修改等功能的開發工具,前者是在字元終端上運行。後者是在圖形終端上運行。Oracle Forms除了在許多觸發器及功能鍵繼承前者外,大部分的設計界面都發生了變化。
SQL*Forms不含Menu功能,Menu專門為一個產品叫SQL*Menu;而Oracle Forms 把Menu,Library 等融為一體,使功能更強大。
l Oracle Reports
Oracle Reports的先前版本是SQL*Reportwriter,自從Oracle7以後,將其發展為能支持Windows界面的開發工具,在最新版本中,它可以訪問其他主要資料庫,如Sybase, Informix, DB2 ,Microsoft SQL Server等。
l Oracle Book
Oracle Book提供一個共享Oracle產品文本的聯機文檔生成與瀏覽工具。
l Oracle Loader
Oracle Loader早期就提供一個ODL(Oracle data Loader)數據載入工具。該工具可以把多種格式的文本數據載入到Oracle表中。後來的版本更名為SQL*Loader,現在叫Oracle Loader,目前版本可以把多媒體數據載入到資料庫系統中。
l Developer/2000 和 Oracle Developer
是一個綜合產品的總稱,它包括:
l Oracle Reports
l Oracle Forms
l Oracle Graphics
l Procere Builder
四個部件,它的先前名稱叫CDE產品(即協同開發環境),現在Oracle的開發工具叫Oracle Developer。
l ORACLE Designer(Designer /2000)
ORACLE Designer 的前身是 Designer/2000,而Designer/2000的前身是SQL*Case,它是一個資料庫Case工具(計算機輔助設計工具),它目前版本包含:
Business Process Reengineering
Modellers
Generators
l Personal Oracle
95年後,Oracle 提供了可以在Dos,Windows3.x,Windows95,Windows NT 等不同的單機版,它的基本使用方法完全同工作組版和企業版一樣。
l SQL*Net和Net 8
SQL*Net和Net 8都提供在網路下的訪問Oracle資料庫的產品。SQL*Net 分為SQL*Net V1 和SQL*Net V2。SQL*Net V1主要支持字元終端方式,如Dos,終端伺服器方式;SQL*Net V2.x主要支持圖形終端與Oracle的連接,而Net 8則是Oracle 8網路產品SQL*Net V2.x的升級版。
l Oracle Jdeveloper
Oracle 最新產品,它是一個具有高效生產力的3GL編程工具,它可以使編程人員在Java中嵌入SQL語句,編寫能訪問資料庫的Java程序。
l Oracle Express
可以在線分析處理的工具,利用它可以方便地進行各種數據分析。
l PRO*C, PRO*COBOL, PRO*FORTRAN等
可以提供與3GL介面的工具,利用它可以在高級語言中嵌入 SQL語句,從而達到訪問Oracle資料庫的目的。
l 財務軟體( ORACLE Financials )
ORACLE Financials 是 ORACLE APPLICATION 中用於財務管理的應用程序模塊。包括財務會計,管理會計。
l 供應鏈與製造應用軟體
包括:
l 銷售定單管理
l 供應商管理
l 新產品工程設計管理
l 物料管理
l 成本管理
l 質量管理