同一台电脑,同一个操作系统Windows 2000 Server。同样的表结构,同样的数据(大约4GB内容,200多万条数据)。
操作同样的语句:Select Count(*) from <tablename>我在Oracle 9.2.0.1上运行需要68秒,而在Oracle 10g上运行却只需要1秒多点,这是为什么啊?
操作同样的语句:Select Count(*) from <tablename>我在Oracle 9.2.0.1上运行需要68秒,而在Oracle 10g上运行却只需要1秒多点,这是为什么啊?
楼主不妨,这样再比较一下,
select count(<PK>) from <table_name>
在10g下,无论我安装时选择能用数据库模板创建数据库实例,还是选择自定义方式创建实例,运行时间几乎一样,都是1秒左右。
在9i下,无论我安装时选择能用数据库模板创建数据库实例,还是选择自定义方式创建实例,运行时间几乎一样,都是68秒左右。
如何重新计算统计信息?我的另一台安装Oracle 9i的服务器已经运行了近个把月了(操作上条命令仍需68秒),也需要手动运行统计信息吗?注:我的问贴里提到的安装Windows2000的电脑是个VWMare虚拟机,只有1G内存,但CPU是配睿2的。
现在我提到的“另一台安装Oracle 9i”的服务器是年初新买的联想服务器,内存4G,双至强CPU,SATA2硬盘。
但运行Select Count(*)都需要68秒。
2.查看执行计划:在SQLPLUS中:set autotrace on
你在两个数据库中都做做看。
操作完1的收集统计信息后,select count(*)的时间变为1秒。要多久需要收集一次统计信息?
为何同是默认安装,10g不需要手动收集统计信息?