看来你的表可能有碎片,如下操作一下吧:·删除所有索引
·alter table xxx move;
·重建所有索引
·analyze table xxx compute statistics for table for all indexes;

解决方案 »

  1.   

    要想提高查询速度除了给相应字段建索引,调整sql语句中条件的顺序外,还有别的好的方法没?
    再就是在查询语句中加入/*+ first_rows*/后是否会查询提高速?
    我的一个查询要求在3个表中关联(其中2个50万条记录;1个5000条记录内)但,查询速度却在30s左右!!!:( 如何才能让其降到10s以内?
    附注:我们的系统走的是3层构架,中间件是买得别人的产品,后台用java写的程序
    希望各位朋友能够多多指教
    谢了先!!!
      

  2.   

    to:当我向一个表中插入数量不算太....
    把索引什么的都干掉,将这个表插到一张临时表里面,看看dba_segments的bytes,比较一下两个表的大小,相差的太多就是碎片的事情。检查一下表空间,看看数据文件有问题没,不行就把数据dmp出来,再重新建立表空间。看看操作系统有问题没。希望能有帮助。
    to:要想提高查询速度除....
    9i,10g的查询速度跟条件的先后次序关系不大,比以前聪明点了,呵呵。提高查询速度的话主要还是索引的用法再,在么就建分区表吧。
      

  3.   

    各位高手,我不知道怎么样才能提问题到论坛。
    还有,小弟想写要篇ORACLE数据库安全的论文,但不知道要写些什么方面的内容,能给些建议吗?
      

  4.   

    我们一个表里面有几百万条记录,用delphi做的软件查询也要不了10秒阿,还没有建索引
      

  5.   

    请大家帮帮忙帮我分析一下,这是为什么? 
    环境;
    oracle所在服务器系统:windows 2000 advanced server
    oracle企业版: 9.2.0.1.0 ----sga
    共享池:232m
    缓冲区高速缓存:696m
    大型池:144m
    java池:24m
    sga 总量:1097.45m
    sga 大小:1121。571m 前提条件:
    我已经对his_po_match_t;his_po_measure_t都作了表/索引分析
    然后把脚本同时在3个sql/plus中执行如下:
    SQL> select /*+ RULE*/
    2 Nvl(Sum(t3.Gross), 0) gross,Nvl(Sum(t3.Tare), 0) Tare, 
    3 Nvl(Sum(t3.deduction), 0) deduction,Nvl(Sum(t3.suttle), 0) suttle 
    4 from HIS_PO_MEASURE_T T3,HIS_PO_MATCH_T T1,PO_YWH_T T2
    5 WHERE T2.YWH=T1.TASKCODE 
    6 and 
    7 T1.MATCHID=T3.MATCHID 
    8 AND T1.CANCELFLAG='0' 
    9 AND T3.CANCEL='0'
    10 /**/AND SUTTLE_TIME>=to_date('2005-05-06','yyyy-mm-dd')
    11 and SUTTLE_TIME<to_date('2005-06-09','yyyy-mm-dd') 
    12 and iforder='Y' 
    13 ;已用时间: 00: 00: 45.06Execution Plan
    ----------------------------------------------------------
    0 SELECT STATEMENT Optimizer=HINT: RULE
    1 0 SORT (AGGREGATE)
    2 1 NESTED LOOPS
    3 2 NESTED LOOPS
    4 3 TABLE ACCESS (BY INDEX ROWID) OF 'HIS_PO_MEASURE_T'
    5 4 INDEX (RANGE SCAN) OF 'HIS_PO_MEASURE_SUTTLE_TIME'
    (NON-UNIQUE)6 3 TABLE ACCESS (BY INDEX ROWID) OF 'HIS_PO_MATCH_T'
    7 6 INDEX (UNIQUE SCAN) OF 'HIS_PO_MATCH_MATCHID' (UNI
    QUE)8 2 INDEX (UNIQUE SCAN) OF 'PO_YWH_YWH' (UNIQUE)
    Statistics
    ----------------------------------------------------------
    0 recursive calls
    0 db block gets
    128889 consistent gets
    2477 physical reads
    0 redo size
    553 bytes sent via SQL*Net to client
    503 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processedSQL> 
    *********************************************
    SQL> select /*+INDEX(T3,HIS_PO_MEASURE_SUTTLE_TIME)*/
    2 Nvl(Sum(t3.Gross), 0) gross,Nvl(Sum(t3.Tare), 0) Tare, 
    3 Nvl(Sum(t3.deduction), 0) deduction,Nvl(Sum(t3.suttle), 0) suttle 
    4 from HIS_PO_MEASURE_T T3,HIS_PO_MATCH_T T1,PO_YWH_T T2
    5 WHERE T2.YWH=T1.TASKCODE 
    6 and 
    7 T1.MATCHID=T3.MATCHID 
    8 AND T1.CANCELFLAG='0' 
    9 AND T3.CANCEL='0'
    10 /**/ AND SUTTLE_TIME>=to_date('2005-06-06','yyyy-mm-dd')
    11 and SUTTLE_TIME<to_date('2005-07-08','yyyy-mm-dd') 
    12 and iforder='Y' 
    13 ;已用时间: 00: 00: 51.05Execution Plan
    ----------------------------------------------------------
    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=24677 Card=1 Bytes=6
    7)1 0 SORT (AGGREGATE)
    2 1 NESTED LOOPS (Cost=24677 Card=26084 Bytes=1747628)
    3 2 HASH JOIN (Cost=24677 Card=16091 Bytes=965460)
    4 3 TABLE ACCESS (BY INDEX ROWID) OF 'HIS_PO_MEASURE_T'
    (Cost=23213 Card=16091 Bytes=595367)5 4 INDEX (RANGE SCAN) OF 'HIS_PO_MEASURE_SUTTLE_TIME'
    (NON-UNIQUE) (Cost=88 Card=32182)6 3 TABLE ACCESS (FULL) OF 'HIS_PO_MATCH_T' (Cost=1414 C
    ard=103172 Bytes=2372956)7 2 INDEX (UNIQUE SCAN) OF 'PO_YWH_YWH' (UNIQUE)
    Statistics
    ----------------------------------------------------------
    0 recursive calls
    0 db block gets
    40661 consistent gets
    15006 physical reads
    0 redo size
    555 bytes sent via SQL*Net to client
    503 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processedSQL> 
    *********************************************
    SQL> select /*+ FIRST_ROWS*/
    2 Nvl(Sum(t3.Gross), 0) gross,Nvl(Sum(t3.Tare), 0) Tare, 
    3 Nvl(Sum(t3.deduction), 0) deduction,Nvl(Sum(t3.suttle), 0) suttle 
    4 from HIS_PO_MEASURE_T T3,HIS_PO_MATCH_T T1,PO_YWH_T T2
    5 WHERE T2.YWH=T1.TASKCODE 
    6 and 
    7 T1.MATCHID=T3.MATCHID 
    8 AND T1.CANCELFLAG='0' 
    9 AND T3.CANCEL='0'
    10 /**/AND SUTTLE_TIME>=to_date('2005-10-06','yyyy-mm-dd')
    11 and SUTTLE_TIME<to_date('2005-11-09','yyyy-mm-dd') 
    12 and iforder='Y' 
    13 ;已用时间: 00: 01: 10.00Execution Plan
    ----------------------------------------------------------
    0 SELECT STATEMENT Optimizer=HINT: FIRST_ROWS (Cost=2783 Card=
    1 Bytes=67)1 0 SORT (AGGREGATE)
    2 1 NESTED LOOPS (Cost=2783 Card=27714 Bytes=1856838)
    3 2 HASH JOIN (Cost=2783 Card=17096 Bytes=1025760)
    4 3 TABLE ACCESS (FULL) OF 'HIS_PO_MEASURE_T' (Cost=1316
    Card=17096 Bytes=632552)5 3 TABLE ACCESS (FULL) OF 'HIS_PO_MATCH_T' (Cost=1414 C
    ard=103172 Bytes=2372956)6 2 INDEX (UNIQUE SCAN) OF 'PO_YWH_YWH' (UNIQUE)
    Statistics
    ----------------------------------------------------------
    0 recursive calls
    0 db block gets
    30483 consistent gets
    24805 physical reads
    0 redo size
    554 bytes sent via SQL*Net to client
    503 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processedSQL> 
    希望大家能帮我分析一下,告诉我这是为什么?
    详细信息http://www.itpub.net/showthread.php...10&pagenumber=1
    疑惑有2:
    1.分什么我做了表分析后,用cbo的时候,反而会出现全表扫描,就算是不排斥全表扫描方式(因为有些时候全表扫描确会比索引快),但运行的时间依然告诉我cbo不行!!!why???
    2.his_po_match_t;his_po_measure_t的数据在50万;po_ywh_t在5000条,为什么查询速度会如此慢???(相同的脚本如果在测试服务器速度会快很多:1-3秒)why???
      

  6.   

    Oracle OLAP 9.0.1.0.1
    启动时产生错误信息:
    Windows不能在 本地计算机 启动Oracle OLAP 9.0.1.0.1。有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务商联系,并参考错误代码2。
    哪位能给予解决办法吗 
      

  7.   

    Sort_area_size多大,另外表上一共有多少数据,索引建在那个tablespace上,表上有多少索引?
    可以加大索引表空间,删除重复索引,再不行可以适当加大Sort_area_size