【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   
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python爬虫原理

    Python爬虫原理前言简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML、JS、CSS代码返回给浏览器,这些代码经过浏览器解析、渲染,将丰富多彩的网页呈现我们眼前;一、爬虫是什

  • 怎么设置超链接网址css,css应该怎么设置超链接样式「建议收藏」

    怎么设置超链接网址css,css应该怎么设置超链接样式「建议收藏」css设置超链接样式的方法是,给超链接添加伪类,例如【a:visited{color:#00FF00;}】。【a:visited】表示用户已经访问过的链接。本文操作环境:windows10系统、css3、thinkpadt480电脑。如果我们要设置超链接的样式,其实是可以使用任何一个css属性的,比如颜色、字体、背景等等。但是如果你想设置特别的样式,就需要使用到伪类。下面我们一起来看下伪类。…

  • golang嵌入式开发_持续集成平台对比

    golang嵌入式开发_持续集成平台对比Drone官方示例-ExampleGoproject用Docker部署Go服务器Golang官方示例-outyet一个生产环境的例子实际的DevOps项目中,在pipeline流水线中包含下载代码、测试、构建、发布、部署、通知等步骤。基本流程如下,当然不同的语言或不同的需求下流程会有所差异:clone-&amp;amp;gt;test-&amp;amp;gt;build…

  • c# 进度条的使用(例子)[通俗易懂]

    c# 进度条的使用(例子)[通俗易懂]2012-05-2320:21在用c#做WinFrom开发的过程中。我们经常需要用到进度条(ProgressBar)用于显示进度信息。这时候我们可能就需要用到多线程,如果不采用多线程控制进度条,窗口很容易假死(无法适时看到进度信息)。下面我就简单结合一个我写的例子给大家做一个介绍。首先看一下程序界面第一步:设计界面不说了…注意需要引用usingSyst

  • Excel VBA编程

    Excel VBA编程文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引号利用LBound函数求最小索引号求多维数组的最大和最小索引号用join函数将一维数组合并成字符串将数组内容写入工作表中数组的存取特殊数据的专用容器——常量对象,集合及对象的属性和方法VB…

  • 0范数 无穷范数 上确界[通俗易懂]

    无穷范数——向量中最大元素的绝对值0范数——向量中非0的元素的个数(或#表示)1范数参考上篇文章:范数概念 “上确界”的概念是数学分析中最基本的概念。考虑一个实数集合M.如果有一个实数S,使得M中任何数都不超过S,那么就称S是M的一个上界。  在所有那些上界中如果有一个最小的上界,就称为M的上确界。  一个有界数集有无

发表回复

您的电子邮箱地址不会被公开。

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