oracle在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描)
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,实验环境:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production1、创建表插入数据SQL> creat
千家信息网最后更新 2024年12月13日oracle在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描)
实验环境:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
1、创建表插入数据
SQL> create table txtx(id int,name char(2),tx char(3),id1 int,primary key(id,name,tx));表已创建。SQL> insert into txtx values(1,'tx','tx',1);已创建 1 行。SQL> insert into txtx values(2,'tx','tx',2);已创建 1 行。SQL> insert into txtx values(3,'tx','tx',3);已创建 1 行。SQL> commit;
SQL> select * from txtx; ID NA TX ID1---------- -- --- ---------- 1 tx tx 1 2 tx tx 2 3 tx tx 3
2、执行计划
SQL> explain plan for select * from txtx where id=1 and id1 =1 and tx='tx';已解释。SQL> set linesize 200SQL> select * from table(DBMS_XPLAN.DISPLAY);PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Plan hash value: 4191381592--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 35 | 3 (0)| 00:00:01 ||* 1 | TABLE ACCESS FULL| TXTX | 1 | 35 | 3 (0)| 00:00:01 |--------------------------------------------------------------------------Predicate Information (identified by operation id):---------------------------------------------------PLAN_TABLE_OUTPUT-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 - filter("ID"=1 AND "ID1"=1 AND "TX"='tx')Note----- - dynamic sampling used for this statement (level=2)已选择17行。
通过以上执行计划,可以看出,不含前导列,进行了全表扫描,以下使用了前导列,查询速度就上来了
SQL> explain plan for select * from txtx where id=1 and name ='tx' and tx='tx';已解释。SQL> select * from table(DBMS_XPLAN.DISPLAY);PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Plan hash value: 913771524--------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 35 | 1 (0)| 00:00:01 || 1 | TABLE ACCESS BY INDEX ROWID| TXTX | 1 | 35 | 1 (0)| 00:00:01 ||* 2 | INDEX UNIQUE SCAN | SYS_C0024000 | 1 | | 1 (0)| 00:00:01 |--------------------------------------------------------------------------------------------Predicate Information (identified by operation id):PLAN_TABLE_OUTPUT----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 - access("ID"=1 AND "NAME"='tx' AND "TX"='tx')已选择14行。
前导
解释
选择
查询
数据
环境
速度
实验
索引
组合
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全哪个公司待遇好
伊朗 服务器
计算机网络技术基础项目视频
工控网络安全意义
中级网络技术
火山软件开发平台找图
天津诚信网络技术咨询售价
软件开发合同履行一半解除
中国工业企业数据库说明文件
华阳通用电子软件开发工程师
江苏进口网络技术代理价钱
正规网络技术服务产品
2021网络安全知识培训
数据库eps多少兆每秒
医院无密码的网络安全吗
网络安全收藏备用
航运网络安全典例
kvs数据库优点
私服服务器认证失败
蜗牛星服务器噪音大
泛基因分析需要服务器吗
北京小狮子网络技术
微信运动不同步数据库
湖南凯狐网络技术有限工司
产品配置器怎么做数据库
数据库二维表和试算表
腾讯视频网络安全课
数据库安全性的不足之处
苹果恢复服务器时间
中国网络安全服务企业排名