【oracle 性能优化】组合索引之index_ss

【oracle 性能优化】组合索引之index_ss

还没写完整的。。。
SQL> create table yangtest (id int,val1 varchar2(7),val2 varchar2(7));
表已创建。
已用时间:  00: 00: 00.06
SQL> begin
  2  for i in 1..100000 loop
  3  insert into yangtest values(mod(i,50),to_char(i),to_char(i));
  4  end loop;
  5  commit;
  6  end;
  7  /
PL/SQL 过程已成功完成。

已用时间:  00: 00: 09.23
SQL> set autotrace on exp
SQL> select  * from yangtest
  2  where val1=’100′;
        ID VAL1    VAL2                                                         
———- ——- ——-                                                      
         0 100     100                                                          

已用时间:  00: 00: 00.04

执行计划
———————————————————-                      
Plan hash value: 911235955                                                      
                                                                                
——————————————————————————  
| Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     |  
——————————————————————————  
|   0 | SELECT STATEMENT  |          |     3 |    69 |    77   (2)| 00:00:01 |  
|*  1 |  TABLE ACCESS FULL| YANGTEST |     3 |    69 |    77   (2)| 00:00:01 |  
——————————————————————————  
                                                                                
Predicate Information (identified by operation id):                             
—————————————————                             
                                                                                
   1 – filter(“VAL1″=’100′)                                                     
                                                                                
Note                                                                            
—–                                                                           
   – dynamic sampling used for this statement                                   
SQL> truncate table yangtest;
表被截断。
已用时间:  00: 00: 00.42
SQL> begin
  2  for i in 1..100000 loop
  3  insert into yangtest values(mod(i,36),to_char(i),to_char(i));
  4  end loop;
  5  commit;
  6  end;
  7  /
PL/SQL 过程已成功完成。
已用时间:  00: 00: 09.14                                 
SQL> create index idx_id_val1 on yangtest(id,val1);
索引已创建。
已用时间:  00: 00: 00.42
SQL> exec dbms_stats.gather_table_stats(user,’YANGTEST’,cascade=>true);
PL/SQL 过程已成功完成。
已用时间:  00: 00: 02.40
SQL> set linesize 120
SQL> select  * from yangtest
  2  where val1=’100′;
        ID VAL1    VAL2  
———- ——- ——- 
        28 100     100        
已用时间:  00: 00: 00.01
执行计划
———————————————————
Plan hash value: 2176791134 
——————————————————————————————- 
| Id  | Operation                   | Name        | Rows  | Bytes | Cost (%CPU)| Time     | 
——————————————————————————————- 
|   0 | SELECT STATEMENT            |             |     1 |    14 |    38   (0)| 00:00:01 | 
|   1 |  TABLE ACCESS BY INDEX ROWID| YANGTEST    |     1 |    14 |    38   (0)| 00:00:01 | 
|*  2 |   INDEX SKIP SCAN           | IDX_ID_VAL1 |     1 |       |    37   (0)| 00:00:01 |
——————————————————————————————- 
Predicate Information (identified by operation id):
————————————————— 
   2 – access(“VAL1″=’100′) 
       filter(“VAL1″=’100′) 
SQL> select  * from yangtest
  2  where val1=’100′ and id=20;
未选定行
已用时间:  00: 00: 00.00
执行计划
———————————————————
Plan hash value: 3983356224 
——————————————————————————————- 
| Id  | Operation                   | Name        | Rows  | Bytes | Cost (%CPU)| Time     | 
——————————————————————————————- 
|   0 | SELECT STATEMENT            |             |     1 |    14 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| YANGTEST    |     1 |    14 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | IDX_ID_VAL1 |     1 |       |     1   (0)| 00:00:01 |
——————————————————————————————- 
Predicate Information (identified by operation id): 
—————————————————  
   2 – access(“ID”=20 AND “VAL1″=’100′) 
SQL> set autotrace traceonly
SQL> select  * from yangtest
  2  where val1>’100′ and id=20;
已选择2778行。
已用时间:  00: 00: 00.07
执行计划
———————————————————- 
Plan hash value: 911235955 
——————————————————————————  
| Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     |  
—————————————————————————— 
|   0 | SELECT STATEMENT  |          |  2778 | 38892 |    77   (2)| 00:00:01 | 
|*  1 |  TABLE ACCESS FULL| YANGTEST |  2778 | 38892 |    77   (2)| 00:00:01 |
—————————————————————————— 
Predicate Information (identified by operation id):
————————————————— 
   1 – filter(“ID”=20 AND “VAL1”>’100′)
