SQL Server中count(*), count(col), count(1)的对比
让我们先看一下BOL里面对count(*)以及count(col)的说明:
COUNT(*) 返回组中的项数。包括 NULL 值和重复项。 COUNT(ALL expression) 对组中的每一行都计算 expression 并返回非空值的数量。expression 除 text、image 或 ntext 以外任何类型的表达式。不允许使用聚合函数和子查询。 * 指定应该计算所有行以返回表中行的总数。COUNT(*) 不需要任何参数,而且不能与 DISTINCT 一起使用。 COUNT(*) 不需要 expression 参数,因为根据定义,该函数不使用有关任何特定列的信息。 COUNT(*) 返回指定表中行数而不删除副本。它对各行分别计数。包括包含空值的行。
count(*),count(1),count(col) 测试对比各种查询的执行计划总结如下
count(*)和count(1)执行的效率是完全一样的。 count(*)的执行效率比count(col)高,因此可以用count(*)的时候就不要去用count(col)。 count(col)的执行效率比count(distinct col)高,不过这个结论的意义不大,这两种方法也是看需要去用。 如果是对特定的列做count的话建立这个列的非聚集索引能对count有很大的帮助。 如果经常count(*)的话则可以找一个最小的col建立非聚集索引以避免全表扫描而影响整体性能。
本文重点是提醒自己count(*)返回结果可能和count(col)结果不一致,特别是col索引情况,null可能不走索引,以后用的时候需注意了。
转载于:https://www.cnblogs.com/lonelyxmas/p/4250647.html
SQL Server中count(*), count(col), count(1)的对比相关推荐
- 如何在SQL Server中比较表
介绍 (Introduction) If you've been developing in SQL Server for any length of time, you've no doubt hi ...
- SQL Server中读取XML文件的简单做法
SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...
- SQL Server中如何识别、查找未使用的索引(unused indexes)
在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...
- [转] SQL Server中变量的声明和使用方法
原文地址 SQL Server中变量的声明和使用方法 声明局部变量语法: DECLARE @variable_name DataType 其中 variable_name为局部变量的名称,DataTy ...
- Sql Server中判断表或者数据库是否存在
SQL Server中判断数据库是否存在: 法(一): select * From master.dbo.sysdatabases where name='数据库名' 法(二): if db_id(' ...
- 十步优化SQL Server中的数据访问
故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户, ...
- 在SQL Server中分页结果的最佳方法是什么
如果您还希望获得结果总数(在进行分页之前),那么在SQL Server 2000.2005.2008.2012中对结果进行分页的最佳方法是(性能明智的)? #1楼 最终, Microsoft SQL ...
- SQL Server中的几个方法和Transact SQL 常用语句以及函数[个人推荐]
--数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -- ...
- SQL Server中的事务与锁
了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...
最新文章
- 每位开发人员都应铭记的10句编程谚语 (我超喜欢,转载了)
- “脑补”的科学依据:眼前的黑不是黑,靠得是你的大脑
- 当个新手很幸福!网络创业之新手小白一样可以吸粉又赚钱
- PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
- 理解C语言中指针的声明以及复杂声明的语法
- Mycat探索之旅(3)----Mycat的全局序列号
- pyspark模块介绍
- linux运维、架构之路-Zabbix监控
- Java类class isAnnotation()方法及示例
- Java中的垃圾回收器的类型概述 《对Java的分析总结》(六)
- Eclipse最新插件的下载地址大全[收集整理] zt
- ASP.NET 实践:使用用户控件实现 Web 部件的个性化
- API各函数作用简介
- 阿里巴巴JAVA编码规范考试
- MarkdownPad2安装Awesomium SDK-Windows官方链接
- 通达OA11.0 补丁文件
- 爬虫学习之17:爬取拉勾网网招聘信息(异步加载+Cookie模拟登陆)
- 祭奠一位我无比亲爱的亲人的离去
- Linux内核的misc框架
- 以太坊平台增加类 CrytoNote 环签名