欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle包怎么跟蹤 oracle追蹤

如何利用JDBC啟動(dòng)Oracle 自動(dòng)追蹤

1.下載Debug版本jar包

成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),先為雄縣等服務(wù)建站,雄縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為雄縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

首先要下載一個(gè)Debug版本的JDBC jar包,Debug版本的jar包命名形式為jdbcX_g.jar

2.啟動(dòng)Logging模式

第一種方式:設(shè)置運(yùn)行環(huán)境變量 java -Doracle.jdbc.Trace=true ...(elipse中run-run configurations-arguments一欄)

第二種方式:在程序中控制(建議采用這種方式)

1

2

3

4

5

6

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

String loader = Thread.currentThread().getContextClassLoader().toString().replaceAll("[,=:\"]+", "");

ObjectName pattern = new ObjectName("com.a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBmhRYnHTkmh7-myFhPA7W0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW0dnWbznWcYrjD3rHDzPHnYPs" target="_blank" class="baidu-highlight"oracle/a.jdbc:type=diagnosability,name=" + loader);

ObjectName diag = ((ObjectName[]) (mbs.queryNames(pattern, null).toArray(new ObjectName[0])))[0];

mbs.setAttribute(diag, new Attribute("LoggingEnabled", true));

System.out.println("LoggingEnabled = " + mbs.getAttribute(diag, "LoggingEnabled"));

如果用的是Oracle 10g,直接執(zhí)行:

1

2

3

/**oracle 10g 啟動(dòng)方法*/

oracle.jdbc.driver.OracleLog.setTrace(true); // enable logging

oracle.jdbc.driver.OracleLog.setTrace(false); // disable logging

3.配置log文件

jdbc使用的是 java.util.logging包中的Logger對(duì)象打印log。

1

2

3

4

5

6

/**配置a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBmhRYnHTkmh7-myFhPA7W0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW0dnWbznWcYrjD3rHDzPHnYPs" target="_blank" class="baidu-highlight"log文件/a*/

Handler fh = new FileHandler("./oracle_jdbc_log.log");

fh.setLevel(Level.ALL);

fh.setFormatter(new SimpleFormatter());

Logger.getLogger("").addHandler(fh);

Logger.getLogger("").setLevel(Level.ALL);

完成的Demo

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

import javax.management.Attribute;

import javax.management.AttributeNotFoundException;

import javax.management.InstanceNotFoundException;

import javax.management.InvalidAttributeValueException;

import javax.management.MBeanException;

import javax.management.MBeanServer;

import javax.management.MalformedObjectNameException;

import javax.management.ObjectName;

import javax.management.ReflectionException;

public void run() throws SQLException {

DriverManager.registerDriver(new OracleDriver());

//需在加載OracleDriver之后開(kāi)啟log

enableOracleLogging();

Connection conn = null;

Statement stmt = null;

ResultSet rset = null;

try {

conn = getConnection();

System.out.println("Connection retrieved..");

stmt = conn.createStatement();

rset = stmt.executeQuery("select empno from emp");

while (rset.next()) {

System.out.println(rset.getInt(1));

}

} catch (SQLException sqle) {

sqle.printStackTrace();

} finally {

if (rset != null) {

rset.close();

}

if (stmt != null) {

stmt.close();

}

if (conn != null) {

conn.close();

}

}

}

public static void enableOracleLogging() {

try {

/** 配置a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBmhRYnHTkmh7-myFhPA7W0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW0dnWbznWcYrjD3rHDzPHnYPs" target="_blank" class="baidu-highlight"log文件/a */

Handler fh = new FileHandler("./oracle_jdbc_log.log");

fh.setLevel(Level.ALL);

fh.setFormatter(new SimpleFormatter());

Logger.getLogger("").addHandler(fh);

Logger.getLogger("").setLevel(Level.ALL);

/** oracle a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBmhRYnHTkmh7-myFhPA7W0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW0dnWbznWcYrjD3rHDzPHnYPs" target="_blank" class="baidu-highlight"11g/a 啟動(dòng)方法 */

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

String loader = Thread.currentThread().getContextClassLoader().toString().replaceAll("[,=:\"]+", "");

ObjectName pattern = new ObjectName("com.oracle.jdbc:type=diagnosability,name=" + loader);

ObjectName diag = ((ObjectName[]) (mbs.queryNames(pattern, null).toArray(new ObjectName[0])))[0];

mbs.setAttribute(diag, new Attribute("LoggingEnabled", true));

System.out.println("LoggingEnabled = " + mbs.getAttribute(diag, "LoggingEnabled"));

/** oracle 10g 啟動(dòng)方法 */

// oracle.jdbc.driver.OracleLog.setTrace(true); // enable logging

// oracle.jdbc.driver.OracleLog.setTrace(false); // disable logging

} catch (Exception e) {

e.printStackTrace();

}

}

如何查找ORACLE中的跟蹤文件

用toad 的工具可以進(jìn)行跟蹤。查找toad的路徑 右鍵屬性 查找相應(yīng)文件夾 然后 找尋同級(jí)目錄下的 sql_monitor 這個(gè)工具就可以對(duì) Oracle運(yùn)行數(shù)據(jù)進(jìn)行跟蹤。

應(yīng)用軟件對(duì)oracle操作的語(yǔ)句跟蹤方法請(qǐng)教

1.如果你的軟件有源代碼,可以使用跟蹤調(diào)試模式來(lái)判斷執(zhí)行到了哪一行。

2.如果你的軟件是打好包的 只能使用ORACLE的 SQLTRACE模式..具體請(qǐng)搜索..ORACLE會(huì)把每個(gè)動(dòng)作寫到日志里,包括數(shù)據(jù)字典的操作..非常非常的詳細(xì), 記得使用完畢關(guān)掉,不然你的日志會(huì)爆掉。

oracle怎么跟蹤過(guò)程的執(zhí)行

需要建立一張表來(lái)記錄

explain plan SET statement_id='name' FOR (這里是你要調(diào)試的語(yǔ)句 )

SELECT

A.OPERATION,

OPTIONS,

OBJECT_NAME,

OBJECT_TYPE,

ID,

PARENT_ID

FROM

PLAN_TABLE A

WHERE

STATEMENT_ID='name'

ORDER BY

Id;

ID 'name'是一個(gè)標(biāo)識(shí),你可以自己取,字段有很多個(gè),以下是各個(gè)字段的解釋(可能格式不對(duì),你可以復(fù)制后看):

字段名 字段類型 含義

STATEMENT_ID VARCHAR2(30) explain PLAN 語(yǔ)句中所指定的最優(yōu)STATEMENT_ID 參數(shù)值, 如果在EXPLAN PLAN語(yǔ)句中沒(méi)有使用SET STATEMENT_ID,那么此值會(huì)被設(shè)為NULL。

REMARKS VARCHAR2(80) 與被解釋規(guī)劃的各步驟相關(guān)聯(lián)的注釋最長(zhǎng)可達(dá)80 字節(jié)

OPERATION VARCHAR2(30) 各步驟所執(zhí)行內(nèi)部操作的名稱在某條語(yǔ)句所產(chǎn)生的第一行中該列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT

OPTIONS VARCHAR2(30) 對(duì)OPERATION 列中所描述操作的變種

OBJECT_NODE VARCHAR2(128) 用于訪問(wèn)對(duì)象的數(shù)據(jù)庫(kù)鏈接database link 的名稱對(duì)于使用并行執(zhí)行的本地查詢?cè)摿心軌蛎枋霾僮髦休敵龅拇涡?/p>

