成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle中SQL語句的幾種用法

數據庫 Oracle
本文對Oracle在使用專用服務器進程(Dedicated Server)模式做了總結,用程序在共享服務器配置中特別有用,因為調度程序可能把每一個用戶請求傳遞給不同的共享服務器進程,從而為任何給定的會話產生多個跟蹤文件。

在診斷數據庫系統性能的過程中,總會涉及到跟蹤效率低下的SQL語句,Oracle數據庫10g包含一種新的實用程序trcsess,它可以讓您基于會話ID或模塊名稱之類的條件,有選擇地從大量跟蹤文件中抽取出跟蹤數據,并將它們保存到一個文件中。該實用程序在共享服務器配置中特別有用,因為調度程序可能把每一個用戶請求傳遞給不同的共享服務器進程,從而為任何給定的會話產生多個跟蹤文件。與通過大量跟蹤文件發掘信息不同,Oracle數據庫10g的trcsess可以讓您獲得關于單一用戶會話的整合后的跟蹤信息。現在就如何跟蹤SQL語句來做一個簡單的總結。權做拋磚引玉之用。

如果我們可以修改應用系統的源代碼,則可以直接在程序中加入如下的語句:

1)alter session set timed_statistics=true;

/*適用于Oracle 8.1.7以后的版本*/

2)alter session set max_dump_file_size=unlimited ;

/*適用于Oracle 9i以后的版*/

3)alter session set tracefile_identifier='POX20031031a';

/*適用于Oracle 9i以后的版本*/

4)alter session set events '10046 trace name context forever, level 8';

/*在這里編寫應用程序的代碼*/

5)alter session set events '10046 trace name context off';

在上述語句中,語句1是把該會話的時間統計打開,該參數默認為false.在Oracle 9i之前的版本中,不能在會話級設置該參數,只能修改初始化文件然后重新啟動數據庫,這樣將在實例級打開時間統計。

語句2是把跟蹤文件的大小設置成操作系統所允許的***尺寸,這樣可以防止跟蹤文件在完成所需要的跟蹤之前被填充滿,此外需要注意的是確保存放跟蹤文件的目錄要有足夠的空間,否則將會收到“文件系統已滿”錯誤。

語句3的作用是使生成的跟蹤文件名稱中包含'POX20031031a'字符串,這樣可以使你很容易的找到所需的跟蹤文件,該參數在Oracle 9i之后可用。

語句4和語句5的作用分別是打開和關閉跟SQL跟蹤,你可以在這兩個語句之間寫入應用程序的代碼,這些代碼的執行情況都將被跟蹤。需要注意的是語句4)的level關鍵字,它用來指定跟蹤級別,一共有0,1,2,4,8,12六個級別可以設置,0相當于關閉跟蹤;1是輸出一般的跟蹤信息,不包括綁定變量和等待信息;2和1相同;4是在級別1的基礎上增加綁定變量信息;8是在級別1的基礎上增加等待信息;級別12是輸出包含級別1,4,8的所有信息。

如果應用程序的代碼無法修改或者是不想去修改,則可以在其他會話中打開對特定會話的跟蹤,方法如下:

sys.dbms_system.set_bool_param_in_session(:sid, :serial,'timed_statistics', true);

sys.dbms_system.set_int_param_in_session( :sid, :serial,'max_dump_file_size', 2147483647);

打開和關閉跟蹤的***種方法(oracle推薦):

sys.dbms_support.start_trace_in_session(:sid, :serial,waits=>true, binds=>false);

/* 在此期間運行要跟蹤的應用程序*/

sys.dbms_support.stop_trace_in_session(:sid, :serial);

打開和關閉跟蹤的第二種方法:

sys.dbms_system.set_ev(:sid, :serial, 10046, 8, '');

/*在此期間運行要跟蹤的應用程序*/

sys.dbms_system.set_ev(:sid, :serial, 10046, 0, '');

