SELECT t.airline, t.iflt, count (*)
FROM (SELECT * FROM  tbl_cstd 
WHERE cki_date>=:sdate and cki_date<=:edate
GROUP BY airline, iflt, cki_date, flight, org_city) t
group by t.airline, t.iflt;上面这个SQL用到了子表查询,请问这个SQL会存在并发用户访问过多造成临时表空间已满的情况么?如果有可能,那用loadrunner可以模拟测试?另外如果是一个普通的select * from tbl group by a,会存在并发用户访问过多的问题么?是不是只有带group by,order by这两个算排序?外加上子表查询,这三种情况会占用临时表空间?谢谢!

解决方案 »

  1.   

    如果pga足够,那么不会用临时表空间的。
      

  2.   

    这个要根据你数据库上的业务量才能决定了。
    你用em看看pga大小的建议。设成建议值。当然前提是用pga自动管理。
      

  3.   

    我用的是oracle 9i,
    select program c1, pga_used_mem c2, pga_alloc_mem c3, pga_max_mem c4 from v$process order by c4 desc;这个SQL可以查看到一些数据,但不太明白是不是PGA,如果使用SQL,如何查看到PGA呢?建议值一般是多少呢?设成建议值,上面那个SQL对于并发查询就没有问题了么?还需需要用LR之类的软件模拟测试呢?谢谢您!
      

  4.   

    show parameter pga_aggregate_target
    show parameter workarea_size_policy你如果现在系统还没正式使用,那么看建议值就没什么效果了。这个建议值是em收集统计信息后,根据你的系统情况计算出来的。它是一个动态值,根据系统使用情况,没有固定,是不同的值。
    可以先把pga设为sga大小的30%左右。等系统上线后,再根据em的建议值调整。
      

  5.   

    并发的查询根本不是问题,前提是sql可以重用。pga你现在不用太过关注,等系统上线后,随时调整。