首页 > 数据库 >SQL优化 INDEX RANGE SCAN (MIN/MAX)

SQL优化 INDEX RANGE SCAN (MIN/MAX)

时间:2024-10-16 11:18:30浏览次数:9  
标签:STATUS INDEX LAST SCAN MAX MIN

问题:

根据STATUS='TABLE',查询最大值LAST_DDL_TIME,STATUS='TABLE' 符合条件记录数超过几十万,怎么优化?

sql如下:

SELECT TO_CHAR(MAX(LAST_DDL_TIME),'YYYY-MM-DD HH24:MI:SS') from t1015 where STATUS='TABLE';

模拟测试:

1.创建测试表

create table t1015 as select * from dba_objects;
SELECT TO_CHAR(MAX(LAST_DDL_TIME),'YYYY-MM-DD HH24:MI:SS') from t1015 where STATUS='TABLE';

2.全表扫描 逻辑读1238

3. INDEX RANGE SCAN (MIN/MAX) 逻辑读为3

创建组合索引(STATUS,LAST_DDL_TIME),执行计划走INDEX RANGE SCAN (MIN/MAX),利用索引有序特性直接取到最大值。

SYS@db11g> create index idx_t1015 on t1015(STATUS,LAST_DDL_TIME) online;

Index created.

4.INDEX FAST FULL SCAN 逻辑读311

如果创建索引时,调换索引顺序(LAST_DDL_TIME,STATUS),则无法使用到INDEX RANGE SCAN (MIN/MAX),只能走INDEX FAST FULL SCAN,逻辑读311。

SYS@db11g> create index idx_t101502 on t1015(LAST_DDL_TIME,STATUS) online;

Index created.

总结:

当需要根据某一列的记录,获取另外一列的最大值最小值时,可以创建索引进行INDEX RANGE SCAN (MIN/MAX),利用索引有序特性直接取到最大值,提高查询效率。

INDEX RANGE SCAN (MIN/MAX) 是数据库优化器在处理 MIN 和 MAX 函数时采用的一种索引扫描策略。这种策略从根本上利用了索引的有序性,直接定位到索引的最小或最大值位置,从而快速返回结果。

标签:STATUS,INDEX,LAST,SCAN,MAX,MIN
From: https://blog.csdn.net/Story_begins/article/details/142961773

相关文章

  • 怎么修改网站admin密码?网站后台修改器?
    修改网站管理员(admin)密码的方法取决于你使用的网站平台或CMS(内容管理系统)。以下是一些常见平台的修改方法:1.WordPress通过WordPress后台:登录到WordPress管理面板。进入“用户”>“所有用户”。找到管理员账户,点击“编辑”。在“账户密码”部分输入新密码。点击“更新......
  • No space left on device or exceeds fs.inotify.max_user_watches?
     sudosysctl-n-wfs.inotify.max_user_watches="99999999"fs.inotify.max_queued_events:表示调用inotify_init时分配给inotifyinstance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。fs.inotify.max_user_instances:表示每一个realuse......
  • 网站phpmyadmin修改密码?
    要在phpMyAdmin中修改数据库用户的密码,你可以按照以下步骤操作:登录phpMyAdmin:打开你的Web浏览器并访问phpMyAdmin的URL地址。输入用户名和密码进行登录。选择数据库服务器:登录后,在左侧菜单栏中选择一个数据库服务器(通常是左侧列表中的MySQL或具体的服务器名称)。进......
  • 【ICPC】The 2021 ICPC Asia Shanghai Regional Programming Contest I
    SteadilyGrowingSteam#动态规划#背包#枚举题目描述AliceenjoysplayingacardgamecalledSteadilyGrowingSteam(asknownasSGS).Inthisgame,eachplayerwillplaydifferentrolesandhavedifferentskills.Playersgetcardsfromthedeckandu......
  • 【ICPC】The 2021 ICPC Asia Shanghai Regional Programming Contest G
    EdgeGroups#树形结构#组合数学#树形dp题目描述Givenanundirectedconnectedgraphofnnnverticesandn......
  • 【ICPC】The 2021 ICPC Asia Shanghai Regional Programming Contest H
    LifeisaGame#最小生成树#重构树#图论#贪心题目描述Agoodproblemshouldhaveaconcisestatement.Youaregivenanarrayaaaoflength......
  • Split and Maximize
    SplitandMaximize根据常识可知,肯定是\(\sum_{i=1}^n2i(2i-1)\)最大,通俗来讲就是相邻两个数相乘是最优的。要达到这个得分,我们应该将\(2i\)和\(2i-1\)一个分给\(A\),一个分给\(B\),并且要保证先后顺序一样,保证\(2i\)可以与\(2i-1\)配对。把\(2i\)看作(,把\(2i-1......
  • minio client 使用
    一、下载minioclientwgethttp://dl.minio.org.cn/client/mc/release/linux-amd64/mcchmod+xmc 二、添加server./mcconfighostaddminio-serverhttps://xxx.xxx.xxx.xxx:9100access-keysecret-key--apis3v4Added`minio-server`successfully../mcconfi......
  • MinIO部署及示例
    docker部署dockerrun\-p9000:9000\-p9001:9001\-d\--nameminio\-v/Users/ivan/code/black/dockerData/minio:/data\-e"MINIO_ROOT_USER=ROOT"\-e"MINIO_ROOT_PASSWORD=MINIO123"\quay.io/minio/mi......
  • tauri2.0-admin桌面端后台系统|tauri2+vite5+element-plus管理后台EXE程序
    原创Tauri2.0+Vue3+ElementPlus客户端通用后台管理系统Tauri2Admin。tauri2-vue3-admin基于最新跨平台框架Tauri2.0整合Vite5+Vue3全家桶搭建的一款轻量级桌面端后台管理系统模板。封装tauri2多窗口切换管理,提供4种通用布局模板,支持vue-i18n国际化、面包屑导航、多标签快捷路......