檢視執行計劃的常用方法
1.autotrace
set autotrace off
不產生autotrace報告,預設值
set autotrace on explain
autotrace報告只展示最優的執行方式(optimizer execution path)
SQL> set autotrace on explain;
—插入資料測試是否執行了sql
SQL> insert into scott.emp values('5566','explain','','','','','','');
1 row created.
—已經表明執行了sql
—只展示了執行計劃
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| ss00:00:01 |
| 1 | LOAD TABLE CONVENTIONAL | EMP | | | | |
---------------------------------------------------------------------------------
SQL> select * from scott.emp whereempno=5566;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ------------------- ---------- ---------- ----------
5566 explain
Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1| 87 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 87 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
2- access("EMPNO"=5566)
set autotrace on statistics
autotrace報告sql執行統計資訊(SQL statement execution statistics. )
SQL> set autotrace on statistics;
SQL> insert into scott.empvalues('6677','statistics','','','','','','');
1 row created.
—說明執行了sql
—只展示sql執行的統計資訊
Statistics
----------------------------------------------------------
52 recursive calls
5 dbblock gets
80 consistent gets
0 physical reads
520 redo size
839 bytes sent via SQL*Net to client
826 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
10 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select * from scott.emp whereempno=6677;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ------------------- ---------- ---------- ----------
6677 statistics
Statistics
----------------------------------------------------------
1 recursive calls
0 dbblock gets
2 consistent gets
0 physical reads
0 redosize
869 bytes sent via SQL*Net to client
512 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
set autotrace on
autotrace報告包含了最優執行方式和sql執行的資訊
SQL> set autotraceon;
SQL> insert into scott.emp values('8899','on','','','','','','');
1 row created.
—相當於set autotrace on explain和set autotrace on statistics的和,既輸出執行計劃,也輸出統計資訊,同時也執行sql
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
| 1 | LOAD TABLE CONVENTIONAL | EMP | | | | |
---------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
45 recursive calls
5 dbblock gets
77 consistent gets
0 physical reads
512 redo size
839 bytes sent via SQL*Net to client
816 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
10 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select * from scott.emp whereempno=8899;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ------------------- ---------- ---------- ----------
8899 on
Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1| 87 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 87 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
2- access("EMPNO"=8899)
Statistics
----------------------------------------------------------
9 recursive calls
0 db blockgets
18 consistent gets
0 physical reads
0 redosize
861 bytes sent via SQL*Net to client
512 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
set autotrace traceonly
和set autotrace on類似,但是不輸出使用者查詢的結果
SQL> set autotrace traceonly;
SQL> insert into scott.empvalues('9900','traceonly','','','','','','');
1 row created.
—與set autotrace on 類似,都會輸出執行計劃和統計資訊
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
| 1 | LOAD TABLE CONVENTIONAL | EMP | | | | |
---------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
108 recursive calls
5 dbblock gets
191 consistent gets
1 physical reads
520 redo size
839 bytes sent via SQL*Net to client
825 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
15 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select * from scott.emp whereempno=9900;
—與set autotrace on不同的是,沒有輸出查詢結果
Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1| 87 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 87 | 2 (0)| 00:00:01 |
|* 2 | INDEXUNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
2- access("EMPNO"=9900)
Statistics
----------------------------------------------------------
9 recursive calls
0 dbblock gets
18 consistent gets
0 physical reads
0 redosize
867 bytes sent via SQL*Net to client
512 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL>
2.dbms_xplan
概述
dbms_xplan包提供了多樣的,預定義的方式去解釋執行計劃。sql執行計劃,執行時間等資訊都儲存與v$sql_plan,v$sql_plan_statistics_all檢視中。此包執行的許可權是執行使用者,不是包的擁有者sys。
當執行display_awr時,需要DBA_HIST_SQL_PLAN, DBA_HIST_SQLTEXT, andV$DATABASE的查詢許可權
當執行display_cursor時需要V$SQL_PLAN, V$SESSION and V$SQL_PLAN_STATISTICS_ALL的查詢許可權
當執行display_sql_plan_baseline時,需要DBA_SQL_PLAN_BASELINES的查詢許可權
當執行display_sqlset時,需要ALL_SQLSET_STATEMENTS and ALL_SQLSET_PLANS的查詢許可權
以上的所有許可權都在SELECT_CATALOG角色中,所以直接賦權SELECT_CATALOG就可以了。
dbms_xplan中有許多功能,我這裡著重研究其中幾個常用的
SQL> desc dbms_xplan;
…
FUNCTION DISPLAY_AWR RETURNSDBMS_XPLAN_TYPE_TABLE
Argument Name Type In/Out Default?
----------------------------------------------------- ------ --------
SQL_ID VARCHAR2 IN
PLAN_HASH_VALUE NUMBER(38) IN DEFAULT
DB_ID NUMBER(38) IN DEFAULT
FORMAT VARCHAR2 IN DEFAULT
FUNCTION DISPLAY_CURSOR RETURNS DBMS_XPLAN_TYPE_TABLE
Argument Name Type In/Out Default?
----------------------------------------------------- ------ --------
SQL_ID VARCHAR2 IN DEFAULT
CURSOR_CHILD_NO NUMBER(38) IN DEFAULT
FORMAT VARCHAR2 IN DEFAULT
FUNCTION DISPLAY_PLAN RETURNS CLOB
Argument Name Type In/Out Default?
----------------------------------------------------- ------ --------
TABLE_NAME VARCHAR2 IN DEFAULT
STATEMENT_ID VARCHAR2 IN DEFAULT
FORMAT VARCHAR2 IN DEFAULT
FILTER_PREDS VARCHAR2 IN DEFAULT
TYPE VARCHAR2 IN DEFAULT
…
dbms_xplan.display
展示執行計劃內容
簡單的執行一次display
SQL> explain plan for insert intoscott.emp values(1111,'xplan','','','','','','');
Explained.
SQL> select * from table(dbms_xplan.display);
7 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 2137789089
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8168 | 16336 | 29 (0)| 00:00:01 |
| 1 | COLLECTION ITERATOR PICKLER FETCH| DISPLAY | 8168 | 16336 | 29 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
1890 recursive calls
40 dbblock gets
3635 consistent gets
0 physical reads
0 redosize
1102 bytes sent via SQL*Net toclient
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
38 sorts (memory)
0 sorts (disk)
7 rowsprocessed
SQL> select * from scott.emp whereempno=1111;
no rows selected
—explain plan for ,dbms_xplan.display都沒有執行sql。explain plan for是產生sql的執行計劃並儲存在PLAN_TABLE表中,dbms_xplan.display從PLAN_TABLE中提取計劃並展示出來。
定義
DBMS_XPLAN.DISPLAY(
table_name IN VARCHAR2 DEFAULT 'PLAN_TABLE',
statement_id IN VARCHAR2 DEFAULT NULL,
format IN VARCHAR2 DEFAULT 'TYPICAL',
filter_preds IN VARCHAR2 DEFAULT NULL);
table_name:指定的是計劃的儲存表表名(不是執行表的表名)。預設是PLAN_TABLE。
statement_id:指定計劃的statement_id,如果沒有指定,則該值為explain plan的statement_id , 如果沒有expain plan,則該值為最近一次解釋的執行計劃。
format:解釋計劃的level
• BASIC: Displays the minimum information inthe plan—the operation ID, the operation name and its option.展示最少的資訊
• TYPICAL: This is the default. Displays themost relevant information in the plan (operation id, name and option, #rows,#bytes and optimizer cost). Pruning, parallel and predicate information areonly displayed when applicable. Excludes only PROJECTION, ALIAS and REMOTE SQLinformation (see below).預設值
• SERIAL: Like TYPICAL except that theparallel information is not displayed, even if the plan executes in parallel.沒有併發資訊
• ALL: Maximum user level. Includesinformation displayed with the TYPICAL level with additional information(PROJECTION, ALIAS and information about REMOTE SQL if the operation isdistributed).展示最多的資訊,包含了分散式操作的遠端sql執行資訊
filter_preds:sql過濾,限制從計劃表中返回的行。
dbms_xplan.display_awr
展示在awr中儲存的sql的執行計劃
定義
DBMS_XPLAN.DISPLAY_AWR(
sql_id IN VARCHAR2,
plan_hash_value IN NUMBER DEFAULT NULL,
db_id IN NUMBER DEFAULT NULL,
format IN VARCHAR2 DEFAULT TYPICAL);
sql_id:在dba_hist_sqltext中可以找到sql_id
plan_hash_value:sql執行計劃的hash值。如果該值被忽略,則函式返回sql_id中的所有執行計劃
db_id:database_id。如果不知道則該值為V$DATABASE檢視中的database_id,也就是本地資料庫。
format:與display類似。總共有4個level:BASIC,TYPICAL,SERIAL,ALL。
SQL> select * from scott.emp whererownum<=1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ------------------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
—手動生成快照
SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
PL/SQL procedure successfully completed.
SQL> select sql_id,sql_text from dba_hist_sqltext where sql_text like '%rownum%';
bd3tcy3ar02px
select * from scott.emp where rownum<=1
SQL>
—指定awr中存在sql
SQL> select * fromtable(dbms_xplan.display_awr('bd3tcy3ar02px'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID bd3tcy3ar02px
--------------------
select * from scott.emp where rownum<=1
Plan hash value: 1973284518
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)| |
| 1 | COUNT STOPKEY | | | | | |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 2 | TABLE ACCESS FULL| EMP | 15 | 1305 | 2 (0)| 00:00:01 |
---------------------------------------------------------------------------
Note
-----
-dynamic sampling used for this statement (level=2)
18 rows selected.
SQL>
dbms_xplan.display_cursor
展示cursor中的執行計劃
定義
DBMS_XPLAN.DISPLAY_CURSOR(
sql_id IN VARCHAR2 DEFAULT NULL,
cursor_child_no IN NUMBER DEFAULT 0,
format IN VARCHAR2 DEFAULT ‘TYPICAL');
sql_id
cursor_child_no:子游標標誌。如果沒有指定,則展示sql_id下的所有執行計劃
format 展示方式
預設值執行
SQL> select * from scott.emp whererownum<=2;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ------------------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300
30
—預設查詢了當前session最後一次執行sql
SQL> select * fromtable(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 90ud69jbjz75c,child number 0
-------------------------------------
select * from scott.emp where rownum<=2
Plan hash value: 1973284518
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)| |
|* 1 | COUNT STOPKEY | | | | | |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 2 | TABLE ACCESS FULL| EMP | 15 | 1305 | 2 (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
1- filter(ROWNUM<=2)
Note
-----
-dynamic sampling used for this statement (level=2)
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
23 rows selected.
SQL>
指定sql_id查詢plan,首先要找到sql_id
SQL> select sql_id,sql_text fromv$sqlarea where sql_text like '%rownum<=2%';
SQL_ID
-------------
SQL_TEXT
--------------------------------------------------------------------------------
75gpskbx0uk8w
select sql_id,sql_text from v$sqlarea wheresql_text like '%rownum<=2%'
90ud69jbjz75c
select * from scott.emp where rownum<=2
SQL> select * fromtable(dbms_xplan.display_cursor('90ud69jbjz75c'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 90ud69jbjz75c,child number 0
-------------------------------------
select * from scott.emp where rownum<=2
Plan hash value: 1973284518
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)| |
|* 1 | COUNT STOPKEY | | | | | |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 2 | TABLE ACCESS FULL| EMP | 15 | 1305 | 2 (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
1- filter(ROWNUM<=2)
Note
-----
-dynamic sampling used for this statement (level=2)
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
23 rows selected.
如果sql不在記憶體中,則不能通過cursor方式查詢
SQL> select * fromtable(dbms_xplan.display_cursor('90ud69jbjz75c'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID: 90ud69jbjz75c, child number: 0cannot be found
這時就可以通過生成快照的方式從awr中查詢plan
3.10046事件
概述
這是一個特殊的事件,可以被用來發起sql_trace類的活動
使用10046的優勢就是可以在trace檔案中看到詳細的資料庫活動細節,細節資訊也取決於事件的level。
level
1:標準的sql_trace
4:level 1加上繫結變數 [ bind=true ]
8:levle 1加上等待。在定位等待事件的時候很有用 [ wait=true ]
12:常用的level,包含了level 1,繫結變數,等待,預設stat line。相當於(4+8)
16:每次執行都生成stat line。11g新增。 [ plan_stat=all_executions ]
32:不生成執行統計。11g新增 。[ plan_stat=never ]
64:Adaptive dump of STAT lines. This dumps the STATinformation if a SQL took more than about 1 minute thereby giving informationfor the more expensive SQLs and for different executions of such SQLs。11gR2新增。 [ plan_stat=adaptive ]
使用10046事件
session級追蹤
—檢視trace的位置
SQL> show parameter user_dump_dest
NAME TYPE VALUE
----------------------------------------------- ------------------------------
user_dump_dest string /u01/app/oracle/diag/rdbms/zld
b/zldb/trace
—tracefile標誌
SQL> alter session settracefile_identifier='liuzhilong';
Session altered.
—開啟10046
SQL> alter session set events '10046trace name context forever,level 12';
Session altered.
SQL> select * from scott.emp whererownum<=1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ------------------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
SQL>
退出sqlplus(session級)或者使用以下語句關閉事件
alter session set events '10046 trace namecontext off’;
[[email protected] Desktop]# cd/u01/app/oracle/diag/rdbms/zldb/zldb/trace/
[[email protected] trace]# ls *liu*
zldb_ora_2990_liuzhilong.trc zldb_ora_2990_liuzhilong.trm
使用oradebug工具
SQL> oradebug setmypid
Statement processed.
SQL> oradebug event 10046 trace name context forever, level 12;
Statement processed.
SQL> select ename from scott.emp whererownum<=1;
ENAME
----------
SMITH
SQL> oradebug tracefile_name;
/u01/app/oracle/diag/rdbms/zldb/zldb/trace/zldb_ora_2990.trc
SQL>
參考文件
AUTOTRACE Option inSQL*Plus (文件 ID 43214.1)
Display Execution Plans withDBMS_XPLAN.DISPLAY (文件 ID 236026.1)
Using DBMS_XPLAN.DISPLAY_CURSOR toIdentify Bind Values Used During Parse (文件 ID 416324.1)
EVENT: 10046 "enable SQL statementtracing (including binds/waits)" (文件 ID 21154.1)
* How To Collect 10046 Trace (SQL_TRACE)Diagnostics for Performance Issues (文件 ID 376442.1)
相關推薦
檢視執行計劃的常用方法
1.autotraceset autotrace off不產生autotrace報告,預設值set autotrace on explainautotrace報告只展示最優的執行方式(optimizer execution path)SQL> set autotrace
Oracle之SQL優化專題01-檢視SQL執行計劃的方法
在我2014年總結的“SQL Tuning 基礎概述”中,其實已經介紹了一些檢視SQL執行計劃的方法,但是不夠系統和全面,所以本次SQL優化專題,就首先要系統的介紹一下檢視SQL執行計劃的方法。 本文示例SQL為: --set lines 1000 pages 1000 select a.emp
檢視執行計劃的6種方法
1、explain plan for :如果某SQL執行非常長時間才會出結果,甚至慢到返回不了結果,這時候看執行計劃就只能用方法1,或者方法4; 缺點:沒有輸出執行時的相關統計資訊(產生多少邏輯讀,多少次遞迴呼叫,多少次物理讀的情況),無法判斷是處理了多少行,無法判
簡單對比檢視執行計劃的兩種方法EXPLAIN PLAN 和 AUTOTRACE
EXPLAIN PLAN 和 AUTOTRACE 都可以檢視執行計劃。 值得一提的是:前者只是優化器通過讀取資料字典的統計資訊做出'最佳'訪問路徑判斷,並沒有真正去執行語句;後者是實際去執行了SQL語句,同時把訪問記錄數、執行計劃、統計資訊等打印出來。 下面粘出實驗結果加以
Oracle之SQL優化專題02-穩固SQL執行計劃的方法
首先構建一個簡單的測試用例來實際演示: create table emp as select * from scott.emp; create table dept as select * from scott.dept; create index idx_emp_empno on emp(empno);
守護執行緒和執行緒常用方法
執行緒的守護的使用,形式與程序基本相同 from threading import Thread import time def task(): print("子執行緒 開始工作") time.sleep(2) print("子執行緒 結束工作") t1 = Thread(
使用10046檢視執行計劃並讀懂trace檔案
轉自:https://blog.csdn.net/dataminer_2007/article/details/42040853 檢視 sql 執行計劃的方法有許多種, 10046 事件就是其中的一種. 與其他檢視 sql 執行計劃不同, 當我們遇到比較複雜的 sql 語句, 我們可以通過 10
mysql 獲取執行計劃的方法
mysql 獲取執行計劃方法:1.通過explain進行檢視sql的執行計劃;2.通執行緒正在執行的sql檢視該sql的執行計劃; explain進行檢視sql的執行計劃相對簡單,其實通執行緒正在執行的sql檢視執行計劃也很簡單,那麼為什麼還需要第二種方式呢? 因為日常工作會發現很多sql一直在執
執行緒第四課——執行緒常用方法
這節課我們來講講執行緒常用的方法,還是看API文件加寫程式碼演示: 以下是Thread類的常用方法 以下是Object類中和執行緒有關的方法:
池與執行緒池 技術點 目錄 1. 執行緒池作用: 提升效能 1 2. 使用流程 1 3. 執行緒與執行緒池的監控 jvisual 1 4. 執行緒常用方法 2 5. 執行緒池相關概念 2 5.1. 佇列
池與執行緒池 技術點 目錄 1. 執行緒池作用: 提升效能 1 2. 使用流程 1 3. 執行緒與執行緒池的監控 jvisual 1 4. 執行緒常用方法 2 5. 執行緒池相關概念 2 5.1. 佇列 &n
Oracle 如何檢視執行計劃
定義:用來執行目標SQL語句的這些步驟的組合就被稱為執行計劃。 oracle檢視執行計劃的幾種方式: 1、explain plan命令(可能不準確,SQL語句沒有實際執行是個估計值) --語法:explain plan for 目標sql explain pla
ORACLE資料庫檢視執行計劃
TKPROF: Release 10.2.0.1.0 - Production on 星期三 5月 23 16:56:41 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Trace file: D:\ORACLE\PRODUCT\1
JAVA多執行緒機制第四彈:(末篇)執行緒常用方法總結和執行緒同步
執行緒的常用方法: 這裡我覺得這個老師的教案總結的很舒胡(主要是懶~): 執行緒同步: 在處理多執行緒問題時,有一個Bug問題啊:當兩個或多個執行緒同時訪問一個父類變數時,並且一個執行緒需要修改這個變數,(一個執行緒讓變數A增加,另一個執行緒讓變數A減少)。 所
DB2中如何檢視執行計劃
[email protected]:~$ db2 "flush package cache dynamic" DB20000I The SQL command completed successfully.' [email protected]:~$ db2 "SELECT NAME
查詢分析器裡檢視執行計劃
當需要分析某個查詢的效能時,最好的方式之一檢視這個查詢的執行計劃。執行計劃描述SQL Server查詢優化器如何實際執行(或者將會如何執行)一個特定的查詢。 檢視查詢的執行計劃有幾種不同的方式。它們包括: SQL Server查詢分析器裡有一個叫做”顯示實際執行計劃”的
多執行緒常用方法統計
currentThread(): currentThread()方法可返回程式碼段正在被那個執行緒呼叫的資訊。 isAlive(): 方法isAlive()的功能是判斷當前的執行緒是否處於活動狀態。 sleep(): 在指定的毫秒數內讓當前“正在執行的執行緒”休眠(暫停執
Oracle 檢視執行計劃
-- Start EXPLAIN PLAN 我們可以通過 EXPLAIN PLAN 語句生成執行計劃,該語句把執行計劃儲存到一個叫做 PLAN_TABLE 的表中,我們可以通過查詢這個表來檢視執行計劃。下面是一個簡單例子。 -- 生成執行計劃 EXPLAIN PLAN
清除SQL Server資料快取和執行計劃快取,檢視執行計劃的各種方式對比
清除資料和執行計劃快取: DBCC DROPCLEANBUFFERSDBCC FREEPROCCACHE 開啟統計資料: SET STATISTICS IO ON SET STATISTICS TIME ON 開啟執行計劃: SET SHOWPLAN_TEXT ONSET S
sybase 檢視執行計劃
檢視語句的執行計劃: set showplan on set noexec on go select ....... go set showplan off set noexec off go 檢視儲存過程執行計劃: set showplan on
J2SE第九章——執行緒(常用方法)
3 狀態轉換 建立執行緒物件 new--> 執行緒啟動,進入就緒狀態 start() 等CPU空閒 ---->run()方法真正開始執行 ----> 阻塞執行緒,繼續進入就緒(準備)狀態 ---->