激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

如何在Oracle數據庫10g中跟蹤SQL

時(shí)間:2024-07-13 10:22:13 Oracle認證 我要投稿
  • 相關(guān)推薦

如何在Oracle數據庫10g中跟蹤SQL

  在具有許多活躍用戶(hù)的繁忙生產(chǎn)環(huán)境中,跟蹤SQL會(huì )話(huà)是費時(shí)且十分復雜的,因為在任何使用連接池的多層系統中處理SQL語(yǔ)句可能要涉及多個(gè)進(jìn)程,或者甚至是不同的實(shí)例。

  利用Oracle數據庫10g,Oralce通過(guò)一個(gè)新的內置軟件包DBMS_MONITOR合理化了SQL的跟蹤,這個(gè)軟件包中包含以前無(wú)書(shū)面記載的跟蹤工具(如DBMS_SUPPORT軟件包)的功能,F在,您可以輕松地從頭到尾--從客戶(hù)機到中間層再到后端--跟蹤任何用戶(hù)的會(huì )話(huà),并且基于特定的客戶(hù)ID、模塊或動(dòng)作生成跟蹤文件。

  此外,Oracle數據庫10g包含一種新的實(shí)用程序trcsess,它可以讓您基于會(huì )話(huà)ID或模塊名稱(chēng)之類(lèi)的條件,有選擇地從大量跟蹤文件中抽取出跟蹤數據,并將它們保存到一個(gè)文件中。該實(shí)用程序在共享服務(wù)器配置中特別有用,因為調度程序可能把每一個(gè)用戶(hù)請求傳遞給不同的共享服務(wù)器進(jìn)程,從而為任何給定的會(huì )話(huà)產(chǎn)生多個(gè)跟蹤文件。與通過(guò)大量跟蹤文件發(fā)掘信息不同,Oracle數據庫10g的trcsess可以讓您獲得關(guān)于單一用戶(hù)會(huì )話(huà)的整合后的跟蹤信息。

  開(kāi)始

  和Oracle數據庫的以前版本一樣,跟蹤文件將被輸出到由服務(wù)器的初始化文件(或spfile)的user_dump_dest參數指定的目錄中。默認的位置取決于操作系統;例如,對于使用DBCA的Microsoft Windows平臺,默認位置是$ORACLE_BASE\instance_name\admin\udump,其中instance_ name是Oracle實(shí)例的名稱(chēng)。您可以通過(guò)使用以下改變會(huì )話(huà)命令來(lái)動(dòng)態(tài)地更改該參數:

alter session set user_dump_dest="c:\kflosstrace";

  您還可以把您自己的標記添加到跟蹤文件名中,以便您能夠更容易地找到生成的文件。為此,可以在啟動(dòng)跟蹤之前設置tracefile_identifier初始化參數:

alter session set 
tracefile_identifier ="kfloss_test";

  通過(guò)該命令生成的跟蹤文件帶有您設置的附加在文件名后的字符串值。盡管這些改變會(huì )話(huà)命令都不是必要的,但是它們都會(huì )使查找跟蹤會(huì )話(huà)的結果更容易。

  現在,我們已經(jīng)設置了這些參數,那么讓我們看看新的跟蹤軟件包和Oracle企業(yè)管理器的界面。讓我們使用新的DBMS_MONITOR軟件包通過(guò)模塊名稱(chēng)和客戶(hù)機名稱(chēng)來(lái)建立一個(gè)跟蹤。

  用DBMS_MONITOR建立跟蹤

  DBMS_MONITOR包具有多個(gè)例程,用于啟用和禁用統計數據集合,以及用于根據會(huì )話(huà)ID進(jìn)行跟蹤、或者基于服務(wù)名稱(chēng)、模塊名稱(chēng)和動(dòng)作名稱(chēng)的組合進(jìn)行跟蹤。(它們三者從層次結構上是關(guān)聯(lián)的:您不能在不指定模塊和服務(wù)名稱(chēng)的情況下指定一個(gè)動(dòng)作,但是您可以只指定服務(wù)名稱(chēng),或者只指定服務(wù)名稱(chēng)和模塊名稱(chēng))。 模塊名稱(chēng)和動(dòng)作名稱(chēng)(如果有的話(huà))都來(lái)自于應用程序代碼內部。例如,Oracle電子商務(wù)套件應用程序在代碼中提供了模塊名稱(chēng)和動(dòng)作名稱(chēng),這樣您就可以在任何Oralce企業(yè)管理器頁(yè)面中通過(guò)名稱(chēng)來(lái)識別它們。 (PL/SQL開(kāi)發(fā)人員可以通過(guò)使用DBMS_APPLICATION_INFO包設置模塊名稱(chēng)和動(dòng)作名稱(chēng),把一些調用嵌入到他們的應用程序中)。

  請注意,設置模塊、動(dòng)作及其他參數(如client_id)將不造成對數據庫的往返操作--這些例程攜帶來(lái)自應用程序的所有調用。

  服務(wù)名稱(chēng)由用于連接該服務(wù)的連接字符串來(lái)確定。未與特定服務(wù)關(guān)聯(lián)的用戶(hù)會(huì )話(huà)將由sys$users處理(sys$background是后臺進(jìn)程的默認服務(wù))。由于我們具有一個(gè)服務(wù)和一個(gè)模塊名稱(chēng),因而我們可以啟動(dòng)對該模塊的跟蹤,如下所示:

SQL> exec dbms_monitor.serv_mod_act_trace_enable
(service_name=>'testenv', module_name=>'product_update');

  PL/SQL過(guò)程已成功完成。

  我們可以啟動(dòng)對客戶(hù)機的跟蹤:

