当前位置:首页 > 系统运维 > 正文内容

SQL Server快速获取表的记录总数

a8116255311年前 (2015-10-24)系统运维9

在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时间在1分钟以上。

假如在表的某个字段上做聚簇索引,之一次执行该语句的时间和没有索引的时间差不多,之后执行上述语句,速度很快,在1秒中以内,但当表的记录数发生较大变化后,再执行该语句又会经历一次耗时的过程。而且不是每个表都适合做聚簇索引的,对于数量巨大的表,假如需要经常增删操作,建聚簇索引是一个很不明智的做法,将会极大的影响增删的速度。那么有没有一个比较简单的 *** 快速获取表的记录总数呢 答案是有的。

在MS SQL 数据库中每个表都在sysindexes 系统表中拥有至少一条记录,该记录中的rows 字段会定时记录表的记录总数。

下面是sysindexes 表的相关记录的含义:

列名 数据类型 描述

id int 表ID(假如 indid = 0 或255)。否则为索引所属表的ID

Indid *** allint 索引ID:

0=表

1=聚簇索引

>1=非聚簇索引

255=具有text或image数据的表条目。

rows int 基于indid=0 和 indid=1地数据级行数,该值对于indid>1重 复。假如indid=255,rows设置为0。

当表没有聚簇索引时,Indid = 0 否则为 1。

那么现在大家应该知道如何获取表的记录总数了,只需执行如下语句:

select rows from sysindexes where id = object_id(tablename) and indid in (0,1)

该 *** 获取表的记录总数的速度非常快,在毫秒级就可以完成,相比select count(*) 要快上数万倍,但是大家在运用该 *** 是一定要主要,该 *** 得到的表的总记录数不是一个精确值,原因是MS SQL 并不是实时更新该字段的值,而是定时更新,当从实践来看该值和精确值一般误差不大,假如你希望快速的粗略估算表的大小,建议你采用该 *** 。

假如你希望得到精确值,那么请在执行上述语句前执行DBCC UpdateUSAGE(DatabaseName,[TABLENAME]) WITH ROW_COUNTS 强制更新该字段的值,但这样之一次更新时会耗费大量的时间,这样做的效果和建有聚簇索引的表 select count (*) 效果相差不大,所以假如你希望相对快速地得到精确的表的记录总数,那么你有两种选择,建聚簇索引或者先DBCC 再使用上述 *** 。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/22556.html

分享给朋友:

“SQL Server快速获取表的记录总数” 的相关文章

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

windows 7玩网游PING高即网络延时比较高的解决方法

windows 7玩网游PING高即网络延时比较高的解决方法

经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...