TO:cenlmmx(学海无涯苦作舟) 
你是说系统提示有误吗?不会吧?

解决方案 »

  1.   

    1. 语法: /*+ HINT  HINT  ... */  
    PLSQL中, '+'与hint的第一个字符之间的空格是很重要的
    比如:  /*+ ALL_ROWS */ 是正确的,但/*+ALL_ROWS */ 是错误的
    2. 用dbms_stats包gather_table_stats,重新执行SQL
      

  2.   

    TO:cenlmmx(学海无涯苦作舟) 
    我按你说的在FIRST_ROWS前面加空格了,但时间还是没有缩短啊,以下是执行时间的对比:
    加         不加
    00:54:07    01:13:05
    01:13:07    00:42:01
    是不是要用你说的用dbms_stats包gather_table_stats,重新执行SQL才行啊?那不好意思再问你一下,我不知道你说的这个方法怎么用?要麻烦你再给我介绍一下啊,谢谢
      

  3.   

    gather_table_stats是分析表,这样有了分析信息,oracle才能更好的得到好的执行计划.
    dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);
    User: 用户名 TableName: 表名 degree: 并行度
    只要填上前两个参数就行了.
      

  4.   

    TO:cenlmmx(学海无涯苦作舟)这是我试验的结果。 
    1* dbms_stats.gather_table_stats(pdgis,ddzl_caozuobuzhou,degree => 4,cascade => true)
    SQL> 
    SQL> /
    dbms_stats.gather_table_stats(pdgis,ddzl_caozuobuzhou,degree => 4,cascade => true)
    *
    ERROR 位于第 1 行:
    ORA-00900: 无效 SQL 语句
    恩,你说的这个语句可以直接执行吗?还是需要配置别的什么东西?
      

  5.   

    SQL> exec dbms_stats.gather_table_stats('Mike','test');PL/SQL 过程成功完成