`
weilJava
  • 浏览: 70041 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

【转】count(*) 与 count(1)的效率问题(Oracle)

 
阅读更多
当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!从执行计划来看,count(1)和count(*)的效果是一样的。
但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。
这个也与表的记录数多少有关!如果1w以外的数据量,做过表分析之后,反而count(1)的用时比count(*)多了。另外,当数据量达到10w多的时候,使用count(1)要比使用count(*)的用时稍微少点!如果你的数据表没有主键,那么count(1)比count(*)快
如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快
如果你的表只有一个字段的话那count(*)就是最快的啦
count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
因为count(*),自动会优化指定到那一个字段。所以没必要去count(1),用count(*),sql会帮你完成优化的 
因此:count(1)和count(*)基本没有差别!sql调优,主要是考虑降低:consistent gets和physical reads的数量。

如果null参与聚集运算,则除count(*)之外其它聚集函数都忽略null.

如:
  ID DD
  1 e
  2 null
  select count(*) from table --结果是2

  select count(DD) from table ---结果是1

也可以Tom的网站讨论的结果:

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1156151916789

结论是不相上下。

个人认为count(*)好些。

链接:http://www.huomo.cn/database/article-18dbf.html
分享到:
评论

相关推荐

    为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)1

    `COUNT(常量)`,例如`COUNT(1)`,虽然在某些数据库系统中与`COUNT(*)`的行为相似,但并不完全相同。它通常被视为一个非空表达式,因此与`COUNT(*)`一样,会计算所有行。然而,不是所有的数据库系统都会对`COUNT(常量...

    达梦和oracle的差异说明

    ### 达梦与Oracle的主要差异 #### 一、字段名处理差异 在处理字段名时,达梦数据库和Oracle有着显著的区别。对于字段名的大小写敏感性问题,两者采用了不同的处理方式: - **达梦数据库**:支持字段名的大小写...

    解决Oracle分页查询中排序与效率问题

    ### 解决Oracle分页查询中排序与效率问题 在Oracle数据库中进行分页查询时,经常会出现性能瓶颈,尤其是在处理大数据量的情况下。本篇文章将详细探讨如何优化Oracle分页查询中的排序与效率问题。 #### 一、理解...

    Oracle与Sql-Server函数对照.docx

    - **Oracle** & **SQL Server**: `COUNT` - 作用:统计行数或非NULL值的数量。 3. **最大值** - **Oracle** & **SQL Server**: `MAX` - 作用:返回列中的最大值。 4. **最小值** - **Oracle** & **SQL Server...

    大型数据库技术-实验二 Oracle SQL PLUS环境与查询.doc

    【大型数据库技术-实验二 Oracle SQL PLUS环境与查询】 实验主要涵盖了Oracle数据库系统中的SQL*PLUS工具的使用以及SQL查询语言的基本操作。SQL*PLUS是Oracle数据库管理系统的命令行界面,用于执行SQL语句和PL/SQL...

    oracle与sqlserver函数对比

    - **Oracle** 和 **SQL Server** 支持 `MAX`, `MIN`, `SUM`, `AVG`, `COUNT` 等聚合函数,用于对一组数据进行汇总统计。 ### 五、字符串函数 - **Oracle** 和 **SQL Server** 提供了丰富的字符串函数,如 `ASCII`, ...

    MySQL常见面试题(表连接类型,count(*),count(列),count(1)的区别,索引,存储引擎,锁,优化)

    - **COUNT(1)**:在InnoDB引擎中,与COUNT(*)性能相似,都用于统计行数,包括NULL值。但在某些场景下,如统计非空特定列,COUNT(列)会更快,因为它仅计算特定列的非NULL值。 3. **索引** - **聚集索引(Clustered...

    【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)等

    BLOG_Oracle_lhr_【优化】COUNT(1)、COUNT()、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名).pdf

    Oracle与MYSQL的几点区别

    - **MySQL**与**Oracle**: - 两者都支持使用`LIKE`进行模糊查询。 - 示例:`SELECT * FROM table WHERE field LIKE '%search_term%';` - 不过,在某些情况下,Oracle可能会使用`INSTR`函数来替代`LIKE`,以提高...

    监控oracle数据DG状态超详细版

    ssion count" from v$session where status='ACTIVE ******** total sessions count *************** sion count" from v$session; ******** top 30 big objects name ********** a35 a15 -----部分截断sql---

    oracle精华讲解

    1. **Oracle难点与重点分析**: - **并发控制**:Oracle通过事务和锁机制保证数据的一致性。了解行级锁、表级锁以及多版本并发控制(MVCC)的工作原理,对于优化并发性能至关重要。 - **索引策略**:选择正确的...

    oracle查询效率调优实例

    ### Oracle 查询效率调优实例详解 在处理大量数据时,Oracle 数据库的查询性能往往成为系统瓶颈之一。本文将结合具体实例,介绍如何通过优化 SQL 语句来提高查询效率。 #### 一、Leading 提示与 Use_NL 提示 在...

    oracle不走索引可能原因.docx

    1. **INDEX SKIP SCAN**: 当创建了一个组合索引,但是查询只使用了索引的非第一列时,Oracle可能会选择不使用索引,因为它无法直接通过索引来定位数据。INDEX SKIP SCAN是一种优化策略,允许数据库跳过索引的第一个...

    Oracle性能优化绝版好书:高级OWI与ORACLE性能调整

    通过学习《Oracle性能优化绝版好书:高级OWI与ORACLE性能调整》,读者将掌握如何运用OWI进行性能监控,以及如何结合其他Oracle工具和方法,系统性地解决性能问题,提升数据库的整体运行效率。这本书对于Oracle DBA和...

    oracle错误好帮助文档和oracle函数大全

    掌握Oracle错误帮助文档和函数大全,不仅能够提升日常数据库管理的效率,还能在面对复杂问题时提供强大的支持。在实践中,结合实际案例学习和使用这些工具,将有助于深化对Oracle数据库的理解,提高解决问题的能力。...

    超详细ORACLE培训带实例带书签目录

    通过一系列章节的学习,读者不仅可以掌握Oracle的基本操作,还能深入了解其架构和高级功能,从而更好地利用Oracle解决实际问题。 #### 第一章 数据库基础 - **数据库概述**:解释什么是数据库,数据库的作用及其...

    oracle尚观培训文档

    - **有效连接条件与笛卡儿积**:有效的连接条件可以帮助避免不必要的笛卡儿积,从而提高查询效率。 - **连接的类型** - **内连接(INNER JOIN)**:返回两个表中满足连接条件的所有行。 - **左外连接(LEFT OUTER ...

    oracle的开发技术

    在Oracle的开发技术中,涵盖了多个关键知识点,这些知识点对于理解Oracle的编程规范、提高开发效率以及解决复杂数据问题至关重要。 1. **Oracle的编程规范**:遵循良好的编程习惯可以确保代码的可读性和维护性。这...

    鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础.

    ### 鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础 #### 一、SQL的起源和分类 ##### 1.1 SQL的起源 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作数据库的标准计算机语言。它最早由IBM的...

Global site tag (gtag.js) - Google Analytics