1、我把一个大表按时间(年)分到了几个分区中,每一个分区都单独使用的一个表空间(初始定义为5M),例如按2003,2004,2005,2006,按理说2005,2006没有数据,应该表空间不被占用,但情况是,倒入数据后,每个表空间都被扩充成基本差不多的大小(均为200M),而且每个表空间都同普通未分区的表占用的表空间一样,即所占用的磁盘空间为原来未分区的N倍。这是为什么?
2、另外还有一个奇怪问题,我在客户端和服务器本地端执行同一个select,发现在客户端比服务器端执行还要快的多,比如我在本地上执行时间平均(执行10次,不算第一次,下同)需要0.2S,在客户端就几乎是0.0S,而在本地需要4-5s的查询,客户端只需要3s,服务器端OS为LINUX AS2.1,客户端为win2k server,我都是在SQLPLUS中执行的,怎么会出现这种情况呢?

解决方案 »

  1.   

    2.是缓存的作用,你如果执行相同的查询,查询计划已经被放入share pool,
    因此以后查询会很快。 你可以手工刷新一下共享池
    alter system flush shared_pool
     还有,时间这个指标是不精确的,要获得真正准确的执行时间,启用sql_trace,
    然后用tkprof这个工具生成解析后的trace文件,这个文件里面有准确的时间
    记录. 
    Total execution time/execution count =per execution time