OBJECT_OWNER VARCHAR2(30) 對(duì)于包含有表或索引的架構(gòu)schema 給出其所有者的名稱

OBJECT_NAME VARCHAR2(30) 表或索引的名稱

OBJECT_INSTANCE INTEGER 根據(jù)對(duì)象出現(xiàn)在原始o(jì)riginal 語(yǔ)句中的次序所給出的相應(yīng)次序編號(hào)就原始的語(yǔ)句文本而論其處理順序?yàn)樽宰笾劣易酝庀騼?nèi)景象擴(kuò)張view

OBJECT_TYPE VARCHAR2(30) 用于提供對(duì)象描述性信息的修飾符例如索引的NON-UNIQUE

OPTIMIZER VARCHAR2(255) 當(dāng)前優(yōu)化程序的模式

ID INTEGER 分配給執(zhí)行規(guī)劃各步驟的編號(hào)

PARENT_ID INTEGER 對(duì)ID 步驟的輸出進(jìn)行操作的下一個(gè)執(zhí)行步驟的ID

POSITION INTEGER 對(duì)于具有相同PARENT_ID 的步驟其相應(yīng)的處理次序

COST INTEGER 根據(jù)優(yōu)化程序的基于開(kāi)銷的方法所估計(jì)出的操作開(kāi)銷值對(duì)于使用基于規(guī)則方法的語(yǔ)句該列為空該列值沒(méi)有特定的測(cè)量單位它只是一個(gè)用于比較執(zhí)行規(guī)劃開(kāi)銷大小的權(quán)重值

CARDINALITY INTEGER 根據(jù)基于開(kāi)銷的方法對(duì)操作所訪問(wèn)行數(shù)的估計(jì)值

BYTES INTEGER 根據(jù)基于開(kāi)銷的方法對(duì)操作所訪問(wèn)字節(jié)的估計(jì)

