1.V$SESSION_WAIT?
session在數(shù)據(jù)庫(kù)中當(dāng)前正在等待什么,每一個(gè)連接到實(shí)例的session都對(duì)應(yīng)一條記錄。
(2)-V$SESSION_EVENT
記錄了session自啟動(dòng)起所有的事件。
通過(guò)ADDRESS和HASH_VALUE可以為一判定一個(gè)SQL
v$sqltext存儲(chǔ)的是完整的SQL,SQL被分割
v$sqlarea存儲(chǔ)的SQL 和一些相關(guān)的信息,比如累計(jì)的執(zhí)行次數(shù),邏輯讀,物理讀等統(tǒng)計(jì)信息
v$sql存儲(chǔ)的是具體的SQL 和執(zhí)行計(jì)劃相關(guān)信息,實(shí)際上,v$sqlarea 可以看做 v$sql 根據(jù) sqltext 等 做了 group by 之后的信息
即使是相同的數(shù)據(jù)庫(kù)用戶,若 session 的優(yōu)化模式、session 級(jí)的參數(shù) 等不一樣,執(zhí)行計(jì)劃也能不同。
所以即使相同的sql,也可能具有不同的執(zhí)行計(jì)劃!
v$sql join to v$sql_plan 就代表了具體的sql的執(zhí)行計(jì)劃,通過(guò)下面3個(gè)字段做連接
ADDRESS RAW(4)
HASH_VALUE NUMBER
CHILD_NUMBER NUMBER
而v$SQLAREA 忽略了 執(zhí)行計(jì)劃 等差異,只是在形式上sql文本看起來(lái)一樣!相當(dāng)于做了個(gè)聚合,是多個(gè)不同執(zhí)行計(jì)劃的sql的聚合和累計(jì)信息
v$session_longops:
當(dāng)事務(wù)回滾時(shí),事件被記錄在視圖 V$SESSION_LONGOPS 中,該視圖顯示長(zhǎng)期運(yùn)行的事務(wù)。如果進(jìn)程耗時(shí)超過(guò)六秒,則記錄出現(xiàn)在該視圖中。
可以通過(guò)如下語(yǔ)句查看回滾需要的時(shí)間:
select time_remaining from v$session_longops where sid = ;
V$FAST_START_TRANSACTIONS:
在大型的更新期間,實(shí)例異常關(guān)閉,或spid異常中斷,發(fā)生故障的事務(wù)被回滾。如果啟用了用于并行恢復(fù)的初始化參數(shù)值,則回滾是并行地而不是串行地發(fā)生。
視圖 V$FAST_START_TRANSACTIONS 顯示為回滾故障事務(wù)所產(chǎn)生的事務(wù)。類似的視圖 V$FAST_START_SERVERS 顯示對(duì)回滾進(jìn)行處理的并行查詢服務(wù)器的數(shù)量。
select * from v$fast_start_transactions;
可通過(guò)UNDOBLOCKSDONE、UNDOBLOCKSTOTAL估算回滾時(shí)間。
當(dāng)我們想查看當(dāng)前session的sid時(shí)經(jīng)常會(huì)用到這兩個(gè)function,此外也可通過(guò)這兩個(gè)function查詢當(dāng)前session的更多信息。
such as:
select userenv('sid') from dual;
select sys_context('userenv', 'sid') from dual;
select sys_context('userenv', 'session_user') from dual;
select sys_context('userenv', 'ip_address') from dual;
sys_context包含了userenv的所有功能,詳細(xì)參數(shù)參看:
userenv:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions208.htm#SQLRF06157
sys_context:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions165.htm#SQLRF06117
spool 生成純凈文件
1.創(chuàng)建sql文件,該文件包含格式相關(guān)的參數(shù)設(shè)置和腳本生成語(yǔ)句
例:
[oracle@db 20090709]$ more exp.sql
set trimspool on --去除重定向(spool)輸出每行的拖尾空格,缺省為off
set term off?? --關(guān)閉顯示腳本中的命令的執(zhí)行結(jié)果,防止?jié)L屏影響操作,當(dāng)數(shù)據(jù)量大時(shí)非常有用,缺省為on
set feedback off --關(guān)閉回顯本次sql命令處理的記錄條數(shù),如:** rows selected,缺省為on
set pagesize 0? --設(shè)置輸出每頁(yè)行數(shù),缺省為24,為了避免分頁(yè),設(shè)定為0,使用set head off去除列名時(shí)會(huì)造成空行
set line 1200?? --設(shè)置輸出每行的字符數(shù),可根據(jù)實(shí)際情況設(shè)置,防止換行
spool userSecurity.sql
@exp_data1.sql
spool off
spool pay.sql
@exp_data2.sql
spool off
@exp_data1.sql、@exp_data2.sql中是select語(yǔ)句
如果不創(chuàng)建該sql腳本,則生成的文件中文件頭尾分別為:
SQL> ....sql語(yǔ)句或@文件
SQL>spool off
補(bǔ)充:當(dāng)不采用上述方式時(shí),sqlplus -s / as sysdba也可達(dá)到效果
2.通過(guò)shell或直接sqlplus調(diào)用該腳本
例1:
sqlplus / as sysdba
SQL> @exp.sh
例2:
[oracle@db 20090709]$ more exp.sh
#!/bin/sh
sqlplus / as sysdba <<EOF
@exp.sql
EOF
[oracle@db 20090709]$ sh exp.sh
dbms_scheduler調(diào)用shell腳本
1.使用sys用戶創(chuàng)建EXECUTABLE類型scheduler。
2.指定shell類型,如:#!/bin/sh
3.shell腳本內(nèi)設(shè)置環(huán)境變量
[oracle@dbathree qxy]$ more check_env.sh
#!/bin/sh
env | sort | tee >> /orahome/qxy/env.out
執(zhí)行后可以看到:
[oracle@dbathree qxy]$ more env.out
PWD=/
SHLVL=1
_=/bin/env
4.腳本中使用全路徑
如果想使用其它用戶可以通過(guò)grant create external job to user_name實(shí)現(xiàn),但好像10g有bug,沒(méi)調(diào)試成功。
創(chuàng)建語(yǔ)句:
begin
dbms_scheduler.create_job(job_name??????? => 'sys.test_schem',
??????????????????????????? job_type??????? => 'EXECUTABLE',
??????????????????????????? job_action????? => '/orahome/qxy/test_schem.sh',
??????????????????????????? start_date????? => trunc(sysdate) + 16 / 24 +
?????????????????????????????????????????????? 44 / 60 / 24,
??????????????????????????? enabled???????? => true,
??????????????????????????? comments??????? => 'expdp busi02!');
end;
執(zhí)行腳本:
[oracle@dbathree qxy]$ more test_schem.sh
#!/bin/bash
export ORACLE_SID=busi
export ORACLE_BASE=/orahome/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
expdp system/oracle dumpfile=busi020616.dmp directory=DUMP_FILE schemas=busi02
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
