提高MSSQL数据库性能(1)对比count(*) 和 替代count(*)

文章准备的数据库: Atricles 表   数据量60690000条数据

ArticleID 主键自增列+自动建立的聚集索引,ATitle nvarchar(100)  Acontent varchar(2000) CreateDate DateTime(8)  

首先要说的是:select count(*) from table,那么count(*) 和 count(主键) count(文本列)效率比较:  这里是测试主代码

         dbcc freeProcCache  --清空SqlCache

              SET STATISTICS io ON

        SET STATISTICS time ON

        go

        ----这里是测试语句

        go

        SET STATISTICS profile OFF

        SET STATISTICS io OFF

        SET STATISTICS time OFF

那么我们来看看:

SELECT COUNT(*) FROM ATRICLES                          CPU 时间 = 1125 毫秒,占用时间 = 1140 毫秒。

SELECT COUNT(ATRICLEID) FROM ATRICLES           CPU 时间 = 1093 毫秒,占用时间 = 1094 毫秒

SELECT COUNT(ATITLE) FROM ATRICLES                 CPU 时间 = 2266 毫秒,占用时间 = 2267 毫秒

SELECT COUNT(ACONTENT) FROM ATRICLES           CPU 时间 = 2296 毫秒,占用时间 = 2303 毫秒。

Count(*) 是在处了 count(主键) 之外速度最快的  为什么最快其实我也不知道 - -! 猜想可能是SQL自动做了查询优化

 

那么我们是否一定得要 COUNT(*)呢 不是的 大家看这里:

SELECT ROWS FROM SYSINDEXES WHERE ID = OBJECT_ID('ATRICLES') AND INDID = 1

那么我们看看它和select count(主键)的比较吧:

首先是Count(主键)

表'ATRICLES'。扫描计数 1,逻辑读取 120368 次,物理读取 3 次,预读 120364 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

 SQL Server 执行时间:  CPU 时间 = 2282 毫秒,占用时间 = 21334 毫秒。

其次是 from SYSINDEXES

表 'SYSINDEXES'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0次,lob 预读 0 次。

 SQL Server 执行时间:   CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。

SYSINDEXES 系统表   所有的表 行集 索引信息 存放在这个表中

ID =OBJECT_ID('ATRICLES') ID的意思是 索引所属的表ID

INDID 表示在聚集索引上查找 因为主键在建立的时候已经自动的建立了聚集索引

ROWS 基于 indid = 0 和 indid = 1 的数据级行计数,如果 indid >1,则该值包含重复的计数。

这篇文章想说的是: 在分页情况下 可以考虑使用上面语句查找数据行   AND  count(*) 并不是低效率的 感谢下面朋友指教

本文结束  晚安

smiley-cool.gif smiley-cool.gif

转载于:https://www.cnblogs.com/mmmjiang13/archive/2010/03/30/1701000.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 数据库数据对比工具(MSSQL版)是一种专门用于比较和验证MSSQL数据库中数据差异的工具。它可以帮助数据库管理员和开发人员快速识别和解决数据库中的数据问题。 这种工具的主要功能包括: 1. 数据比较:可以比较两个数据库之间的表或视图中的数据,找出差异之处。它可以比较各个字段的值,识别新增、更新和删除的记录。 2. 数据同步:工具还提供数据同步功能,可以将源数据库中的数据同步到目标数据库中。这对于在不同环境中进行数据迁移和备份非常有用。 3. 数据验证:工具可以验证业务逻辑和数据完整性,例如检查主外键关系、唯一约束等。通过检测和报告无效数据,可以帮助用户及时修复数据问题。 4. 数据对比报告:工具可以生成详细的数据对比报告,展示两个数据库之间的差异,并提供可视化的方式展示数据差异,如图表和图像。 5. 自定义设置:工具通常允许用户根据自己的需求配置比较规则和参数。用户可以选择需要比较的表或字段,设定比较的范围和条件。 总之,数据库数据对比工具(MSSQL版)可以帮助用户方便地识别和解决数据库中的数据差异。它提供了快速而准确的比较和验证功能,有效地提高数据库管理和开发人员的工作效率。 ### 回答2: 数据库数据对比工具(MSSQL版)是一种用于比较和对比SQL Server数据库中的数据差异的工具。它可以帮助用户在多个数据库服务器之间进行数据同步、数据备份还原以及数据迁移等操作。 该工具具有以下特点和功能: 1. 数据比较:工具能够比较两个数据库中相同表结构的数据,并显示差异之处。用户可以选择按照主键、唯一键或指定条件进行比较。 2. 快速高效:工具使用优化的算法和技术,以提高数据比较的性能和效率。它可以在短时间内处理大量的数据。 3. 灵活性:用户可以根据自己的需求设置比较规则和过滤条件,以便更精确地找到数据的差异。工具还支持自定义比较模板和规则。 4. 易于使用:工具提供直观的用户界面,用户只需几步操作即可完成数据比较任务。同时,工具还支持命令行模式,方便批量处理。 5. 安全性:工具通过加密和身份验证等安全措施,保护用户的数据不被未经授权的人员访问和篡改。 6. 报告生成:工具可以生成详细的数据差异报告,以便用户查看和分析。报告可以导出为PDF、Excel或HTML格式。 数据库数据对比工具(MSSQL版)能够极大地简化数据库维护和管理的工作,提高工作效率和数据质量。它被广泛应用于软件开发、数据仓库和BI系统等领域。 ### 回答3: 数据库数据对比工具(mssql版)是一种可以帮助用户比较和对比不同数据库之间的数据差异的工具。它可以用于对比两个或多个数据库的数据,在数据一致性检查、数据同步、数据迁移等方面发挥重要作用。 这种工具的主要功能包括: 1. 数据比较:可以按照用户定义的比较规则,对两个或多个数据库中的表、视图和存储过程进行数据比较。它能够检测到数据的增加、删除和修改,方便用户了解数据库之间的差异。 2. 数据同步:在数据比较的基础上,工具可以帮助用户将两个数据库中的数据进行同步。它可以自动执行增、删、改等操作,使得两个数据库的数据保持一致。 3. 数据迁移:工具还支持将一个数据库的数据迁移到另一个数据库。用户可以选择性地迁移特定的表或整个数据库的数据,保证数据的完整性和一致性。 4. 数据备份和恢复:工具可以对数据库中的数据进行备份,以防止数据丢失或误操作。同时,它也支持通过备份文件将数据恢复到原始或其他数据库中。 5. 数据报告:工具可以生成详细的数据差异报告,包括增、删、改的数据数量和具体的数据内容。这样用户可以方便地查看和分析数据库之间的差异和变化。 数据库数据对比工具(mssql版)可以提高数据库管理和维护的效率,并保证数据的完整性。无论是开发人员、数据库管理员还是数据分析师,都可以从中受益,更好地管理和利用数据库中的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值