區域性範圍掃描的靈活應用
區域性範圍掃描的概念:摘自《海量資料庫的解決方案》
能夠實現區域性範圍掃描方式的SQL具有一個非常顯著的特徵,就是不論處理的資料量有多大,始終都能夠確保具有較快的執行速度。也許這句具有魅力的話有些不符合常理,但是對於我們而言,這難道不是我們所追求的目標嗎?
在實現了區域性範圍掃描的瞬間,SQL開始從大量的限制中獲得了自由,但是很明顯在變形之前的SQL中有可能會存在著一些不符合區域性範圍掃描準則的要素,之所以實現了區域性範圍掃描,是因為我們對SQL做了適當變形並使其遵循了區域性範圍掃描的準則。
無法使用區域性掃描的情況:
Group 聚合函式,如sum,avg,count,min,max等。
Order by。
Sort。
Union。
Minux。
一、用讀取路徑實現對排序的替代操作。
表test01索引建在object_name和object_id上。
整體範圍掃描:
select t.owner,t.object_name,t.object_type
from test01 t
where t.object_type like 'TABLE%'
order by t.object_name。
區域性範圍掃描:
select /*+ index_desc(t IDX_OBJECTNAME)*/t.owner,t.object_name,t.object_type --表有別名的必須使用別名,否則hint不會生效的。
from test01 t
where t.object_type like 'TABLE%'
二、max,min的區域性掃描:
全域性掃描:
select max(object_id) from test01 where object_type = 'TABLE';
and t.object_name > ' ';--用該條件才能使用hint提示生效。
區域性掃描:
select /*+ index_desc(test01 IDX_OBJECTID)*/
object_id
from test01
where object_type = 'TABLE'
and object_id > 0 --用該條件才能使用hint提示生效。
and rownum = 1;
三、FILTER型區域性範圍掃描:
select count(*) into cnt from test01 t where t.object_id > 100;
-----------
if cnt > 0
-------------------
如果只是確認存在與否,沒必要對全部資料進行count。
select 1 into cnt from dual
where exists(
select 'X' from test01 t where t.object_id > 100
)
if cnt > 0
只要滿足條件就立即返回。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20577218/viewspace-701401/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL8.0之跳躍範圍掃描MySql
- 掃描線及其應用
- SciPy 應用範圍
- SonarQube系列-透過配置掃描分析範圍,聚焦關鍵問題
- TWAIN掃描識別控制元件:Web應用程式的掃描器SDKAI控制元件Web
- IP Scanner Pro for mac(區域網IP掃描軟體) 5.0啟用版Mac
- PLM系統應用範圍
- java位運算子的應用範圍Java
- 區域網IP掃描軟體 IP Scanner Pro免啟用最新版
- matlab 繪製置信範圍_fill(繪製其區間形成的區域)Matlab
- 樂訊通雲通訊:物聯卡的應用領域範圍有哪些?
- Golang的值型別和引用型別的範圍、儲存區域、區別Golang型別
- Range範圍選區的理解
- 網站被黑客掃描撞庫該怎麼應對防範?網站黑客
- Vue 批量註冊區域性元件及應用Vue元件
- Tresorit推出端到端加密文件掃描應用加密
- 掃描器的存在、奧普 掃描器
- 130被圍繞的區域
- Python寫ARP區域網主機存活掃描與ARP欺騙工具Python
- Linux主要應用範圍有哪些?Linux學習Linux
- MySQL中的全表掃描和索引樹掃描MySql索引
- 機器視覺應用中工業相機的掃描方式視覺
- AWVS掃描器掃描web漏洞操作Web
- 全表掃描和全索引掃描索引
- 130. 被圍繞的區域
- 創業者需要的品質:靈活!靈活!靈活創業
- Cookie 的特徵與範圍用例Cookie特徵
- 正規表示式如何在PHP裡靈活的應用PHP
- Java設計模式——觀察者模式的靈活應用Java設計模式
- 非掃描式定位攻擊域內SQL ServerSQLServer
- 【硬核攝影2.0】用線性CCD器件製作掃描相機
- Excel 2010 SQL應用032 字元範圍的模糊匹配查詢ExcelSQL字元
- 用Python實現圖片的清晰掃描Python
- API關鍵詞介面的應用範圍說明API
- win10系統掃描器提示掃描不到掃描器如何解決Win10
- 掃描器
- LeetCode-130-被圍繞的區域LeetCode
- [20210220]全索引掃描快速索引掃描的邏輯讀.txt索引
- 團體標準的適用範圍