久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

我的oracle筆記六(oracle優化方面)

瀏覽:158日期:2023-11-19 17:22:52
1. 查詢正在執行語句的執行計劃(也就是實際語句執行計劃) select * from v$sql_plan where hash_value = (select sql_hash_value from v$session where sid = 1111); 其中id和parent_id表示了執行數的結構,數值最大的為最先執行 比如ID; PARENT_ID;-------------;0;1;02;13;24;35;46;3;------------則執行計劃樹為 0 1 2 3 6;;4; 52.如何設置自動跟蹤用system登錄執行$Oracle_HOME/rdbms/admin/utlXPlan.sql創建計劃表執行$ORACLE_HOME/sqlplus/admin/plustrce.sql創建plustrace角色假如想計劃表讓每個用戶都能使用,則SQL>create public synonym plan_table for plan_table;SQL> grant all on plan_table to public;假如想讓自動跟蹤的角色讓每個用戶都能使用,則SQL> grant plustrace to public;通過如下語句開啟/停止跟蹤SET AUTOTRACE ON OFF ON EXPLAIN ON STATISTICS TRACEONLY TRACEONLY EXPLAIN3.如何跟蹤自己的會話或者是別人的會話跟蹤自己的會話很簡單Alter session set sql_trace truefalseOrExec dbms_session.set_sql_trace(TRUE);假如跟蹤別人的會話,需要調用一個包exec dbms_system.set_sql_trace_in_session(sid,serial#,truefalse)跟蹤的信息在user_dump_dest 目錄下可以找到或通過如下腳本獲得文件名稱(適用于Win環境,假如是unix需要做一定修改)SELECT p1.value''p2.value'_ora_'p.spid'.ora' filenameFROMv$process p,v$session s,v$parameter p1,v$parameter p2WHERE p1.name = 'user_dump_dest'AND p2.name = 'db_name'AND p.addr = s.paddrAND s.audsid = USERENV ('SESSIONID')最后,可以通過Tkprof來解析跟蹤文件,如Tkprof 原文件 目標文件 sys=n4.怎么設置整個數據庫系統跟蹤其實文檔上的alter system set sql_trace=true是不成功的但是可以通過設置事件來完成這個工作,作用相等alter system set events'10046 trace name context forever,level 1';假如關閉跟蹤,可以用如下語句alter system set events'10046 trace name context off';其中的level 1與上面的8都是跟蹤級別level 1:跟蹤SQL語句,等于sql_trace=truelevel 4:包括變量的具體信息level 8:包括等待事件level 12:包括綁定變量與等待事件5.怎么樣根據OS進程快速獲得DB進程信息與正在執行的語句有些時候,我們在OS上操作,象TOP之后我們得到的OS進程,怎么快速根據OS信息獲得DB信息呢?我們可以編寫如下腳本:$more whoit.sh#!/bin/shsqlplus /nolog 100,cascade=> TRUE);dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);這是對命令與工具包的一些總結<1>、對于分區表,建議使用DBMS_STATS,而不是使用Analyze語句。 a) 可以并行進行,對多個用戶,多個Table b) 可以得到整個分區表的數據和單個分區的數據。 c) 可以在不同級別上Compute Statistics:單個分區,子分區,全表,所有分區 d) 可以倒出統計信息 e) 可以用戶自動收集統計信息 <2>、DBMS_STATS的缺點 a) 不能Validate StrUCture b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,這兩個仍然需要使用Analyze語句。 c) DBMS_STATS 默認不對索引進行Analyze,因為默認Cascade是False,需要手工指定為True <3>、對于oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS來收集信息。6.怎么樣快速重整索引通過rebuild語句,可以快速重整或移動索引到別的表空間rebuild有重建整個索引數的功能,可以在不刪除原始索引的情況下改變索引的存儲參數語法為alter index index_name rebuild tablespace ts_namestorage(......);假如要快速重建整個用戶下的索引,可以用如下腳本,當然,需要根據你自己的情況做相應修改SQL> set heading offSQL> set feedback offSQL> spool d:index.sqlSQL> SELECT 'alter index ' index_name ' rebuild ''tablespace INDEXES storage(initial 256K next 256K pctincrease 0);'FROM all_indexesWHERE ( tablespace_name != 'INDEXES'OR next_extent != ( 256 * 1024 ))AND owner = USERSQL>spool off另外一個合并索引的語句是alter index index_name coalesce,這個語句僅僅是合并索引中同一級的leaf block消耗不大,對于有些索引中存在大量空間浪費的情況下,有一些作用。7.如何使用Hint提示在select/delete/update后寫/*+ hint */如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1...注重/*和+之間不能有空格如用hint指定使用某個索引select /*+ index(cbotab) */ col1 from cbotab;select /*+ index(cbotab cbotab1) */ col1 from cbotab;select /*+ index(a cbotab1) */ col1 from cbotab a;其中TABLE_NAME是必須要寫的,且假如在查詢中使用了表的別名,在hint也要用表的別名來代替表名;INDEX_NAME可以不必寫,Oracle會根據統計值選一個索引;假如索引名或表名寫錯了,那這個hint就會被忽略;8.怎么樣快速復制表或者是插入數據快速復制表可以指定Nologging選項如:Create table t1 nologging as select * from t2;快速插入數據可以指定append提示,但是需要注重noarchivelog模式下,默認用了append就是nologging模式的。 在archivelog下,需要把表設置程Nologging模式。如insert /*+ append */ into t1 select * from t2注重:假如在9i環境中并設置了FORCE LOGGING,則以上操作是無效的,并不會加快,當然,可以通過如下語句設置為NO FORCE LOGGING。Alter database no force logging;是否開啟了FORCE LOGGING,可以用如下語句查看SQL> select force_logging from v$database;9.怎么避免使用特定索引在很多時候,Oracle會錯誤的使用索引而導致效率的明顯下降,我們可以使用一點點技巧而避免使用不該使用的索引,如:表test,有字段a,b,c,d,在a,b,c上建立聯合索引inx_a(a,b,c),在b上單獨建立了一個索引Inx_b(b)。在正常情況下,where a=? and b=? and c=?會用到索引inx_a,where b=?會用到索引inx_b但是,where a=? and b=? and c=? group by b會用到哪個索引呢?在分析數據不正確(很長時間沒有分析)或根本沒有分析數據的情況下,oracle往往會使用索引inx_b。通過執行計劃的分析,這個索引的使用,將大大耗費查詢時間。當然,我們可以通過如下的技巧避免使用inx_b,而使用inx_a。where a=? and b=? and c=? group by b'' --假如b是字符where a=? and b=? and c=? group by b+0 --假如b是數字通過這樣簡單的改變,往往可以是查詢時間提交很多倍當然,我們也可以使用no_index提示,相信很多人沒有用過,也是一個不錯的方法:select /*+ no_index(t,inx_b) */ * from test twhere a=? and b=? and c=? group by b舉例:本來在CM_USER上有索引IDX_CM_USER4(ACC_ID)和IDX_CM_USER8(BILL_ID),可是執行如下語句的時候很慢。select * from CM_USER where; acc_id =1200007175 and user_status>0 and bill_id like '13%' order by acc_id,bill_id 用explain分析,發現執行計劃是用IDX_CM_USER8.如下查詢select * from user_indexes where table_name ='CM_USER' 發現IDX_CM_USER8沒有分析過。用下面語句執行計劃改變select /*+INDEX(CM_USER IDX_CM_USER4)*/* from CM_USER where; acc_id =1200007175 and user_status>0 and bill_id like '13%' order by acc_id,bill_id或者分析索引exec dbms_stats.gather_index_stats(ownname => 'QACS1',indname => 'IDX_CM_USER8',estimate_percent => 5 );可以發現執行計劃恢復正常。10.Oracle什么時候會使用跳躍式索引掃描這是9i的一個新特性跳躍式索引掃描(Index Skip Scan).例如表有索引index(a,b,c),當查詢條件為where b=?的時候,可能會使用到索引index(a,b,c)如,執行計劃中出現如下計劃:INDEX (SKIP SCAN) OF 'TEST_IDX' (NON-UNIQUE)Oracle的優化器(這里指的是CBO)能對查詢應用Index Skip Scans至少要有幾個條件:<1> 優化器認為是合適的。<2> 索引中的前導列的唯一值的數量能滿足一定的條件(如重復值很多)。<3> 優化器要知道前導列的值分布(通過分析/統計表得到)。<4> 合適的SQL語句等。11.怎么樣創建使用虛擬索引可以使用nosegment選項,如create index virtual_index_name on table_name(col_name) nosegment;假如在哪個session需要測試虛擬索引,可以利用隱含參數來處理alter session set '_use_nosegment_indexes' = true;就可以利用explain plan for select ……來看虛擬索引的效果利用@$ORACLE_HOME/rdbms/admin/utlxpls查看執行計劃最后,根據需要,我們可以刪除虛擬索引,如普通索引一樣drop index virtual_index_name;注重:虛擬索引并不是物理存在的,所以虛擬索引并不等同于物理索引,不要用自動跟蹤去測試虛擬索引,因為那是實際執行的效果,是用不到虛擬索引的。12.怎樣監控無用的索引Oracle 9i以上,可以監控索引的使用情況,假如一段時間內沒有使用的索引,一般就是無用的索引語法為:開始監控:alter index index_name monitoring usage;檢查使用狀態:select * from v$object_usage;停止監控:alter index index_name nomonitoring usage;當然,假如想監控整個用戶下的索引,可以采用如下的腳本:set heading offset echo offset feedback offset pages 10000spool start_index_monitor.sqlSELECT 'alter index 'owner'.'index_name' monitoring usage;'FROM dba_indexesWHERE owner = USER; spool off set heading onset echo onset feedback on------------------------------------------------set heading offset echo offset feedback offset pages 10000spool stop_index_monitor.sqlSELECT 'alter index 'owner'.'index_name' nomonitoring usage;'FROM dba_indexesWHERE owner = USER; spool off set heading onset echo onset feedback on13.怎么樣能固定我的執行計劃可以使用OUTLINE來固定SQL語句的執行計劃用如下語句可以創建一個OUTLINECreate oe replace outline OutLn_Name onSelect Col1,Col2 from Tablewhere .......假如要刪除Outline,可以采用Drop Outline OutLn_Name;對于已經創建了的OutLine,存放在OUTLN用戶的OL$HINTS表下面對于有些語句,你可以使用update outln.ol$hints來更新outline如update outln.ol$hints(ol_name,'TEST1','TEST2','TEST2','TEST1)where ol_name in ('TEST1','TEST2');這樣,你就把Test1 OUTLINE與Test2 OUTLINE互換了假如想利用已經存在的OUTLINE,需要設置以下參數Alter system/session set Query_rewrite_enabled = trueAlter system/session set use_stored_outlines = true14.v$sysstat中的class分別代表什么統計類別1 代表事例活動2 代表Redo buffer活動4 代表鎖8 代表數據緩沖活動16 代表OS活動32 代表并行活動64 代表表訪問128 代表調試信息15.怎么殺掉特定的數據庫會話Alter system kill session 'sid,serial#';或者alter system disconnect session 'sid,serial#' immediate; 在win上,還可以采用oracle提供的orakill殺掉一個線程(其實就是一個Oracle進程)在Linux/Unix上,可以直接利用kill殺掉數據庫進程對應的OS進程16.怎么快速查找鎖與鎖等待數據庫的鎖是比較耗費資源的,非凡是發生鎖等待的時候,我們必須找到發生等待的鎖,有可能的話,殺掉該進程。這個語句將查找到數據庫中所有的DML語句產生的鎖,還可以發現,任何DML語句其實產生了兩個鎖,一個是表鎖,一個是行鎖。可以通過alter system kill session ‘sid,serial#’來殺掉會話SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL) LOCK_LEVEL,o.owner,o.object_name,o.object_type,s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuserFROM v$session s,v$lock l,dba_objects oWHERE l.sid = s.sidAND l.id1 = o.object_id(+)AND s.username is NOT NULL假如發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待以下的語句可以查詢到誰鎖了表,而誰在等待。SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))l.oracle_username User_name,o.owner,o.object_name,o.object_type,s.sid,s.serial#FROM v$locked_object l,dba_objects o,v$session sWHERE l.object_id=o.object_idAND l.session_id=s.sidORDER BY o.object_id,xidusn DESC以上查詢結果是一個樹狀結構,假如有子節點,則表示有等待發生。假如想知道鎖用了哪個回滾段,還可以關聯到V$rollname,其中xidusn就是回滾段的USN[Q] 如何有效的刪除一個大表(extent數很多的表)[A] 一個有很多(100k)extent的表,假如只是簡單地用drop table的話,會很大量消耗CPU(Oracle要對fet$、uet$數據字典進行操作),可能會用上幾天的時間,較好的方法是分多次刪除extent,以減輕這種消耗:1. truncate table big-table reuse storage;2. alter table big-table deallocate unused keep 2000m ( 原來大小的n-1/n);3. alter table big-table deallocate unused keep 1500m ;....4. drop table big-table;17.如何收縮臨時數據文件的大小9i以下版本采用ALTER DATABASE DATAFILE 'file name' RESIZE 100M類似的語句9i以上版本采用ALTER DATABASE TEMPFILE 'file name' RESIZE 100M注重,臨時數據文件在使用時,一般不能收縮,除非關閉數據庫或斷開所有會話,停止對臨時數據文件的使用。18.怎么清理臨時段可以使用如下辦法<1>、 使用如下語句查看一下認誰在用臨時段SELECT username,sid,serial#,sql_address,machine,program,tablespace,segtype, contents FROM v$session se,v$sort_usage suWHERE se.saddr=su.session_addr <2>、 那些正在使用臨時段的進程SQL>Alter system kill session 'sid,serial#';<3>、把TEMP表空間回縮一下SQL>Alter tablespace TEMP coalesce;還可以使用診斷事件<1>、 確定TEMP表空間的ts#SQL> select ts#, name FROM v$tablespace;TS# NAME ----------------------- 0 SYSYEM 1 RBS 2 USERS 3* TEMP ...<2>、 執行清理操作alter session set events 'immediate trace name DROP_SEGMENTS level TS#+1'說明: temp表空間的TS# 為 3*, So TS#+ 1= 4假如想清除所有表空間的臨時段,則 TS# = 214748364719.怎么樣dump數據庫內部結構,如上面顯示的控制文件的結構[A]常見的有1、分析數據文件塊,轉儲數據文件n的塊malter system dump datafile n block m2、分析日志文件alter system dump logfile logfilename;3、分析控制文件的內容alter session set events 'immediate trace name CONTROLF level 10'4、分析所有數據文件頭alter session set events 'immediate trace name FILE_HDRS level 10'5、分析日志文件頭alter session set events 'immediate trace name REDOHDR level 10'6、分析系統狀態,最好每10分鐘一次,做三次對比alter session set events 'immediate trace name SYSTEMSTATE level 10'7、分析進程狀態alter session set events 'immediate trace name PROCESSSTATE level 10' 8、分析Library Cache的具體情況alter session set events 'immediate trace name library_cache level 10'20.如何獲得所有的事件代碼事件代碼范圍一般從10000 to 10999,以下列出了這個范圍的事件代碼與信息SET SERVEROUTPUT ONDECLARE err_msg VARCHAR2(120);BEGINdbms_output.enable (1000000);FOR err_num IN 10000..10999LOOPerr_msg := SQLERRM (-err_num);IF err_msg NOT LIKE '%Message 'err_num' not found%' THENdbms_output.put_line (err_msg);END IF;END LOOP;END;/在Unix系統上,事件信息放在一個文本文件里 $ORACLE_HOME/rdbms/mesg/oraus.msg可以用如下腳本查看事件信息 event=10000while [ $event -ne 10999 ]doevent=`expr $event + 1`oerr ora $eventdone對于已經確保的/正在跟蹤的事件,可以用如下腳本獲得SET SERVEROUTPUT ONDECLAREl_level NUMBER;BEGINFOR l_event IN 10000..10999LOOPdbms_system.read_ev (l_event,l_level);IF l_level > 0 THENdbms_output.put_line ('Event 'TO_CHAR (l_event)' is set at level 'TO_CHAR (l_level));END IF;END LOOP;END;/21.什么是STATSPACK,我怎么使用它?Statspack是Oracle 8i以上提供的一個非常好的性能監控與診斷工具,基本上全部包含了BSTAT/ESTAT的功能,更多的信息可以參考附帶文檔$ORACLE_HOME/rdbms/admin/spdoc.txt。 安裝Statspack: cd $ORACLE_HOME/rdbms/adminsqlplus '/ as sysdba' @spdrop.sql -- 卸載,第一次可以不需要sqlplus '/ as sysdba' @spcreate.sql -- 需要根據提示輸入表空間名使用Statspack: sqlplus perfstat/perfstatexec statspack.snap; -- 進行信息收集統計,每次運行都將產生一個快照號-- 獲得快照號,必須要有兩個以上的快照,才能生成報表select SNAP_ID, SNAP_TIME from STATS$SNAPSHOT; @spreport.sql -- 輸入需要查看的開始快照號與結束快照號其他相關腳本s: spauto.sql - 利用dbms_job提交一個作業,自動的進行STATPACK的信息收集統計 sppurge.sql - 清除一段范圍內的統計信息,需要提供開始快照與結束快照號sptrunc.sql - 清除(truncate)所有統計信息22. SQL語句的優化方法<1> /*+ALL_ROWS*/ 表明對語句塊選擇基于開銷的優化方法,并獲得最佳吞吐量,使資源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';;<2>. /*+FIRST_ROWS*/ 表明對語句塊選擇基于開銷的優化方法,并獲得最佳響應時間,使資源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE;EMP_NO='CCBZZP';;<3>. /*+CHOOSE*/ 表明假如數據字典中有訪問表的統計信息,將基于開銷的優化方法,并獲得最佳的吞吐量; 表明假如數據字典中沒有訪問表的統計信息,將基于規則開銷的優化方法; 例如: SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';;<4>. /*+RULE*/ 表明對語句塊選擇基于規則的優化方法. 例如: SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';;<5>. /*+FULL(TABLE)*/ 表明對表選擇全局掃描的方法. 例如: SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='CCBZZP';;<6>. /*+ROWID(TABLE)*/ 提示明確表明對指定表根據ROWID進行訪問. 例如: SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA' AND EMP_NO='CCBZZP';;<7>. /*+CLUSTER(TABLE)*/ 提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇對象有效. 例如: SELECT; /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;;<8>. /*+INDEX(TABLE INDEX_NAME)*/ 表明對表選擇索引的掃描方法. 例如: SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE;BSEMPMS */; FROM BSEMPMS WHERE SEX='M';;<9>. /*+INDEX_ASC(TABLE INDEX_NAME)*/ 表明對表選擇索引升序的掃描方法. 例如: SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */; FROM BSEMPMS WHERE DPT_NO='CCBZZP';;<10>. /*+INDEX_COMBINE*/ 為指定表選擇位圖訪問路經,假如INDEX_COMBINE中沒有提供作為參數的索引,將選擇出位圖索引的 布爾組合方式. 例如: SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS WHERE SAL<5000000 AND HIREDATE<SYSDATE;;<11>. /*+INDEX_JOIN(TABLE INDEX_NAME)*/ 提示明確命令優化器使用索引作為訪問路徑. 例如: SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE FROM BSEMPMS WHERE SAL<60000;;<12>. /*+INDEX_DESC(TABLE INDEX_NAME)*/ 表明對表選擇索引降序的掃描方法. 例如: SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */; FROM BSEMPMS WHERE;DPT_NO='CCBZZP';;<13>. /*+INDEX_FFS(TABLE INDEX_NAME)*/ 對指定的表執行快速全索引掃描,而不是全表掃描的辦法. 例如: SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';;<14>. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/ 提示明確進行執行規劃的選擇,將幾個單列索引的掃描合起來. 例如: SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='CCBZZP' AND DPT_NO='TDC306';;<15>. /*+USE_CONCAT*/ 對查詢中的WHERE后面的OR條件進行轉換為UNION ALL的組合查詢. 例如: SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';;<16>. /*+NO_EXPAND*/ 對于WHERE后面的OR 或者IN-LIST的查詢語句,NO_EXPAND將阻止其基于優化器對其進行擴展. 例如: SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE; DPT_NO='TDC506' AND SEX='M';;<17>. /*+NOWRITE*/ 禁止對查詢塊的查詢重寫操作.;<18>. /*+REWRITE*/ 可以將視圖作為參數.;<19>. /*+MERGE(TABLE)*/ 能夠對視圖的各個查詢進行相應的合并. 例如: SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO ,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;;<20>. /*+NO_MERGE(TABLE)*/ 對于有可合并的視圖不再合并. 例如: SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO ,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL; <21>. /*+ORDERED*/ 根據表出現在FROM中的順序,ORDERED使ORACLE依此順序對其連接. 例如: SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;;<22>. /*+USE_NL(TABLE)*/ 將指定表與嵌套的連接的行源進行連接,并把指定表作為內部表. 例如: SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;;<23>. /*+USE_MERGE(TABLE)*/ 將指定的表與其他行源通過合并排序連接方式連接起來. 例如: SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;;<24>. /*+USE_HASH(TABLE)*/ 將指定的表與其他行源通過哈希連接方式連接起來. 例如: SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;;<25>. /*+DRIVING_SITE(TABLE)*/ 強制與ORACLE所選擇的位置不同的表進行查詢執行. 例如: SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;;<26>. /*+LEADING(TABLE)*/ 將指定的表作為連接次序中的首表. <27>. /*+CACHE(TABLE)*/ 當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩沖區緩存中最近最少列表LRU的最近使用端 例如: SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM; BSEMPMS;;<28>. /*+NOCACHE(TABLE)*/ 當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩沖區緩存中最近最少列表LRU的最近使用端 例如: SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM; BSEMPMS;;<29>. /*+APPEND*/ 直接插入到表的最后,可以提高速度. insert /*+append*/ into test1; select * from test4 ; insert /*+append */ into emp nologging ;<30>. /*+NOAPPEND*/ 通過在插入語句生存期內停止并行模式來啟動常規插入.insert /*+noappend*/ into test1; select * from test4 ;<31>.parallel direct-load insert sql> alter session enable parallel dml; sql> insert /*+parallel(emp,2) */ into emp nologging sql> select * from emp_old;
標簽: Oracle 數據庫
主站蜘蛛池模板: 欧美天天 | 2018天天操| 九一亚洲精品 | 亚洲一区二区免费看 | 国产成人久久 | 中文字幕亚洲一区二区va在线 | 国产一级大片 | 中文字幕精品一区二区三区精品 | 盗摄精品av一区二区三区 | 一级毛片视频 | 免费成人av在线 | 亚洲精品乱码久久久久久久久 | www.欧美| 国产日产精品一区二区三区四区 | 日本久久久久久久久 | 久久极品 | 国产一区中文字幕 | 精品国产免费久久久久久尖叫 | 国产精品视频一区二区三区 | 中文字幕日韩欧美一区二区三区 | 禁果av一区二区三区 | 国产在线一区不卡 | 欧美一级精品片在线看 | 国产一区二区视频免费看 | 性色av网| 国产精品久久久久无码av | 亚洲福利av | 欧美精品久 | 亚洲大尺度视频 | 日韩电影a | 一区二区三区精品视频免费看 | 国产精品一区二区在线观看 | 久久久久久久久一区二区三区 | 伊人av在线 | 欧美一级片在线观看 | 国产视频久久久久久 | 成年人黄色一级毛片 | 日韩爱爱视频 | 一道本一区 | 亚洲日韩欧美一区二区在线 | 日韩欧美高清dvd碟片 | 日本二区在线观看 | 国产精品久久久久久亚洲调教 | 免费黄色网址在线播放 | 日本久久精品 | 99国产精品 | xxxx午夜 | 成人免费视频观看视频 | 午夜影视av| 成人午夜av | 嫩草视频入口 | 国产成人精品免费视频大全最热 | 欧美精品99| 日韩视频在线观看 | 日韩欧在线 | 日韩成人中文字幕 | 日日操操| 国产精品一区av | 欧美天天 | 国产精品国产成人国产三级 | av在线入口| 欧美日一区二区 | 国产成人免费视频网站高清观看视频 | 色婷婷综合久久久久中文一区二区 | 男人天堂网av | 国产视频中文字幕 | 春色导航 | 免费久久99精品国产婷婷六月 | 五月婷婷激情 | 日韩免费一区二区 | 一区二区三区四区免费观看 | 婷婷色5月 | 日本久久综合 | 国产日韩欧美不卡 | 综合一区二区三区 | 国产 高清 在线 | 国产精品久久国产精麻豆99网站 | 高清视频一区二区三区 | 综合久久亚洲 | 国产精品久久久一区二区 | 青青草视频在线免费观看 | 亚洲成人av在线播放 | 成人福利视频 | 免费av一区二区三区 | 久久99久久久久久 | 久久综合一区二区 | 国产成人一区 | 欧美一区二区三区黄色 | 午夜日韩| 毛片免费在线观看 | 国产免费看 | 欧美xxxxxx视频 | 亚洲福利| 精品91在线视频 | 美女一级 | 精品九九 | 日本一区二区高清不卡 | 国产精品久久国产精品 | 99热在线免费观看 | 最新国产福利在线 | 国产精品手机在线 | 精品欧美一区二区在线观看 | 欧美第一色| 亚洲成人精品 | 中文字幕日韩欧美一区二区三区 | 福利视频1000 | 国产不卡在线观看 | 夜操| 午夜小视频在线观看 | 日日精品| 可以免费观看的av | 欧美视频在线播放 | 国产拍拍视频 | 午夜不卡视频 | 亚洲午夜精品 | 亚洲成av人片一区二区三区 | 国产亚洲成av人片在线观看桃 | 午夜免费av| 久草视频在线首页 | 视频一区 中文字幕 | 一级片日韩 | 黄色电影天堂 | 日韩在线中文字幕 | 免费在线成人av | 81精品国产乱码久久久久久 | 日韩在线短视频 | 久久综合久久综合久久 | 久久精品综合 | 亚洲视频777 | h在线看 | 日本丶国产丶欧美色综合 | 久久2018| 成年免费观看视频 | 日韩视频在线视频 | 色猫猫国产区一区二在线视频 | 日韩一区二区在线播放 | 一级性大片 | 蜜桃精品久久久久久久免费影院 | 精品视频免费观看 | 亚洲欧美一 | 成人超碰在线 | 午夜合集 | 亚洲精品亚洲人成人网 | 亚洲视频一区二区 | 色久天堂 | 国产欧美日韩精品一区 | 成人在线免费 | 国产成人亚洲综合 | 一区二区免费看 | 在线观看视频一区 | 91影院 | 91精品久久久久久久久久 | 中文成人在线 | 国产精品一区二区视频 | 精品国产乱码一区二区三区 | 午夜视频福利在线观看 | 国产精品二区三区在线观看 | 国产真实乱全部视频 | 天堂资源在线 | 亚洲精品视频在线播放 | 精品久久久一区 | 亚洲视频自拍 | 久久一视频 | 成人精品在线观看 | 人人看人人插 | 国产精品久久久久久久久免费软件 | 国产偷录视频叫床高潮对白 | 国产精品久久久久久久竹霞 | 日韩av一区二区在线观看 | 超级碰在线视频 | 国产91亚洲精品久久久 | 国产欧美在线视频 | 欧美日韩一区在线 | 成年无码av片在线 | 91免费看网站 | 国产一区二区三区免费 | 日韩精品在线观看免费 | 精品久久久久久久久久久久久久 | 久久精品这里热有精品 | 日韩av在线不卡 | 国产一区在线看 | 欧美视频在线播放 | 国产精品久久九九 | 日韩久久久久久 | 欧美一a一片一级一片 | 九九热这里 | 午夜视频网 | 日本理伦片午夜理伦片 | 亚洲成av人片一区二区三区 | 国产综合av | 久久久精品综合 | 九九天堂网 | 国产一页 | 日韩在线中文字幕 | 色av色av色av | 日韩有码在线观看 | 日韩中文字幕av在线 | 日日摸夜夜添夜夜添高潮视频 | 亚州成人 | 超碰人人操 | 亚洲视频自拍 | 成人免费观看49www在线观看 | 蜜桃精品久久久久久久免费影院 | 国产精品无码久久久久 | 久久精品这里只有精品 | 亚洲国产精品综合久久久 | 久久不卡 | 色婷婷亚洲| 欧美日韩精品久久久 | 免费一区 | 国产一级电影网 | 成av在线 | 美女福利网站 | 精品久久一区 | 天天操天天添 | 亚洲国产一区二区在线观看 | 天天插天天射天天干 | 日韩激情视频一区二区 | 欧美一区二区三区精品免费 | 久草网在线视频 | 亚洲第一福利视频 | 久久精品久久综合 | av三级在线观看 | 电影午夜精品一区二区三区 | 国产一区二区视频在线观看 | 精精国产 | 奇米av| 精品久久久久久久久福利 | www.99re| 国产欧美综合一区二区三区 | 国产日韩视频 | 午夜午夜精品一区二区三区文 | 亚洲成人免费网站 | 色视频网站在线观看 | 国产高清在线精品一区二区三区 | 免费福利视频一区 | 久草视频国产 | 人人插人人 | 激情五月婷婷 | 国产精产国品一二三产区视频 | 九九热在线免费视频 | 一级色网站 | av在线免费观看一区二区 | 国产精品国产三级国产aⅴ入口 | 久久久久一 | 日本一本视频 | 久久影视精品 | 国产一级大片 | av高清在线免费观看 | 色欧美日韩 | 久久久久久久久一区二区 | 精品无码久久久久国产 | 中文字幕在线永久在线视频 | 亚洲精品一区二三区不卡 | 涩涩久久| 一区二区av | 亚洲精品视频在线播放 | 能免费看的av | av手机在线电影 | 亚洲伊人中文字幕 | 亚洲a在线观看 | 在线欧美亚洲 | 亚洲精品夜夜夜 | 欧美精品一区二区三区视频 | 日韩一区免费观看 | 日韩视频网 | 日韩在线视频观看 | 成人影音 | 国产精品一区二区不卡 | 久久福利 | 久久国内精品 | 国产精品久久久久久无遮挡 | 在线播放国产一区二区三区 | 亚洲一区二区在线 | 91精品国产91久久综合桃花 | 久久电影一区 | 日韩免费视频 | 久久久亚洲成人 | 黄色一级免费电影 | 美女扒开尿口来摸 | 麻豆色呦呦 | 亚洲二区在线 | 91在线精品一区二区 | 国产精品一区二区在线 | 久草视频在线播放 | 嫩草网站入口 | 国产有码| 久久久久久亚洲一区二区三区蜜臀 | 欧美日韩一二区 | 日本不卡免费新一二三区 | 高清xxxx| 福利亚洲| 国产午夜久久 | 亚洲在线一区二区 | 精品国产一级毛片 | 久久手机免费视频 | 超碰在线播 | 国产精品久久久久久久9999 | 在线免费观看毛片 | 99久久婷婷国产精品综合 | 亚洲精品乱码久久久久久不卡 | 国产亚洲精品久久久久久青梅 | 中国大陆高清aⅴ毛片 | 欧美一区二区三区电影 | 欧美日韩一区二区在线观看 | 国产人成精品一区二区三 | 有码在线| 国产成人精品综合 | 欧美精品综合 | 91精品久久久久 | 超碰在线播 | 8x国产精品视频一区二区 | 国产精品第52页 | 国产精品久久久久久一级毛片 | 91视频一区二区 | av天天干 | 日韩久久成人 | 国产精品久久一区二区三区 | 国产一级淫免费播放m | 亚洲一区二区免费看 | 青青草在线视频免费观看 | 亚洲激情精品 | 在线国产欧美 | 国产乱视频 | 99久久精品一区二区 | 欧美另类综合 | 国产美女网站视频 | 欧美黑人一级爽快片淫片高清 | 91不卡| 色呦呦网站在线观看 | av黄色在线观看 | 精品一区二区在线观看 | 可以看黄的视频 | 在线看av网址 | 国产精品不卡 | 福利亚洲 | 91色视频在线观看 | 免费一级毛片 | 久久草草影视免费网 | 国产成人精品一区二区三区四区 | 99热这里有精品 | 五月婷婷激情 | 91在线精品视频 | 高清国产午夜精品久久久久久 | jizz在亚洲 | 91久久国产| 伊人伊人 | 日韩视频―中文字幕 | 国产精品久久久 | 亚洲乱码国产乱码精品精 | 亚洲国产精品视频 | 一区二区久久 | 97超碰青青草 | 在线免费观看日韩视频 | 国产精品综合 | 国产精品久久久久久久 | 国产精品久久久久久久久久久免费看 | 国产精品资源在线 | 一级毛片视屏 | 国产在线精品二区 | 91精品国产综合久久国产大片 | 在线国产一区二区 | 成人精品一区二区三区电影黑人 | 精品中文字幕一区二区 | a视频在线 | a级网站在线观看 | 国产精品一区二区三区在线播放 | 欧美激情一区二区 | 久久这里只有精品首页 | 91精品国产一区二区 | 精品视频在线观看一区二区 | 青青草久 | 国产精品久久久久久一级毛片 | 亚洲精品在线看 | 午夜寂寞少妇aaa片毛片 | 一级黄色录像视频 | 成人精品一区二区三区 | 亚洲一区二区精品视频 | 在线免费中文字幕 | 国产一区二区三区免费 | 国产亚洲一区二区三区在线观看 | 成人av免费在线观看 | 午夜精品福利网 | 97久久久 | 国产午夜精品一区二区三区嫩草 | 爱爱视频免费 | 久久99精品久久久久久园产越南 | 成人精品网站在线观看 | 成人影音 | 超级碰在线视频 | 中国国产一级毛片 | 精品久久久久久久久久久 | 天堂久久久久 | 国产精品久久九九 | 色综合天天综合网国产成人网 | 国产欧美一区二区精品性色 | 亚洲精彩视频 | 欧美久草 | 青娱乐一区| 精品一区二区三区免费 | 欧美极品在线 | 免费在线观看国产 | 亚洲视频自拍 | 国产精品第一国产精品 | 久久精品视频网站 | 亚洲网站免费观看 | 国产精品美女久久久久久免费 | 男女午夜 | 久久精品手机视频 | 男人的天堂免费 | 日本aⅴ毛片成人实战推荐 成人免毛片 | 视频1区 | 天天操天天干天天 | 九九免费观看全部免费视频 | 欧美在线观看一区 | 国产成人在线播放 | 91亚洲成人 | 亚洲午夜在线 | 亚洲啊v在线 | 在线a电影 | 精品91久久久 | 男女深夜网站 | 午夜激情影院 | 国产综合视频在线播放 | 欧美一区二区免费 | 国产一区二区三区免费播放 | 91精品欧美久久久久久久 | 91亚洲精品一区 | 中文字幕日韩欧美 | 人人av在线 | 精品成人免费视频 | 黄色一级电影 | 成年人在线视频播放 | 亚洲成人av在线 | 国产三级久久久久 | 色8久久| 国产乡下妇女做爰视频 | 成人超碰在线 | 国产人成精品一区二区三 | 理论片一区 | 亚洲免费观看视频 | 亚洲一区在线免费观看 | 中文字幕国产区 | 日韩一区二区在线视频 | 伊人免费观看视频 | 亚洲成人激情在线观看 | 久久精品二 | 久久视频一区 | 久久天堂| 国产精品久久久久久久久久久不卡 | 免费观看一区二区三区毛片 | 午夜激情视频在线观看 | 国产伦精品一区二区 | 国产精品一卡二卡三卡 | av在线播放国产 | 毛片网站在线观看 | а天堂中文最新一区二区三区 | 日韩一二三区在线观看 | 天天射日日操 | 在线观看精品自拍私拍 | 三级色网站| 国产精品久久久一区二区三区 | 国产91免费在线 | 精品久久久成人 | 欧美亚洲啪啪 | 日韩成人免费av | 色婷婷综合久久久久中文一区二区 | 久久麻豆 | 蜜臀一区| 国产一区二区视频精品 | 国产精品一区av | 亚洲综合无码一区二区 | 天天综合天天色 | 韩日精品视频 | 一区二区中文字幕 | 中文字幕99 | 精品美女在线 | 成人一级片在线观看 | 久久国产精品免费一区二区三区 | 亚洲777 | 日韩毛片免费在线观看 | 国产日韩免费 | 看片国产 | 视频一区在线播放 | 成人综合视频在线 | 国产精品欧美久久久久一区二区 | 日本伊人网站 | 国产精品久久久久久久午夜片 | 一级片欧美| 97视频精品 | 日本在线一区二区 | 亚洲国产精品一区二区第一页 | 国产高清精品一区二区三区 | 色综合色综合网色综合 | 日韩成人av在线 | 91精品福利| 91在线一区二区 | 亚洲激情一区二区 | 一区二区中文字幕 | 亚洲 欧美 另类 综合 偷拍 | av免费网站在线观看 | 国产精品久久久久久久久免费 | 1区2区3区视频 | 日本久久国产 | 国产精品国产三级国产aⅴ 精品91 | 国产精品99一区二区三区 | 日本xxx性| 最新日韩免费 | 黄色片毛片 | 成人片免费看 | 成人国产免费视频 | 五月天婷婷激情视频 | 久久亚洲二区 | 亚洲欧美精品一区二区三区 | 国产精品久久久久久影院8一贰佰 | 国产精一区 | 亚洲一区精品在线 | 国产在线高清视频 | 91资源在线观看 | 伦乱视频| 99精品欧美一区二区蜜桃免费 | 黄色毛片在线看 | 欧美激情视频一区二区三区在线播放 | 亚洲精品一区二三区不卡 | 久久人体视频 | 欧美国产视频一区 | 午夜在线观看视频网站 | 久久综合成人精品亚洲另类欧美 | 羞羞视频免费观看网站 | 四虎永久免费 | 久久久久久久久久久久久久久久久久久 | 国产日韩欧美在线 | 在线视频久 | 天堂资源在线 | 欧洲亚洲视频 | 欧美一级片免费播放 | 日韩精品久久 | 伊人色综合久久久天天蜜桃 | 久草国产视频 | 亚洲免费成人av | 久久视频一区 | 国产精品二区三区 | 91视频三区 | 亚洲免费成人 | 国产成人免费视频网站视频社区 | av成人在线观看 | 日本一区二区三区视频免费看 | 精品一区二区在线观看 | 国产成人在线免费观看视频 | 久久aⅴ国产欧美74aaa | h网站在线观看 | 国产一区二 | 亚洲成人免费影院 | 91精品国产色综合久久 | 久久久精品日韩 | 91影院在线观看 | 成人午夜影院 | 国产激情精品一区二区三区 | 午夜视频在线观看网站 | 欧美日一区 | 成av在线 | 日本一区二区三区免费观看 | 亚洲一二三 | 天堂影院一区二区 | 欧美aaaaa | 99re视频| 成人在线国产 | 久久伊人亚洲 | 国产福利一区二区 | 国产91富婆养生按摩会所 | 欧美日韩一 | 久久免费黄色网址 | 在线观看一区 | 国产一区免费在线观看 | 国产小视频在线观看 | 丁香久久| 国产精品99精品久久免费 | 国内精品在线视频 | 99精品免费视频 | 成人在线观看av | 亚洲精品免费看 | 亚洲精品日韩激情在线电影 | 一区二区免费视频观看 | 成人精品视频一区二区三区 | 国产精品久久嫩一区二区 免费 | 日韩一区在线视频 | 国内久久| 欧美精品不卡 | 久久婷婷视频 | 亚洲国产精品第一区二区 | 日韩精品免费在线视频 | 国产综合区 | 男女羞羞羞视频午夜视频 | 麻豆精品国产91久久久久久 | www.av在线 | 久久久久久久久99精品 | 成人在线免费 | 一级黄色录像毛片 | 午夜视频在线观看网站 | 大胆裸体gogo毛片免费看 | 暖暖成人免费视频 | 国产传媒视频 | 羞羞视频免费在线观看 | 日韩国产在线看 | 久久69精品久久久久久久电影好 | 欧美日韩一区二区三区视频 | 免费在线观看毛片网站 | 精品96久久久久久中文字幕无 | 麻豆毛片 | 久久91精品| 一区二区精品在线 | 午夜天堂精品久久久久 | 久久久91精品国产一区二区三区 | 国产精品极品美女在线观看免费 | 午夜精品久久久 |