count(1)count(*)count(col)の違いと性能を分析する
1685 ワード
count(1)とcount(*)には何の違いもなく(実行計画と統計)、すべての行count(col)統計col列が空ではない記録を統計し、インデックスがあればcolが空であるかどうかにかかわらずインデックスを移動でき、インデックスがなければテストを実行できません
hr@ORCL> select count(1) from t;
Execution Plan
----------------------------------------------------------
Plan hash value: 2966233522
-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 159 (2)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T | 50356 | 159 (2)| 00:00:02 |
-------------------------------------------------------------------
hr@ORCL> select count(*) from t;
Execution Plan
----------------------------------------------------------
Plan hash value: 2966233522
-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 159 (2)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T | 50356 | 159 (2)| 00:00:02 |
-------------------------------------------------------------------