总数等于什么 MSSQLSERVER中如何快速获取表的记录总数
MSSQLSERVER中如何快速获取表的记录总数
在数据库应用的设计中 我们往往会需要获取某些表的记录总数 用于判断表的记录总数是否过大 是否需要备份数据等 我们通常的做法是 select count(*) as c from tableA 然而对于记录数巨大的表 上述做法将会非常耗时 在DELL 服务器上做试验 MS Sqlserver 数据库对于 万记录的简单数据表执行上述语句 时间在 分钟以上 如果在表的某个字段上做聚簇索引 第一次执行该语句的时间和没有索引的时间差不多 之后执行上述语句 速度很快 在 秒中以内 但当表的记录数发生较大变化后 再执行该语句又会经历一次耗时的过程 而且不是每个表都适合做聚簇索引的 对于数量巨大的表 如果需要经常增删操作 建聚簇索引是一个很不明智的做法 将会极大的影响增删的速度 那么有没有一个比较简单的方法快速获取表的记录总数呢?答案是有的
在MS SQL 数据库中每个表都在sysindexes 系统表中拥有至少一条记录 该记录中的rows 字段会定时记录表的记录总数 下面是sysindexes 表的相关记录的含义
列名 数据类型 描述
id int 表ID(如果 indid = 或 ) 否则为索引所属表的ID
Indid smallint 索引ID
=表

=聚簇索引
> =非聚簇索引
=具有text或image数据的表条目
rows int 基于indid= 和 indid= 地数据级行数 该值对于indid> 重复 如果indid= rows设置为
当表没有聚簇索引时 Indid = 否则为
那么现在大家应该知道如何获取表的记录总数了 只需执行如下语句
select rows from sysindexes where id = object_id(tablename) and indid in ( )
lishixinzhi/Article/program/SQL/201311/16342相关文章
- sqlserver怎么打开表 SQL server中的表, 最大行数和列数分别是多少?
- 数据库中count的使用 汇编中countEQU是什么
- oracle查看数据库表的大小 如何查询oracle数据库的操作记录
- mysql获取字段最大值 mysql 如何获最大值栏位对应的其他栏位
- 索引对insert的影响 详细讲解SQL Server索引的性能问题[1]
- 简单的数据库实例 用Oracle中的Statspack诊断数据库性能实例
- sql索引是什么 在SQLServer中使用索引的技巧
- 优化数据库查询速度 如何提高ORACLE数据库的查询统计速度
- 一个sql数据库是表的汇集 经验总结:SQL Server数据库对上亿表的操作[2]
- 数据收集工具有哪些 利用typeperf工具收集SQL Server性能数据[1]
爱学记

微信收款码
支付宝收款码