[MSSQL]如何高效查询表的总记录数
2024-10-19 00:20:47
如何高效查询表的总记录数?[总结-整理-马克]
首先想到的自然是在表主键上应用COUNT函数来查询了,这个是目前使用最多的方法,没有之一
SELECT COUNT(1) ROWS FROM product
这里再给出一些其它方法,这些方法或多或少会有一些限制,或者看起来不是那么"完美",但依然有一定的借鉴意义,信息量不大,请客官慢用
另类方法1
充分利用系统自带的存储过程SP_SPACEUSED,详细的使用方式推荐谷哥或度娘,看代码
EXEC SP_SPACEUSED 'PRODUCT'
结果如下图所示
另类方法2
根据国际惯例,很多表都会设计一个步长为1的自增长整型(INT)列作为表主键,该做法优劣这里不展开讨论,仅基于这一"习惯",外加一个假设:该字段连续无为断,则可以使用MAX函数了,限制较多哈
1,自增长列
2,该列连续
SELECT MAX(ProductCode) TotalCount FROM Product
输出
如果我有这样的自增主键表,可是不连续,那就不能用咯?其实您可以使用ROW_NUMBER()函数进行修复,再取MAX是一样的,为了不至于太水,这里仍然归为另类方法2,复习ROW_NUMBER的同学点这里
另类方法3
充分使用系统表中的信息,优点是速度够快!缺点是数据不精确,所以要结合您自身项目的特点来判定是否适合使用该方法,代码奉上
SELECT ROWS FROM [sysindexes] WHERE id = OBJECT_ID('product') and indid < 2
输出结果
另类方法3修复数据不精确方法,执行以下SQL脚本即可,请不要在生产环境使用!
DBCC UPDATEUSAGE(0, 'product') with COUNT_ROWS
该脚本执行后输出:DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
另类方法4,虚席以待,期待您的精彩点评!
上边介绍了一些系统表,系统存储过程,猜测您可能对下边的文章感兴趣
[MSSQL]GROUPING SETS,ROLLUP,CUBE初体验
如果您喜欢该博客请点击右下角推荐按钮,您的推荐是作者创作的动力!
最新文章
- java实现全排列
- CSS Table Gallery
- Xcode 如何删除过期的Provisioning Profile文件
- (转)无法打开C盘,提示";本次操作由于这台计算机的限制被取消,请与你的管理员联系”
- Java系列笔记(4) - JVM监控与调优
- BZOJ3293: [Cqoi2011]分金币
- UNIX 逐字符输入
- 为benchmarksql的PostgreSQL java驱动进行升级
- 使用SqlTransaction回滚事务
- Thinkpad W520 完美安装Ubuntu14.04LTS
- Spring_Spring与AOP
- Java客户端工具选择:HTML?Swing?XML?
- A1072. Gas Station
- Censys
- 20165237 2017-2018-2 《Java程序设计》第7周学习总结
- 如何使用java代码启动tomcat和打开浏览器
- Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明
- Kaggle比赛NCFM图像分类任务简介
- 使用a标签实现文件的下载与保存
- win8下C盘不能读写的解决方案[zz]
热门文章
- maven 加入本地jar包
- Nginx服务测试时的一些配置:wireshark、常用搜索URL格式、关闭防火墙、siege
- vc++ basic chapt1
- linux获取系统启动时间
- iOS /* */多个嵌套解决
- 济南学习D2T1__折纸带
- eclipse使用技巧、快捷键
- 如何启动另一个Activity
- jQuery ->; bind / live / delegate 的终结者 - on
- 对于for循环构成的九宫格里的button,如何满足“有默认选中的一个,并且只能选中一个”?