问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle索引建立后查询无效果 可能会是什么因素影响

发布网友 发布时间:2022-05-01 23:03

我来回答

5个回答

懂视网 时间:2022-05-02 03:24

Oracle数据库里提供了自动维护任务,以保证Oracle数据库可以更高效的运行。在不同的Oracle版本中,自动任务的种类和执行方式也有区别。本文以10g和11g为主来认识Oracle里的自动任务。

1、种类

10g里的自动任务有两种:

  • AUTO_SPACE_ADVISOR_JOB,自动空间顾问JOB

  • GATHER_STATS_JOB,自动收集统计信息JOB

  • 11g里的自动任务有三种:

  • auto optimizer stats collection,自动统计信息收集顾问

  • auto space advisor,自动空间顾问

  • sql tuning advisor,sql调优顾问

  • 2、实现方式

    10g里的自动任务是以SCHEDULER的JOB形式运行的,可以在dba_scheduler_jobs视图里查到相关的JOB。

    SQL> set linesize 200
    SQL> col owner for a30
    SQL> col job_name for a30
    SQL> select owner,job_name from dba_scheduler_jobs where job_class=‘AUTO_TASKS_JOB_CLASS‘;
    
    OWNER			       JOB_NAME
    ------------------------------ ------------------------------
    SYS			       AUTO_SPACE_ADVISOR_JOB
    SYS			       GATHER_STATS_JOB

    11g里的自动任务使用的是11g的新特性AUTOTASK的方式实现的。可以从dba_autotask_client视图中查到相关信息。

    sys@TEST>SELECT client_name,status FROM dba_autotask_client;
    
    CLIENT_NAME				 STATUS
    ---------------------------------------- ------------------------
    auto optimizer stats collection 	 ENABLED
    auto space advisor			 ENABLED
    sql tuning advisor			 ENABLED

    3、维护窗口时间

    两个版本中自动任务的执行时间是不同的。

    10g中分为两个时间段WEEKNIGHT_WINDOW和WEEKEND_WINDOW,可以从dba_scheduler_windows视图中查到。它们分别的运行开始时间和持续时间为:

    WEEKNIGHT_WINDOW,每周一至周五晚22:00:00开始,持续8小时

    WEEKEND_WINDOW,第周六00:00:00,持续2天

    11g中维护窗口分得更细,分为7个,即第一天个维护窗口,可以针对不同的需求做出更细粒度的调整,dba_scheduler_windows视图中查到,分别为MONDAY_WINDOW,TUESDAY_WINDOW,WEDNESDAY_WINDOW,THURSDAY_WINDOW,FRIDAY_WINDOW,SATURDAY_WINDOW,SUNDAY_WINDOW。开始时间和持续时间分别为:

    周一到周五晚22:00:00开始,持续4小时,周六和周日早6:00:00开始,执行20小时。

    4、维护方式

    由于10g和11g中实现方式的不同,维护方式自然就不一样了。

    10g的维护方式与普通的SCHEDULER的JOB一样。

    --停用JOB
    SQL> exec dbms_scheduler.disable(‘AUTO_SPACE_ADVISOR_JOB‘);
    
    PL/SQL procedure successfully completed.
    
    SQL> select enabled from dba_scheduler_jobs where job_name=‘AUTO_SPACE_ADVISOR_JOB‘;
    
    ENABLED
    ---------------
    FALSE
    
    --启用JOB
    
    SQL> exec dbms_scheduler.ENABLE(‘AUTO_SPACE_ADVISOR_JOB‘);
    
    PL/SQL procedure successfully completed.
    
    SQL> select enabled from dba_scheduler_jobs where job_name=‘AUTO_SPACE_ADVISOR_JOB‘;
    
    ENABLED
    ---------------
    TRUE

    下面重点介绍11g里自动任务的维护。

    1)停用和启用自动维护任务

    --停用sql tuning advisor
    sys@TEST>BEGIN
      2    dbms_auto_task_admin.disable(
      3      client_name => ‘sql tuning advisor‘,
      4      operation   => NULL,
      5      window_name => NULL);
      6  END;
      7  /
      
      PL/SQL procedure successfully completed.
    
    sys@TEST>select client_name,status from dba_autotask_client;
    
    CLIENT_NAME                              STATUS
    ---------------------------------------- ------------------------
    auto optimizer stats collection          ENABLED
    auto space advisor                       ENABLED
    sql tuning advisor                       DISABLED
    
    --启用sql tuning advisor
    sys@TEST>BEGIN
      2    dbms_auto_task_admin.enable(
      3      client_name => ‘sql tuning advisor‘,
      4      operation   => NULL,
      5      window_name => NULL);
      6  END;
      7  /
    
    PL/SQL procedure successfully completed.
    
    sys@TEST>select client_name,status from dba_autotask_client;
    
    CLIENT_NAME                              STATUS
    ---------------------------------------- ------------------------
    auto optimizer stats collection          ENABLED
    auto space advisor                       ENABLED
    sql tuning advisor                       ENABLED
    
    --停用所有维护窗口下的所有的自动任务
    sys@TEST>exec dbms_auto_task_admin.disable;
    
    PL/SQL procedure successfully completed.
    
    sys@TEST>select window_name,autotask_status from dba_autotask_window_clients;
    
    WINDOW_NAME                    AUTOTASK_STATUS
    ------------------------------ ------------------------
    MONDAY_WINDOW                  DISABLED
    TUESDAY_WINDOW                 DISABLED
    WEDNESDAY_WINDOW               DISABLED
    THURSDAY_WINDOW                DISABLED
    FRIDAY_WINDOW                  DISABLED
    SATURDAY_WINDOW                DISABLED
    SUNDAY_WINDOW                  DISABLED
    
    7 rows selected.
    --启用所有维护窗口下的所有自动任务
    sys@TEST>exec dbms_auto_task_admin.enable;
    
    PL/SQL procedure successfully completed.
    
    sys@TEST>select window_name,autotask_status from dba_autotask_window_clients;
    
    WINDOW_NAME                    AUTOTASK_STATUS
    ------------------------------ ------------------------
    WEDNESDAY_WINDOW               ENABLED
    FRIDAY_WINDOW                  ENABLED
    SATURDAY_WINDOW                ENABLED
    THURSDAY_WINDOW                ENABLED
    TUESDAY_WINDOW                 ENABLED
    SUNDAY_WINDOW                  ENABLED
    MONDAY_WINDOW                  ENABLED
    
    7 rows selected.
    --停用针对某个维护窗口的自动任务
    sys@TEST>BEGIN
      2    dbms_auto_task_admin.disable(
      3      client_name => ‘sql tuning advisor‘, 
      4      operation   => NULL, 
      5      window_name => ‘MONDAY_WINDOW‘);
      6  END;
      7  /
    
    PL/SQL procedure successfully completed.
    
    sys@TEST>select window_name,autotask_status,sql_tune_advisor from dba_autotask_window_clients;
    
    WINDOW_NAME                    AUTOTASK_STATUS          SQL_TUNE_ADVISOR
    ------------------------------ ------------------------ ------------------------
    MONDAY_WINDOW                  ENABLED                  DISABLED
    TUESDAY_WINDOW                 ENABLED                  ENABLED
    WEDNESDAY_WINDOW               ENABLED                  ENABLED
    THURSDAY_WINDOW                ENABLED                  ENABLED
    FRIDAY_WINDOW                  ENABLED                  ENABLED
    SATURDAY_WINDOW                ENABLED                  ENABLED
    SUNDAY_WINDOW                  ENABLED                  ENABLED
    
    7 rows selected.

    2、配置维护窗口

    这个与10g的类似,都是使用dbms_scheduler包来操作

    --修改维护窗口的属性,把SATURDAY_WINDOW的持续时间修改为4小时
    sys@TEST>BEGIN
      2    dbms_scheduler.disable(
      3      name  => ‘SATURDAY_WINDOW‘);
      4    dbms_scheduler.set_attribute(
      5      name      => ‘SATURDAY_WINDOW‘,
      6      attribute => ‘DURATION‘,
      7      value     => numtodsinterval(4, ‘hour‘));
      8    dbms_scheduler.enable(
      9      name => ‘SATURDAY_WINDOW‘);
     10  END;
     11  /
    
    PL/SQL procedure successfully completed.
    
    sys@TEST>SELECT duration FROM dba_scheduler_windows WHERE window_name=‘SATURDAY_WINDOW‘;
    
    DURATION
    ---------------------------------------------------------------------------
    +000 04:00:00

    11g自动维护任务参考官方文档:http://docs.oracle.com/cd/E11882_01/server.112/e25494/tasks.htm#ADMIN12344


    本文出自 “DBA Fighting!” 博客,请务必保留此出处http://hbxztc.blog.51cto.com/1587495/1923449

    Oracle的自动维护任务

    标签:oracle 自动任务

    热心网友 时间:2022-05-02 00:32

    1.建立索引时机 :测试是数据库资料塞入后建立索引,正式的是先建立索引 后汇入的数据(这个有影响吗)

    没有影响的 索引是自动维护的

    建议收集统计信息,然后去看看执行计划.

    热心网友 时间:2022-05-02 01:50

    请先收集统计信息,完了后,执行计划就会自动找最优的

    隔了一天有效果的原因是oracle建立的时候默认会建一个
    名叫GATHER_STATS_JOB 的定时任务,会在每天晚上10点运行
    它的功能就是自动收集统计信息

    热心网友 时间:2022-05-02 03:25

    正式的是先建立索引
    后汇入的数据(这个有影响吗)
    没有影响的
    索引是自动维护的
    建议收集统计信息1.建立索引时机
    :测试是数据库资料塞入后建立索引,然后去看看执行计划
    再看看别人怎么说的。

    热心网友 时间:2022-05-02 05:16

    SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'GATHER_STATS_JOB';
    如果存在该记录
    那么可以解释为什么隔了一天才有了效果
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    咖喱鸡块怎样烧好吃 小米摄像头安全吗会被别人看到吗 小米摄像头会被别人入侵吗 广联达计价软件gbq4.0中怎么显示小数位数 脸干怎么补水最有效 脸干补水最好土方法 为什么退契税 首套购房契税为什么退回 契税为什么会退 退购房契税什么意思 为什么买了房子要退契税 什么样的副业比较好? 韩语里面‘ㄹ’音变的问题 什么裤子配卫衣 求沪江网校韩语学习课件 ppt 上的文字~韩语翻译 求零至韩语topik2的课件~不要视频 “幻灯片”用韩语怎么说 浅色卫衣在搭配裤装时,都有哪些搭配技巧? ppt怎样显示韩语文档 如何将jnt文件格式转化成为world文档进行打印 请问您有延世韩国语的PPT吗? 谁有李思皎老师全套的韩语教学视频?我只有1-6的课程,有全套的高分悬赏,谢谢。 小鸭洗衣机小的齿轮,现在还有吗? 韩语入门 jnt是什么格式 请问小鸭圣吉奥洗衣机的把手断了,哪里能配啊? 韩语入门课程!韩语自学课程!自学韩语!拜托了各位 谢谢 韩语发表PPT 百变小樱的经典对白 韩语语学院PPT发表时用敬语吗?除了PPT是叙述体,发表时一直用습니다吗 怎么把手机相册里横的照片弄成竖的 如何正确的面对残酷的人生! 感觉难以继续这残忍的人生了 敢于直面惨淡的人生敢于正视淋漓的鲜血出自哪篇文章? 为什么我的人生那么悲催,真的活着好累好累 人生最大的苦难、悲伤与屈辱汇集于我一身,我该怎么办? 人生最残酷和最悲剧的十件事是? 从今得温柔现在得暴烈残酷得人生是啥意思? 如果人生很惨很痛苦,是选择痛快的死掉,还是窝囊的活着? 人生为什么那么残酷 各个汽车品牌的广告语,谢 英雄Vs怎么下载 广州本田思迪,飞度,雅阁,奥德赛广告语 人生最大的残酷是什么 英雄vs模拟器下载 为什么人生那么残酷? psp英雄vs下载完了怎么解压到psp里玩 鲁迅先生说:真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血,有什么理解? 大家帮忙找100条广告语啊~~ psp游戏英雄vs操作方法