我用的语句是:select count(*) from table;
select count(id) from table;
select count(date) from table;速度都是比较慢的。
请问有别的什么快速的方法吗?
select count(id) from table;
select count(date) from table;速度都是比较慢的。
请问有别的什么快速的方法吗?
解决方案 »
- sqlplus如何要求用户输入数据
- 关闭数据库报错!
- 这个分段commit的语句写对了吗?
- 因程序调试的需要,如何在一个SESSION中看另个SESSION的临时表内容
- 数据库导入问题,求教
- 我安装了8i,可是通过console登陆就是登陆不进去,还有一些其他的问题,不知道各位有没有相同的经历,请各位高手麻烦你就看一眼我的帖子
- 关于linux下操作oracle8i数据库的问题 ,急!!!
- 举例说明在SQL*PLUS中INPUT命令是干什么用的?
- sqlplus无法登录
- 求一sql脚本优化方法
- 求救,oracle和postgres里double型的数据,用C语言求值,为什么结果不同
- Oracle连接myoracle
select count(rowid) from table
已连接。
SQL> select count(*) from zzw_temp2; COUNT(*)
----------
1079已用时间: 00: 00: 00.01
SQL> select count(rowid) from zzw_temp2;COUNT(ROWID)
------------
1079已用时间: 00: 00: 00.06
SQL> desc zzw_temp2
名称 是否为空? 类型
----------------------------------------- -------- ---------------------------- BMS_CUSTOMER_ID NOT NULL NUMBER(8)
BMS_CUSTOMER_NAME NOT NULL VARCHAR2(40)
BMS_CUSTOMER_PASSWORD NOT NULL VARCHAR2(40)SQL> select count(bms_customer_id) from zzw_temp2;COUNT(BMS_CUSTOMER_ID)
----------------------
1079已用时间: 00: 00: 00.01
SQL> select count(bms_customer_name) from zzw_temp2;COUNT(BMS_CUSTOMER_NAME)
------------------------
1079已用时间: 00: 00: 00.01
SQL> select count(bms_customer_password) from zzw_temp2;COUNT(BMS_CUSTOMER_PASSWORD)
----------------------------
1079已用时间: 00: 00: 00.01
SQL>
我个人也推荐用这个。不过vc555大侠在另一个帖详细谈了他的不同看法你可以关注一下
http://topic.csdn.net/u/20090617/16/401ea743-48fa-4449-ab85-6e955fea1a01.html?88044
因为在表的物理结构中,数据库管理系统会自动为主键列建立索引
2 如果那个表的数据量很大的话,建议在 建表的时候建成 分区表,这样在 select就快很多。数据量在1000万以上的
另外再建一张表,专门用于记录大表的数据记录数量,每次大表插入数据的时候就将其更新(可以通过在大表上建立触发器的方式或者在应用程序中实现),在需要用到记录数的时候,一个简单的select就可以搞定。 这样的做法就是将负载平均分布在平时,而不是集中在需要记录数的时候。