统计信息
———————————————————- 
          0  recursive calls       
          0  db block gets  
        465  consistent gets  
          0  physical reads  
          0  redo size    
      70650  bytes sent via SQL*Net to client 
       2451  bytes received via SQL*Net from client   
        187  SQL*Net roundtrips to/from client   
          0  sorts (memory) 
          0  sorts (disk)  
       2778  rows processed 
SQL> select  * from yangtest
  2  where val1<‘100’ and id=20;
未选定行
已用时间:  00: 00: 00.01
执行计划
———————————————————- 
Plan hash value: 3983356224
——————————————————————————————- 
| Id  | Operation                   | Name        | Rows  | Bytes | Cost (%CPU)| Time     |  
——————————————————————————————- 
|   0 | SELECT STATEMENT            |             |     1 |    14 |     3   (0)| 00:00:01 | 
|   1 |  TABLE ACCESS BY INDEX ROWID| YANGTEST    |     1 |    14 |     3   (0)| 00:00:01 | 
|*  2 |   INDEX RANGE SCAN          | IDX_ID_VAL1 |     1 |       |     2   (0)| 00:00:01 | 
——————————————————————————————- 
Predicate Information (identified by operation id): 
————————————————— 
   2 – access(“ID”=20 AND “VAL1″<‘100’)
统计信息
———————————————————- 
          1  recursive calls   
          0  db block gets   
          2  consistent gets  
          0  physical reads 
          0  redo size   
        387  bytes sent via SQL*Net to client  
        405  bytes received via SQL*Net from client 
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)    
          0  sorts (disk)    
          0  rows processed   
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109070.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Idea激活码最新教程2019.2.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2019.2.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2019 2 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2019 2 3 成功激活

    2025年5月24日
    8
  • Ubuntu 20.04 LTS上安装Edge浏览器

    Ubuntu 20.04 LTS上安装Edge浏览器文章目录Ubuntu20.04LTS上安装Edge浏览器Ubuntu20.04LTS上安装Edge浏览器本文部分内容转载自:HowtoInstallMicrosoftEdgeBrowseronUbuntu20.04|Linuxize,亲自安装测试并验证。Edge浏览器在各主要OS上均有正式版本发布,但是在Ubuntu上没有一个正式发布的版本。在Ubuntu上打开DownloadMicrosoftEdgeBrowser|Microsoft网页上看到不支持Ubuntu系

    2022年7月21日
    28
  • vmware安装苹果系统_vmware可以安装苹果系统吗

    vmware安装苹果系统_vmware可以安装苹果系统吗0202年了,虽然没有苹果机,但我有虚拟机呀。手把手教你在VMware安装苹果虚拟机,防坑避雷,亲测有效。文章目录写在前面VMareunlockios镜像创建虚拟机坑点不可恢复错误:(vcpu-0)鼠标键盘失灵联网问题安装系统

    2022年10月1日
    4
  • linux必须运行在enforcing,Linux(入门基础):97—SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)…

    linux必须运行在enforcing,Linux(入门基础):97—SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)…一、SELinux三种模式简介Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告Disabled:关闭模式。SELinux并没有实际运行二、getenforce命…

    2022年6月27日
    38
  • 圆柱体积怎么算立方公式_圆柱体积计算公式 计算方法有哪些[通俗易懂]

    圆柱体积怎么算立方公式_圆柱体积计算公式 计算方法有哪些[通俗易懂]体积公式是用于计算各种几何体体积的数学算式,那么,圆柱体积计算公式是什么呢?下面小编整理了圆柱体积计算公式,供大家参考!圆柱体积计算公式有哪些π是圆周率,一般取3.14r是圆柱底面半径h为圆柱的高圆柱体体积=底面积×高V=πr2h=V=sh还可以是v=1/2ch×r侧面积的一半×半径圆柱体积相关公式圆柱的侧面积=底面圆的周长×高圆柱的表面积=上下底面面积+侧面积圆柱的体积=底面积×高圆柱的体积怎么…

    2026年2月4日
    4
  • virsh命令详解_virsh 删除虚拟机

    virsh命令详解_virsh 删除虚拟机做下面操作前先安装这些工具:  yuminstallvirt-installlibvirt-adminlibvirt-clientlibvirt-daemonlibvirt主要的配置文件和目录  (1)libvirtd服务的主配置文件/etc/libvirt/libvirtd.conf    vim…

    2022年8月11日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号