以上語句中的:sid和:serial分別代表所要跟蹤的會話的ID和序列號,這些信息可以從V$SESSION視圖的SID和SERIAL#列獲得。打開關閉跟蹤中***種方法的好處是你不用自己寫10046這個事件號,這樣可以減少錯誤,但是dbms_support程序包在你的數據庫中可能會不存在,這樣就只有用第二種方法了。

到現在為止,我們已經生成了所需要的跟蹤文件,然后我們需要找到該文件來進行分析。跟蹤文件的存放位置只有兩種可能,Oracle參數USER_DUMP_DEST 或者BACKGROUND_DUMP_DEST指定的目錄;文件名稱根據不同的平臺會有所不同,但是在文件名中都會包含會話所對應的操作系統進程(線程)號,也就是V$PROCESS的SPID列(V$PROCESS.SPID) ,該信息可以通過 v$process.addr和v$session.paddr做表連接查詢得到。

例如:

select spid from v$process p,v$session s where p.addr=s.paddr and s.sid=:sid and s.serial#=:serial.

本文只對Oracle在使用專用服務器進程(Dedicated Server)模式做了總結,至于的共享服務器(Shared Server)模式和在應用級使用連接池的情況下,收集SQL跟蹤信息的方法會比較復雜,希望有相關經驗的高手來總結。

【編輯推薦】

  1. 如何高效刪除Oracle數據庫中的重復數據
  2. 淺析Oracle監聽器安裝與配置
  3. 將oracle 9i備份文件導入oracle 8i的方法簡介
責任編輯:楊鵬飛 來源: IT專家網
相關推薦

2010-07-26 16:39:57

SQL Server

2010-10-27 15:03:47

Oracle with

2010-09-17 09:35:51

SQL中if語句

2011-03-07 13:27:13

SQLCase

2009-04-09 13:14:09

Oracle分頁查詢CBO

2020-06-17 09:15:57

MySQLSQL數據庫

2010-11-11 11:49:02

SQL嵌套SELECT

2010-11-11 11:13:54

SQL Server

2010-09-07 13:41:50

SQL語句

2010-04-13 15:04:16

Oracle優化

2010-01-27 13:37:05

Oracle臨時表

2010-10-27 17:04:41

Oracle動態查詢

2011-05-20 15:59:06

Oracle存儲Sql語句

2011-08-15 17:15:45

CASE語句Oracle給指定字段賦值

2010-07-16 13:41:08

SQL Serverl

2009-11-16 17:55:58

Oracle SQL語

2009-11-16 13:47:35

Oracle SQL語

2010-04-06 14:26:41

Oracle復制表

2010-04-20 15:22:34

Oracle SQL

2010-04-29 14:06:40

Oracle SQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费毛片网站 | 亚洲一区二区在线 | 午夜免费在线观看 | 天天干天天操天天爽 | 新超碰97| 日韩一二区在线 | 久久免费精品视频 | 中文字幕av网站 | 欧美性生活一区二区三区 | 成人精品视频99在线观看免费 | 国产欧美在线一区二区 | 美女一级a毛片免费观看97 | 久久精品亚洲精品国产欧美 | 羞羞色在线观看 | 国产精彩视频在线观看 | 久久久久久久久久久久亚洲 | 久久成人综合 | 亚洲成人一二区 | www.887色视频免费 | 久久久久久久久久久高潮一区二区 | 国产日韩一区二区三免费高清 | 日本视频免费观看 | 青青操91| 视频三区 | 999久久久久久久久6666 | 国产成人精品亚洲日本在线观看 | 91久久精品国产免费一区 | 99久久精品免费看国产免费软件 | h视频在线观看免费 | 一区二区三区国产好的精 | 不卡一区二区三区四区 | 国产福利在线看 | 黄免费观看视频 | 国产精品福利一区二区三区 | 久久精品国产一区二区三区不卡 | 亚洲精品第一页 | 在线国产一区二区 | 国产不卡在线观看 | 欧美精品一区二区三区在线播放 | 求毛片| 在线视频成人 |