索引对单表查询的影响(Cost和consistent gets)
前提:使用system账户登录sql plus。
建表:
SQL> create table t2 as select * from dba_objects; 表已创建。 已用时间: 00: 00: 00.81
SQL> insert into t2 select * from t2; 已创建72695行。 已用时间: 00: 00: 00.98
SQL> insert into t2 select * from t2; 已创建145390行。 已用时间: 00: 00: 00.71
SQL> insert into t2 select * from t2; 已创建290780行。 已用时间: 00: 00: 02.40
SQL> commit; 提交完成。 已用时间: 00: 00: 00.00
不加索引时查询:
SQL> select * from t2 where object_id=99; 已选择8行。 已用时间: 00: 00: 00.03 执行计划
----------------------------------------------------------
Plan hash value: 1513984157 --------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 91 | 18837 | 2250 (1)| 00:00:27 |
|* 1 | TABLE ACCESS FULL| T2 | 91 | 18837 | 2250 (1)| 00:00:27 |
-------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 1 - filter("OBJECT_ID"=99) Note
-----
- dynamic sampling used for this statement (level=2) 统计信息
----------------------------------------------------------
5 recursive calls
0 db block gets
8331 consistent gets
0 physical reads
0 redo size
1774 bytes sent via SQL*Net to client
519 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
8 rows processed
添加索引后执行同样sql:
SQL> create index idx_t2_object_id on t2(object_id); 索引已创建。 已用时间: 00: 00: 00.73 SQL> select * from t2 where object_id=99; 已选择8行。 已用时间: 00: 00: 00.01 执行计划
----------------------------------------------------------
Plan hash value: 188336643 --------------------------------------------------------------------------------
---------------- | Id | Operation | Name | Rows | Bytes | Cost (%
CPU)| Time | --------------------------------------------------------------------------------
---------------- | 0 | SELECT STATEMENT | | 8 | 1656 | 12
(0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID| T2 | 8 | 1656 | 12
(0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | IDX_T2_OBJECT_ID | 8 | | 3
(0)| 00:00:01 | --------------------------------------------------------------------------------
---------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - access("OBJECT_ID"=99) Note
-----
- dynamic sampling used for this statement (level=2) 统计信息
----------------------------------------------------------
9 recursive calls
0 db block gets
90 consistent gets
2 physical reads
0 redo size
2236 bytes sent via SQL*Net to client
519 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
8 rows processed
对比表格:
Cost | consistent gets | Elapsed | |
无索引 | 2250 | 8331 | 0.03s |
有索引 | 12 | 90 | 0.01s |
--2020年2月3日--
索引对单表查询的影响(Cost和consistent gets)的更多相关文章
- mysql索引对单表查询的影响
索引被用来快速找出在一个列上用一特定值的行.没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行.表越大,花费时间越多. 如果表对于查询的列有一个索引,MySQL能快速到达 ...
- MySql分区后创建索引加速单表查询和连表查询
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/konkon2012/article/de ...
- EF查询百万级数据的性能测试--单表查询
一.起因 个人还是比较喜欢EF的,毕竟不用写Sql,开发效率高,操作简单,不过总是听人说EF的性能不是很好,也看过别人做的测试,但是看了就以为真的是那样.但是实际上到底是怎么样,说实话我真的不知道. ...
- Web框架之Django_05 模型层了解(单表查询、多表查询、聚合查询、分组查询)
摘要: 单表查询 多表查询 聚合查询 分组查询 一.Django ORM 常用字段和参数: 常用字段:#AutoFieldint自增列,必须填入参数primary_key = True,当model中 ...
- Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段
单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...
- Mariadb/MySQL数据库单表查询基本操作及DML语句
Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...
- 第二章 单表查询 T-SQL语言基础(3)
单表查询(3) 2.6 处理字符数据 字符数据的查询处理,内容包括:类型,排序规则,运算符和函数,以及模式匹配. 2.6.1 数据类型 SQL Server支持两种字符数据类型----普通字符和Uni ...
- day04 mysql单表查询 多表查询 pymysql的使用
day04 mysql pymysql 一.单表查询 1.having过滤 一般用作二次筛选 也可以用作一次筛选(残缺的: 只能筛选select里面 ...
- Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...
随机推荐
- javascript函数的笔记
1.函数的概念 封装一段可以被重复调用执行的代码块来实现大量代码的重复使用 2.函数的使用分为两步:声明函数 和 调用函数 3.声明函数的关键字全部是小写 4.函数名一 ...
- puppet单机模型
puppet配置 命令 facter -p: 显示所有的变量 puppet apply [-v] [--noop] [-e 'puppet expression: 一般为include httpd等' ...
- SQL性能优化-查询条件与字段分开执行,union代替in与or,存储过程代替union
PS:概要.背景.结语都是日常“装X”,可以跳过直接看优化历程 环境:SQL Server 2008 R2.阿里云RDS:辅助工具:SQL 审计 概要 一个订单列表分页查询功能,单从SQL性能来讲,从 ...
- 【Redis】Redis开篇与如何安装单机版Redis,这次我会了!!
写在前面 很早之前,就有不少小伙伴微信留言说:冰河,你能不能写一个Redis专栏啊,我最近在学习Redis,看书看不下去,学习视频又觉得视频太长了,还是看你的文章比较给力!哈哈,原来我写的文章能够让小 ...
- 2020-05-21:es底层读写原理?倒排索引原理?
福哥答案2020-05-21: es不熟悉,答案仅供参考:es写数据过程1.客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2.coordinatin ...
- Linux下安装Readis
Redis的官方下载网址是:http://redis.io/download (这里下载的是Linux版的Redis源码包) Redis服务器端的默认端口是6379. 首先我们先把整体的流程先书写下 ...
- 【原创】Linux虚拟化KVM-Qemu分析(一)
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9 ...
- N46期第一周作业
1.解释drwx rwx rwx中每个字符表⽰什么? d : 表示目录文件 ①rwx表示UID的读写执行权限 ②rwx表示GID的读写执行权限 ③rwx表示other的读写执行权限 2.li ...
- Petya and Graph/最大权闭合子图、最小割
原题地址:https://codeforces.com/contest/1082/problem/G G. Petya and Graph time limit per test 2 seconds ...
- Dbeaver连接Hive和Mysql的配置
1.连接Hive 首选需要配置Hive 这里我们采用的是JDBC的连接方式 (1) 在Hive中后台启动hiveserver2 [root@hadoop-101 hive]# bin/hiveserv ...