SQLSERVER中快速获海量数据的记录总数
2月份 曾写过一篇sqlserver 优化海量查询的方法http://blog.csdn.net/great_domino/archive/2005/02/01/275839.aspx
最近有同事遇到sqlserver统计记百万条以上记录条数太慢的问题,sp经常会遇到统计大量数据问题,或许是巧合的原因,找到一个很简单的方法!
写了一篇文章
我们在统计记录的时候通常的做法是:select count(*) as c from table 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时间在1分钟以上。如果在表的某个字段上做聚簇索引,第一次执行该语句的时间和没有索引的时间差不多,之后执行上述语句,速度很快,在1秒中以内,但当表的记录数发生较大变化后,再执行该语句又会经历一次耗时的过程。而且不是每个表都适合做聚簇索引的,对于数量巨大的表,如果需要经常增删操作,建聚簇索引是一个很不明智的做法,将会极大的影响增删的速度。那么有没有一个比较简单的方法快速获取表的记录总数呢?答案是有的。 在MS SQL 数据库中每个表都在sysindexes 系统表中拥有至少一条记录,该记录中的rows 字段会定时记录表的记录总数。下面是sysindexes 表的相关记录的含义:
列名 数据类型 描述id int 表ID(如果 indid = 0 或255)。否则为索引所属表的IDIndid smallint 索引ID: 0=表 1=聚簇索引 >1=非聚簇索引 255=具有text或image数据的表条目。rows int 基于indid=0 和 indid=1地数据级行数,该值对于indid>1重 复。如果indid=255,rows设置为0。 当表没有聚簇索引时,Indid = 0 否则为 1。
下一篇:漫谈数据库的启动和关闭
↓相关文章:
- · 漫谈数据库的启动和关闭
- · 数据仓库实施的6种策略
- · 缩小SQL Server日志文件的SQL语句
- · 自动排除计算字段拷贝表数据
- · What is Index?索引是什么?
- · 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序
- · ChangeAllObjectOwner
- · SqlServer数据库的备份和恢复措施
- · 存储过程编写经验和优化措施
- · V$session 表的妙用
- · SQL中两台服务器间使用连接服务器
- · MS SQLServer OLEDB分布式事务无法启动的一般解决方案
- · SQL语句导入导出大全
- · 元数据不一致解决的一个实例
- · 继续尝试PygreSQL的pgdb
- · SQL语句导入导出大全
- · insert into tablename与Select * into tablename 比较
- · PL/SQL Developer 6.0.4.906特别版
- · 如何有条件的分步删除数据表中的记录
- · 统计不固定栏目的工资年报的存储过程
- · Sql Server基本函数
- · Visual C++ ADO数据库编程入门(上)
- · 关于ODBC数据源连接文本
- · SQL Server联机丛书:删除存储过程
- · SQL Server联机丛书:执行存储过程
- · SQL Server 性能调优1
- · SQL Server 2000之日志传送功能
- · 如何让你的SQL运行得更快
- · 在ORCAL中实现数据库的复制
- · SQL SERVER打补丁后的版本号
- · 数据文件坏删除数据文件
- · 桂林老兵的SQLSERVER高级注入技巧 (摘)
- · SQL Server 与 Excel
- · 一问一答:存储过程经典问题
- · Pointbase数据库学习
- · SQL Server 2000 XML之七种兵器
- · 本人用foxpro写的房屋产权产籍管理系统 (未完)
- · 单搞定ASA备份/恢复程序
- · 12个用一条语句写成的有关日期函数
- · ultraedit配置方法二
- · SQL*PLUS命令的使用大全
- · 数据库设计经验谈 一 (引)
- · sqlserver2000数据库置疑的解决方法
- · 如何使用SQL Server 2000全文检索
- · 一次诊断和解决CPU利用率高的问题分析