=============================================

你按照我說(shuō)的做,后面用

SELECT

*

FROM

PLAN_TABLE A

WHERE

STATEMENT_ID='name'

結(jié)果已經(jīng)很清楚了,全部滿足你的要求。

各列的具體含義上面已經(jīng)給出。

Oracle數(shù)據(jù)庫(kù)跟蹤

hotyxm說(shuō)的trace文件應(yīng)該類似于oracle數(shù)據(jù)庫(kù)的3種類型的常見(jiàn)診斷文件吧,它們是報(bào)警文件、后臺(tái)進(jìn)程跟蹤文件(background trace files)、用戶進(jìn)程跟蹤文件。報(bào)警文件包括數(shù)據(jù)庫(kù)的日常操作細(xì)心,他存放在由BACKGROUND_DUMP_DEST參數(shù)所定義的目錄下。

但是這些文件都是關(guān)于數(shù)據(jù)庫(kù)自身操作的,我還沒(méi)有學(xué)到怎么查詢軟件對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)信息,不知oracle數(shù)據(jù)庫(kù)又沒(méi)得這樣的功能, ruhaisanren給的那個(gè)網(wǎng)址上面的東西好像很專業(yè),你試試,成功了要告訴我們哦。

如何調(diào)試oracle,sqlserver存儲(chǔ)過(guò)程

1.打開(kāi)PL/SQL Developer 如果在機(jī)器上安裝了PL/SQL Developer的話,打開(kāi)PL/SQL Developer界面 輸入用戶名,密碼和host名字,這個(gè)跟在程序中web.config中配置的完全相同,點(diǎn)擊確定 找到需要調(diào)試的存儲(chǔ)過(guò)程所在的包(Package bodies),如PACK_ACTIVITY,點(diǎn)擊右鍵,在彈出菜單中選擇[查看],得到包中的所有存儲(chǔ)過(guò)程和他們的代碼. 2.添加debug信息 為了能夠單步跟蹤存儲(chǔ)過(guò)程,需要為其所在的包添加debug信息,右鍵點(diǎn)擊需要調(diào)試的包,在彈出菜單中選中[添加調(diào)試信息]. 這樣就為包體添加了調(diào)試信息。 3.調(diào)試存儲(chǔ)過(guò)程 現(xiàn)在所有的準(zhǔn)備工作都做好了,可以調(diào)試跟蹤存儲(chǔ)過(guò)程了。 選擇需要調(diào)試的存儲(chǔ)過(guò)程,點(diǎn)擊右鍵,在彈出菜單中選擇[測(cè)試],進(jìn)去測(cè)試窗口. 測(cè)試窗口中有為了測(cè)試該存儲(chǔ)過(guò)程自動(dòng)所產(chǎn)生的代碼,當(dāng)然你也可以自己另外加入和修改代碼,對(duì)于我們目前只是為了調(diào)試存儲(chǔ)過(guò)程,自動(dòng)生成的代碼已經(jīng)足夠了。接著按照如下的步驟進(jìn)行調(diào)試。 (1)添加存儲(chǔ)過(guò)程所需要的參數(shù),我們項(xiàng)目中的大多數(shù)存儲(chǔ)過(guò)程都是需要參數(shù)的,參數(shù)可以在測(cè)試窗口右下部分輸入。 如:GetPanNO_New需要一個(gè)輸入?yún)?shù)v_employeeid,我們輸入180,輸出參數(shù)是mycursor,是查看結(jié)果的,不需要輸入任何值。 (2)開(kāi)始調(diào)試,點(diǎn)擊[調(diào)試]菜單-[開(kāi)始](或者按F9),就進(jìn)去調(diào)試模式了,程序開(kāi)始停在begin這一行. (3)以后的調(diào)試過(guò)程跟我們熟悉的的調(diào)試過(guò)程就一樣了: 運(yùn)行(Ctrl+R) 單步進(jìn)入(Ctrl+N) 單步跳過(guò)(Ctrl+O) 單步退出(Ctrl+T) 或者點(diǎn)擊debug工具條上的按扭: 當(dāng)按Ctrl+N進(jìn)去存儲(chǔ)過(guò)程的源代碼中后 在這個(gè)窗口中可以查看過(guò)程中的變量值和堆棧。 (4)調(diào)試運(yùn)行完了后,可以查看結(jié)果如下(點(diǎn)擊mycursor變量旁邊的按鈕).

分享題目:oracle包怎么跟蹤 oracle追蹤
文章路徑:http://chinadenli.net/article10/hgccgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、電子商務(wù)、搜索引擎優(yōu)化、域名注冊(cè)、關(guān)鍵詞優(yōu)化、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)