IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → oracle sql執(zhí)行方式 程序里面的SQL怎樣執(zhí)行

oracle sql執(zhí)行方式 程序里面的SQL怎樣執(zhí)行

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)

  現(xiàn)象:

  在項(xiàng)目中有時(shí)會(huì)出現(xiàn)這種情況,因?yàn)榇a編寫(xiě)錯(cuò)誤,執(zhí)行完SQL后,沒(méi)有關(guān)閉數(shù)據(jù)庫(kù)連接。當(dāng)該代碼重復(fù)執(zhí)行時(shí),會(huì)導(dǎo)致應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)的連接不斷增加,最終導(dǎo)致連接超過(guò)數(shù)據(jù)庫(kù)連接上限,系統(tǒng)崩潰。

  問(wèn)題:

  項(xiàng)目中的代碼很多,很難準(zhǔn)確定位到底是哪一段代碼出了問(wèn)題

  解決辦法:

  用應(yīng)用程序的用戶(hù)登錄oracle,執(zhí)行下面的SQL:

  select sql_text from v$sqlarea a where a.HASH_VALUE in (

  select?? b.prev_hash_value from v$session b where b. MACHINE = 'WLS254'

  )

  SQL中的"WLS254"指的是應(yīng)用服務(wù)器的名稱(chēng),該SQL得到的結(jié)果就是WLS254這臺(tái)機(jī)器連接到oracle的正在執(zhí)行的SQL。通過(guò)分析這些SQL,就可以快速的發(fā)現(xiàn)是哪部分程序沒(méi)有釋放連接。

  v$session視圖的字段說(shuō)明:

  SADDR RAW(4) 會(huì)話(huà)地址

  SID NUMBER 會(huì)話(huà)標(biāo)識(shí)符

  SERIAL# NUMBER 會(huì)話(huà)序列號(hào)。用來(lái)唯一地標(biāo)識(shí)繪畫(huà)

  對(duì)象。如果該會(huì)話(huà)結(jié)束且其他會(huì)話(huà)

  以相同的會(huì)話(huà)ID 開(kāi)始,則保證會(huì)

  話(huà)級(jí)的命令被應(yīng)用到正確會(huì)話(huà)對(duì)象

  AUDSID NUMBER 審計(jì)會(huì)話(huà)ID

  PADDR RAW(4) 擁有這個(gè)會(huì)話(huà)的進(jìn)程地址

  USER# NUMBER Oracle 用戶(hù)標(biāo)識(shí)符

  USERNAME VARCHAR(30) Oracle 用戶(hù)名

  COMMAND NUMBER 正進(jìn)行的命令(分析的最后一個(gè)語(yǔ)

  句),關(guān)于值的列表,請(qǐng)參閱表B-

  11

  OWNERID NUMBER 如果值為2147483644,則此列的

  內(nèi)容無(wú)效。否則此列包含擁有可移

  植會(huì)話(huà)的用戶(hù)標(biāo)符。對(duì)于利用并行

  從服務(wù)器的操作,將這個(gè)值解釋為

  一個(gè)48 字節(jié)的值。其低位兩字節(jié)

  表示會(huì)話(huà)號(hào),而高位字節(jié)表示查詢(xún)

  協(xié)調(diào)程序的實(shí)例ID

  TADDR VARCHAR2(8) 事務(wù)處理狀態(tài)對(duì)象的地址

  LOCKWAIT VARCHAR2(8) 等待鎖的地址;如果沒(méi)有,為NULL

  STATUS VARCHAR2(8) 會(huì)話(huà)的狀態(tài):ACTIVE (當(dāng)前執(zhí)行的

  SQL)、INACTIVE、KILLED(標(biāo)記為

  終止)、CACHED(為Oracle*XA 使

  用而臨時(shí)高速緩存)、SNIPED(會(huì)

  話(huà)不活動(dòng),在客戶(hù)機(jī)上等待)

  SERVER VARCHAR2(9) 服務(wù)器類(lèi)型:DEDICATED、SHARED、

  PSEUDO、NONE

  SCHEMA# NUMBER 模式用戶(hù)標(biāo)識(shí)符

  SCHEMANANME VARCHAR2(30) 模式用戶(hù)名

  OSUSER VARCHAR(15) 操作系統(tǒng)客戶(hù)機(jī)用戶(hù)名

  PROCESS VARCHAR2(9) 操作系統(tǒng)客戶(hù)機(jī)進(jìn)程ID

  MACHINE VARCHAR2(64) 操作系統(tǒng)機(jī)器名

  TERMINAL VARCHAR2(10) 操作系統(tǒng)終端名

  PROGRAM VARCHAR(48) 操作系統(tǒng)程序名

  TYPE VARCHAR2(10) 會(huì)話(huà)類(lèi)型

  SQL_ADDRESS RAW(4) 與SQL_HASH_VALUE 一道使用標(biāo)識(shí)

  當(dāng)前正在執(zhí)行的SQL 語(yǔ)句

  SQL_HASH_VALUE NUMBER 與SQL_ADDRESS 一道使用標(biāo)識(shí)當(dāng)前

  正在執(zhí)行的SQL 語(yǔ)句

  MODULE VARCHAR2(48) 包含當(dāng)前正在執(zhí)行的模塊名,正如

  由調(diào)用

  DBMS_APPLICATION_INFO.SET_MODU

  LE 過(guò)程所設(shè)置

  MODULE_HASH NUMBER 上面MODULE 的散列值

  ACTION VARCHAR2(32) 包含當(dāng)前執(zhí)行活動(dòng)的名稱(chēng),正如由

  調(diào)用

  DBMS_APPLICATION_INFO.SET_ACTI

  ON 過(guò)程所設(shè)置

  ACTION_HASH NUMBER 上列活動(dòng)名稱(chēng)的散列值

  CLIENT_INFO VARCHAR2(64) 由

  DBMS_APPLICATION_INFO.SET_CLIE

  NT_INFO 過(guò)程設(shè)置的信息

  FIXED_TABLE_

  SEQUENCE

  NUMBER 此列包含一個(gè)數(shù),每當(dāng)會(huì)話(huà)完成一

  個(gè)數(shù)據(jù)庫(kù)調(diào)用并且存在來(lái)自動(dòng)態(tài)性

  能表的介入選擇,它個(gè)數(shù)就增加。

  這個(gè)列可被性能監(jiān)控程序用來(lái)監(jiān)控

  數(shù)據(jù)庫(kù)中的統(tǒng)計(jì)數(shù)據(jù)。每當(dāng)性能監(jiān)

  控程序查看數(shù)據(jù)庫(kù)時(shí),只需要查看

  當(dāng)前活動(dòng)的會(huì)話(huà)或在這個(gè)列中具有

  比上次性能監(jiān)控程序所看到的最大

  值更大的值的會(huì)話(huà)即可。所有其他

  會(huì)話(huà)自上次性能監(jiān)控程序查看數(shù)據(jù)

  庫(kù)以來(lái)都是空閑的

  ROW_WAIT_OBJ# NUMBER 包含ROW_WAIT_ROW#中指定的ROW#

  的表的對(duì)象ID

  ROW_WAIT_FILE# NUMBER 包含ROW_WAIT_ROW#中指定的

  ROWID 的數(shù)據(jù)文件的標(biāo)識(shí)符。此列

  僅在會(huì)話(huà)當(dāng)前正在等待其他事務(wù)處

  理提交并且ROW_ WAIT_OBJ#不為-

  1 時(shí)有效

  ROW_WAIT_BLOCK # NUMBER 包含ROW_WAIT_ROW#中指定的

  ROWID 的數(shù)據(jù)文件的標(biāo)識(shí)符。此列

  僅在會(huì)話(huà)當(dāng)前正在等待其他事務(wù)處

  理提交并且ROW_正在等待其他事

  務(wù)處理提交并且ROW_

  ROW_WAIT_ROW# NUMBER 被鎖定的當(dāng)前ROWID。此列僅在會(huì)

  話(huà)當(dāng)前正在等待其他事務(wù)處理提交

  并且ROW_ WAIT_OBJ#不為-1 時(shí)有

  效

  LOGON_TIME DATE 登錄時(shí)間

  LAST_CALL_ET NUMBER 最后一次調(diào)用

  PDML_STATUS VARCHAR2(8) 如果ENABLED,則會(huì)話(huà)正處于

  PARALLEL DML 啟用方式。如果

  DISABLED,則此會(huì)話(huà)不支持

  PARALLEL DML 啟用方式。如果

  FORCED,則會(huì)話(huà)已經(jīng)更改為強(qiáng)制

  PARALLEL DLL

  PDML_ENABLED VARCHAR2(3) 此列已被PDML_ENABLED 和PDML_

  STATUS 所替代。請(qǐng)看上列內(nèi)容

  FAILOVER_TYPE VARCHAR2(10) 如果這個(gè)會(huì)話(huà)禁止失敗切換,則為

  NONE ,如果客戶(hù)機(jī)能夠在斷開(kāi)之

  后失敗切換其會(huì)話(huà),則為

  SESSION,如果客戶(hù)機(jī)還能失敗切

  換正在進(jìn)行的選擇,則為SELECT

  FAILOVER_METHOD VARXHAR2(3) 如果這個(gè)會(huì)話(huà)禁止失敗切換,則為

  NONE,如果客戶(hù)機(jī)能夠在斷開(kāi)之后

  重新連接,為BASIC,如果備份實(shí)

  例能夠支持它所支持的每個(gè)實(shí)例的

  所有連接,則為PRECONNECT

  FAILED_OVER VARCHAR2(13) 如果運(yùn)行在失敗切換方式并進(jìn)行過(guò)

  失敗切換,為T(mén)RUE,否則為FALSE

  RESOURCE_CON

  SU_MER_GROUP

  VARCHAR2(32) 會(huì)話(huà)的當(dāng)前資源使用者組的名稱(chēng)

關(guān)鍵詞標(biāo)簽:oracle sql執(zhí)行方式

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法