【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 第十五篇 Python之文件处理

    第十五篇 Python之文件处理一文件操作计算机系统分为:计算机硬件,操作系统,应用程序三部分。我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应

    2022年7月5日
    19
  • java实现文件传输

    java实现文件传输

    2021年12月7日
    49
  • java和c语言哪个简单_Java编程和C语言哪个好学

    java和c语言哪个简单_Java编程和C语言哪个好学学哪种编程语言好?计算机编程语言非常多,诸如Java、C、C++、PHP等,很多人在选择的时候都会觉得头大。到底学哪种编程语言好?很多人都拿Java和c相比较,那么今天小编就来先说说我的个人理解吧,学习Java很简单上手很容易,只需要会拼音就可以,简直而且没有门槛,而c语言学习成本高,要想学会需要投入较大的精力,才能有一个相对不错的回报。下面是Java和c的市场占有率,可以看出,二者不分伯仲,第一…

    2022年7月9日
    16
  • mac .bash_profile环境变量汇总

    mac .bash_profile环境变量汇总

    2021年12月5日
    58
  • Windows下 文件夹加密

    Windows下 文件夹加密此加密方法會使这个特殊的文件夹用正常情况不可打開也不可删除,可以起到保护重要资料的作用。  在Windows中“\”符号是路径的分隔符,比如“C:\Windows\System.exe”的意思是C分区的Windows文件夹中的System.exe文件。如果文件名中有“\”符号会怎么样呢?假如“sexinsex\”是一个文件夹的名字,这个文件夹位于“F:\”,它的路径就是“F:\sexinse…

    2022年7月13日
    22
  • 前端常见算法JS实现「建议收藏」

    前端常见算法JS实现「建议收藏」算法是程序的灵魂,一个优秀的前端工程师对算法也是要有所了解的。1.冒泡排序2.快速排序3.二路归并将两个按值有序序列合并成一个按值有序序列,则称之为二路归并排序字符串操作1.判断回

    2022年8月5日
    1

发表回复

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

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