教学文章
Technology Exchange
热门课程
400电话

免费咨询热线
400-090-9964

教学文章

Oracle之count(1) count(*) count(col)区别

时间:2017-07-17 来源:

  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 |

  -------------------------------------------------------------------

  (以上内容摘于网络,如有侵权,请告之,将第一时间删除)

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院