表的連線順序是否很重要
SQL> create table tab_big as select * from dba_objects where rownum<=30000;
create table tab_small as select * from dba_objects where rownum<=10;
Table created.
Elapsed: 00:00:00.34
SQL>
Table created.
Elapsed: 00:00:00.06
SQL> set autotrace traceonly
set linesize 1000
set timing on SQL> SQL>
SQL>
SQL> select count(*) from tab_big,tab_small where tab_big.object_id=tab_small.object_id;
Elapsed: 00:00:00.23
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_BIG"."OBJECT_ID"="TAB_SMALL"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
12 recursive calls
0 db block gets
497 consistent gets
422 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_BIG"."OBJECT_ID"="TAB_SMALL"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
424 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select count(*) from tab_big,tab_small where tab_small.object_id=tab_big.object_id;
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_SMALL"."OBJECT_ID"="TAB_BIG"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
7 recursive calls
0 db block gets
491 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.02
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_SMALL"."OBJECT_ID"="TAB_BIG"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
424 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select /*+rule*/ count(*) from tab_big,tab_small ;
Elapsed: 00:00:00.06
Execution Plan
----------------------------------------------------------
Plan hash value: 41936691
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_SMALL |
| 4 | TABLE ACCESS FULL| TAB_BIG |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
4213 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 41936691
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_SMALL |
| 4 | TABLE ACCESS FULL| TAB_BIG |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4213 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select /*+rule*/ count(*) from tab_small,tab_big ;
Elapsed: 00:00:00.12
Execution Plan
----------------------------------------------------------
Plan hash value: 2127005654
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_BIG |
| 4 | TABLE ACCESS FULL| TAB_SMALL |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
90421 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.10
Execution Plan
----------------------------------------------------------
Plan hash value: 2127005654
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_BIG |
| 4 | TABLE ACCESS FULL| TAB_SMALL |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
90421 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
-----連線方式 巢狀迴圈連線(NL)
SQL> select /*+USE_NL(tab_big) */ count(*) from tab_big,tab_small
2 ;
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 41936691
-------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1179 (1)| 00:00:15 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | NESTED LOOPS | | 287K| 1179 (1)| 00:00:15 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 118 (1)| 00:00:02 |
-------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
9 recursive calls
0 db block gets
4280 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select /*+USE_NL(tab_small) */ count(*) from tab_big,tab_small ;
Elapsed: 00:00:00.04
Execution Plan
----------------------------------------------------------
Plan hash value: 177389953
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1179 (1)| 00:00:15 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | MERGE JOIN CARTESIAN| | 287K| 1179 (1)| 00:00:15 |
| 3 | TABLE ACCESS FULL | TAB_SMALL | 10 | 3 (0)| 00:00:01 |
| 4 | BUFFER SORT | | 28743 | 1176 (1)| 00:00:15 |
| 5 | TABLE ACCESS FULL | TAB_BIG | 28743 | 118 (1)| 00:00:02 |
---------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
7 recursive calls
0 db block gets
491 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1 rows processed
結論:原來表連線順序的說法早就過時了,那是基於規則的時代,現在我們是基於代價的。hash 連線方式要比nl 、MERGE要好
create table tab_small as select * from dba_objects where rownum<=10;
Table created.
Elapsed: 00:00:00.34
SQL>
Table created.
Elapsed: 00:00:00.06
SQL> set autotrace traceonly
set linesize 1000
set timing on SQL> SQL>
SQL>
SQL> select count(*) from tab_big,tab_small where tab_big.object_id=tab_small.object_id;
Elapsed: 00:00:00.23
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_BIG"."OBJECT_ID"="TAB_SMALL"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
12 recursive calls
0 db block gets
497 consistent gets
422 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_BIG"."OBJECT_ID"="TAB_SMALL"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
424 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select count(*) from tab_big,tab_small where tab_small.object_id=tab_big.object_id;
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_SMALL"."OBJECT_ID"="TAB_BIG"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
7 recursive calls
0 db block gets
491 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.02
Execution Plan
----------------------------------------------------------
Plan hash value: 3126178707
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 122 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
|* 2 | HASH JOIN | | 10 | 260 | 122 (0)| 00:00:02 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 130 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 364K| 119 (0)| 00:00:02 |
---------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("TAB_SMALL"."OBJECT_ID"="TAB_BIG"."OBJECT_ID")
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
424 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select /*+rule*/ count(*) from tab_big,tab_small ;
Elapsed: 00:00:00.06
Execution Plan
----------------------------------------------------------
Plan hash value: 41936691
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_SMALL |
| 4 | TABLE ACCESS FULL| TAB_BIG |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
4213 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 41936691
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_SMALL |
| 4 | TABLE ACCESS FULL| TAB_BIG |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4213 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select /*+rule*/ count(*) from tab_small,tab_big ;
Elapsed: 00:00:00.12
Execution Plan
----------------------------------------------------------
Plan hash value: 2127005654
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_BIG |
| 4 | TABLE ACCESS FULL| TAB_SMALL |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
90421 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
Elapsed: 00:00:00.10
Execution Plan
----------------------------------------------------------
Plan hash value: 2127005654
-----------------------------------------
| Id | Operation | Name |
-----------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL| TAB_BIG |
| 4 | TABLE ACCESS FULL| TAB_SMALL |
-----------------------------------------
Note
-----
- rule based optimizer used (consider using cbo)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
90421 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
-----連線方式 巢狀迴圈連線(NL)
SQL> select /*+USE_NL(tab_big) */ count(*) from tab_big,tab_small
2 ;
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 41936691
-------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1179 (1)| 00:00:15 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | NESTED LOOPS | | 287K| 1179 (1)| 00:00:15 |
| 3 | TABLE ACCESS FULL| TAB_SMALL | 10 | 3 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL| TAB_BIG | 28743 | 118 (1)| 00:00:02 |
-------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
9 recursive calls
0 db block gets
4280 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select /*+USE_NL(tab_small) */ count(*) from tab_big,tab_small ;
Elapsed: 00:00:00.04
Execution Plan
----------------------------------------------------------
Plan hash value: 177389953
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1179 (1)| 00:00:15 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | MERGE JOIN CARTESIAN| | 287K| 1179 (1)| 00:00:15 |
| 3 | TABLE ACCESS FULL | TAB_SMALL | 10 | 3 (0)| 00:00:01 |
| 4 | BUFFER SORT | | 28743 | 1176 (1)| 00:00:15 |
| 5 | TABLE ACCESS FULL | TAB_BIG | 28743 | 118 (1)| 00:00:02 |
---------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
7 recursive calls
0 db block gets
491 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1 rows processed
結論:原來表連線順序的說法早就過時了,那是基於規則的時代,現在我們是基於代價的。hash 連線方式要比nl 、MERGE要好
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30345407/viewspace-2150361/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 外連線與連線順序
- 詳解表連線順序和連線方式是否影響查詢結果
- 線性表的使用——順序實現
- 資料結構 - 線性表 - 順序表資料結構
- 線性表的順序儲存-順序表,對“突然的自我”的否定,對自我的揚棄
- 順序表
- 線性表順序儲存優缺點,線性連結串列的優缺點
- Oracle確定連線方式的優先順序Oracle
- 考研資料結構-線性表-順序表資料結構
- 線性表-順序表C語言實現C語言
- 11 線性表的順序儲存結構
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- 線性表之順序儲存結構
- 順序表的堆排序排序
- 順序表的學習
- 順序表的實現
- 靜態順序表和動態順序表 對比
- 線性表的順序儲存C++程式碼C++
- RULE模式下是否FROM列表順序決定驅動表模式
- java字串連線和運算子優先順序Java字串
- 第2章 順序表及其順序儲存
- Laravel 的佇列的任務連結是否保證了消費順序?Laravel佇列
- 資料結構:線性表的順序實現2.2資料結構
- [RDMA] RDMA的不同操作是否保證順序?
- php與資料庫連線如何實現資料的順序和倒序PHP資料庫
- 資料結構與演算法 | 線性表 —— 順序表資料結構演算法
- 線性表的順序儲存C++程式碼實現C++
- Java實現順序表Java
- [20160219]關於連線順序.txt
- 陣列與連結串列等順序表逆置薦陣列
- css中連結偽類的順序CSS
- in子查詢與表連線是否等價?
- 【資料結構與演算法學習】線性表(順序表、單連結串列、雙向連結串列、迴圈連結串列)資料結構演算法
- 演算法題———————輸入棧的入棧順序和出棧順序判斷是否合理演算法
- 順序表有序插入資料
- DS順序表--類實現
- Hashtable中put進去的物件是否保持put的順序物件