SQL> exec dbms_monitor.client_id_trace_enable
(client_id=>'kimberly');

  PL/SQL過(guò)程已成功完成。

  請注意,所有這些設置都是永久性的--所有與該服務(wù)和模塊關(guān)聯(lián)的會(huì )話(huà)都會(huì )被跟蹤,而不僅僅是跟蹤當前會(huì )話(huà)。

  為了基于會(huì )話(huà)ID跟蹤SQL,可以查看Oracle企業(yè)管理器的Top Sessions頁(yè)面,或者像您當前做的那樣查詢(xún)V$SESSION視圖。

SQL> select sid, serial#, username 
from v$session;
SID SERIAL# USERNAME
------ ------- ------------
133 4152 SYS
137 2418 SYSMAN
139 53 KIMBERLY
140 561 DBSNMP
141 4 DBSNMP
. . .
168 1
169 1
170 1
28 rows selected.

  通過(guò)會(huì )話(huà)ID(SID)和序號,您可以使用DBMS_MONITOR只對下面的會(huì )話(huà)啟用跟蹤:

  SQL> exec dbms_monitor.session_trace_enable(139);

  PL/SQL過(guò)程已成功完成。

  該序號默認為該SID的當前序號(除非另外指定),因此如果那就是您想跟蹤的會(huì )話(huà)和序號,那么您就不必查看更多的內容了。還有,默認情況下,WAITS設置為true而B(niǎo)INDS設置為false,因此上面的語(yǔ)法實(shí)際上與下面的語(yǔ)法效果相同:

SQL> exec dbms_monitor.session_trace_enable
(session_id=>139, serial_num=>53, waits=>true, binds=>false);

  請注意,WAITS和BINDS是相同的參數,您在過(guò)去可能已經(jīng)使用DBMS_SUPPORT和10046事件對它們進(jìn)行了設置。

  如果您正在一個(gè)生產(chǎn)環(huán)境中工作,那么此時(shí)您最好重新運行出錯的SQL或應用程序,并且相應地創(chuàng )建跟蹤文件。

  用企業(yè)管理器建立跟蹤

  通過(guò)Oracle企業(yè)管理器建立跟蹤從Top Consumers頁(yè)面(可以通過(guò)Additional Monitoring Links區域中的Performance頁(yè)面得到,如圖1所示)開(kāi)始。該頁(yè)面顯示服務(wù)、模塊、客戶(hù)和動(dòng)作對系統資源的當前使用情況。

  圖1:Oracle企業(yè)管理器的Top Consumers頁(yè)面

  您可以單擊Top Services、Top Modules、Top Actions、Top Clients或Top Sessions選項卡,來(lái)查看這些類(lèi)別的頂級消費者中每一種的詳細信息,隨后您可以通過(guò)這些頁(yè)面中的每一個(gè)頁(yè)面輕松啟用(或禁用)SQL跟蹤。從頁(yè)面上的列表中簡(jiǎn)單地選擇項目,然后單擊啟用SQL跟蹤(Enable SQL Trace)開(kāi)始跟蹤(當您完成跟蹤時(shí),單擊禁用按鈕)。

  您還可以啟用(或禁用)這些頁(yè)面上列出的任何項目的統計數據集合。(DBMS_MONITOR還提供了用于啟用和禁用數據集合的例程)。

  分析跟蹤結果

  獲取關(guān)于Kimberly Floss的圖書(shū)的信息

  無(wú)論您是使用DBMS_MONITOR或者是使用Oracle企業(yè)管理器建立跟蹤,您都將使用trcsess 命令行工具來(lái)整合跟蹤文件。單擊Oracle企業(yè)管理器中的查看SQL跟蹤(View SQL Trace)按鈕顯示一個(gè)頁(yè)面,其中顯示了您將用于整合所有跟蹤文件的語(yǔ)法。

  要確保用雙引號括住字符串,并在文件名后添加一個(gè)".trc"擴展名;否則,TKPROF將不會(huì )把它作為一個(gè)文件名來(lái)接受。在執行該命令之前,找到在user_dump_dest(或者,如果您沒(méi)有更改該參數名,則在\udump)中指定的目錄。

C:\...\udump> trcsess output="kfloss.trc" service="testenv" 
module="product update" 
action="batch insert"

  隨后,您可以對整合的跟蹤文件運行TKPROF,以生成一份報告。

C:\...\udump> tkprof kfloss.trc 
output=kfloss_trace_report SORT=(EXEELA, PRSELA, FCHELA)

  如果您不終止跟蹤,那么運行該服務(wù)和模塊的每一個(gè)會(huì )話(huà)都會(huì )被跟蹤。因此,當您完成跟蹤時(shí),要確保通過(guò)使用Oralce企業(yè)管理器或DBMS_MONITOR包來(lái)終止跟蹤。

【如何在Oracle數據庫10g中跟蹤SQL】相關(guān)文章:

oracle的sql語(yǔ)句09-03

Oracle的sql語(yǔ)句模擬試題及答案10-12

ORACLE 常用的SQL語(yǔ)法和數據部分06-22

Oracle數據庫語(yǔ)句大全10-08

ORACLE數據庫碎片的整理08-18

oracle數據庫基本語(yǔ)句08-21

Oracle數據庫認證層次08-29

Oracle數據庫的基本介紹09-04

Oracle數據庫SQLPLUS介紹10-09

Oracle數據庫SELECT語(yǔ)句10-25

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频