單表查詢-分頁提前獲取數據

1、 問題

以下的例子如何優化呢?

SELECT * FROM(SELECT INNER_TABLE.*, ROWNUM OUTER_TABLE_ROWNUM FROM (SELECT t1.* FROM ( SELECT * FROM  T1  ) t1  WHERE 1 = 1 ORDER BY T1.TTIME DESC)INNER_TABLE ) OUTER_TABLE WHERE OUTER_TABLE_ROWNUM<=25AND OUTER_TABLE_ROWNUM >0

在這里插入圖片描述

這個語句是單表全表查詢排序后分頁獲取數據,似乎看起來沒什么優化空間。分頁獲取前25行數據,相當于從按ttime排序后,從這批有序的數據中獲取前25行數據,這里我們可以想到索引是有序的,而要提前獲取數據,在達夢數據庫里需要用到以下兩個參數TOP_ORDER_OPT_FLAG/TOP_ORDER_ESTIMATE_CARD

2、TOP_ORDER_OPT_FLAG/TOP_ORDER_ESTIMATE_CARD

參數參數含義
TOP_ORDER_OPT_FLAG優化帶有 TOP 和 ORDER BY 子句的查詢,使得 SORT 操作符可以省略。優化的效果是盡量使得 ORDER BY 的排序列所對應的基表可以使用包含排序列的索引,從而可以移除排序 SORT 操作符,減少排序操作。如果排序列不屬于同一個基表,或者排序列不是基表列,則無法進行優化。0:不啟用該優化; 1:對最優索引進行優化; 2:優先選擇與排序列一致的可以消除排序的索引進行優化
TOP_ORDER_ESTIMATE_CARDTOP_ORDER_OPT_FLAG=1/2 命中優化時,設置葉子節點的預估掃描行數。下層操作符不是簡單的BT時,如果優化器預估行數不準,可幫助優化器調整,以便選擇最優計劃。默認300。

以上摘自《達夢數據庫管理員手冊》
接下來我們來看看其優化效果
首先我們創建order by中列的索引

CREATE OR REPLACE  INDEX "IDX_DM_T1" ON "T1"("TTIME" DESC)global;

然后我們使用hint看看其效果

SELECT /*+TOP_ORDER_OPT_FLAG(2)*/* FROM(SELECT INNER_TABLE.*, ROWNUM OUTER_TABLE_ROWNUM FROM (SELECT t1.* FROM ( SELECT * FROM  T1  ) t1  WHERE 1 = 1 ORDER BY T1.TTIME DESC)INNER_TABLE ) OUTER_TABLE WHERE OUTER_TABLE_ROWNUM<=25AND OUTER_TABLE_ROWNUM >0

在這里插入圖片描述

這里提前獲取300行數據,然后再分頁取得25行,300也就是TOP_ORDER_ESTIMATE_CARD的配置。

3、小結

假設單表大表排序分頁提前獲取前幾十行數據。通過增加排序列索引加上top_order_opt_flag=2即可達到優化效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89840.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle觸發器:數據世界的“隱形守護者“

今天&#xff0c;我想和大家聊一個在Oracle數據庫領域既強大又神秘的話題——觸發器&#xff08;Trigger&#xff09;?。在座的各位可能都寫過SQL語句&#xff0c;做過表結構設計&#xff0c;甚至用過存儲過程&#xff0c;但有很多人對觸發器的態度可能是"既愛又怕"…

Python桌面版數獨游戲(三版)-增加難易度模式

數獨游戲難度模式解析 在數獨游戲中&#xff0c;難度通常由已知數字&#xff08;提示數&#xff09;的數量決定。難度越高&#xff0c;已知數字越少&#xff0c;玩家需要推理的步驟越多。以下是不同模式下的算法區別和核心代碼解析。 文章目錄數獨游戲難度模式解析1. **難度模…

k8s查看某個pod的svc

在 Kubernetes 中&#xff0c;要查看與特定 Pod 相關的 Service&#xff0c;可以通過以下方法&#xff1a;#### 方法一&#xff1a;通過標簽匹配1. **獲取 Pod 的標簽**bashkubectl get pod <pod-name> --show-labels輸出示例&#xff1a;NAME READY STATUS RESTARTS AGE…

通俗易懂卷積神經網絡(CNN)指南

本文用直觀類比和可視化方法&#xff0c;幫你徹底理解CNN的工作原理&#xff0c;無需深厚數學基礎也能掌握計算機視覺的核心技術。卷積神經網絡&#xff08;CNN&#xff09;是深度學習中革命性的架構&#xff0c;它徹底改變了計算機"看世界"的方式。本文將用最直觀的…

AV1平滑緩沖區

對于解碼的每一幀視頻數據&#xff0c;解碼器都必須從緩沖池中找到一個尚未被使用的幀緩沖區插槽來存儲解碼后的數據。分配的幀緩沖區插槽用于臨時保存解碼過程中生成的幀數據&#xff0c;直到它們被用于顯示或進一步的處理。函數get_free_buffer的作用是在緩沖池中搜索尚未被分…

Python并發編程:突破GIL枷鎖,高效利用多核CPU

解密concurrent.futures的雙引擎&#xff1a;線程池與進程池的明智選擇在Python并發編程領域&#xff0c;concurrent.futures模塊堪稱利器&#xff0c;但如何正確使用其兩大核心組件——ThreadPoolExecutor和ProcessPoolExecutor&#xff0c;卻讓許多開發者困惑。本文將深入剖析…

在Windows Server 2012 R2中安裝與配置IIS服務并部署mssql靶機教程

在Windows Server 2012 R2中安裝與配置IIS服務全指南 IIS&#xff08;Internet Information Services&#xff09;作為Windows系統自帶的Web服務組件&#xff0c;在企業級Web部署、內網服務搭建等場景中應用廣泛。本文將詳細介紹在Windows Server 2012 R2中安裝IIS服務的完整流…

C#/.NET/.NET Core技術前沿周刊 | 第 47 期(2025年7.14-7.20)

前言 C#/.NET/.NET Core技術前沿周刊&#xff0c;你的每周技術指南針&#xff01;記錄、追蹤C#/.NET/.NET Core領域、生態的每周最新、最實用、最有價值的技術文章、社區動態、優質項目和學習資源等。讓你時刻站在技術前沿&#xff0c;助力技術成長與視野拓寬。 歡迎投稿、推薦…

一.AD域與DFS集群-AD域安裝

目錄 1.網絡規劃 2.主域控安裝 3.輔助域控安裝 1.網絡規劃 服務器名稱IP地址DNS名稱主域控192.168.188.2pdc.test.cn輔助域控192.168.188.3bdc.test.cnDFS1192.168.188.4dfs1.test.cnDFS2192.168.188.5dfs2.test.cn 服務器系統版本為windows server 2022 2.主域控安裝 第一…

BUUCTF在線評測-練習場-WebCTF習題[BSidesCF 2020]Had a bad day1-flag獲取、解析

解題思路打開靶場&#xff0c;作者對我們進行了親切的關懷老規矩查看源碼、抓包并沒有發現什么貓膩點下面兩個按鈕會出現貓貓狗狗的圖片&#xff0c;此時我們發現url多了個 參數category那么比較明顯就是提示我們是任意文件包含、任意文件讀取漏洞了找不到任何信息&#xff0c;…

stm32mp157f-dk2安裝鏡像并且部署qt全流程

在網上看的關于stm32mp157的開發教程太少了&#xff0c;于是乎寫一篇踩坑筆記&#xff0c;僅供學習參考 大概流程&#xff1a;在虛擬機通過stm32cubeprogrammer燒錄鏡像&#xff0c;然后燒錄成功之后&#xff0c;給stm32mp157連接網線&#xff0c;使得開發板有ip地址&#xff…

遺像照片尺寸要求及手機制作打印方法

遺像作為寄托哀思的重要載體&#xff0c;其規格和質量都有嚴格要求。本文將詳細介紹遺像照片的標準尺寸規范&#xff0c;并提供使用手機快速制作合規遺像的完整方案。一、遺像照片的標準尺寸要求遺像照片的尺寸主要分為傳統黑白遺像和現代彩色遺像兩種規格。傳統黑白遺像一般采…

適配器模式 (Adapter Pattern)

適配器模式 (Adapter Pattern) 適配器模式是一種結構型設計模式&#xff0c;用于解決兩個不兼容接口之間的兼容性問題&#xff0c;充當兩個不同接口之間的橋梁。 &#x1f31f; 核心思想轉換接口&#xff1a;將一個類的接口轉換成客戶端期望的另一個接口&#xff0c;使原本不兼…

03-虛幻引擎藍圖類的各父類作用講解

虛幻引擎&#xff08;Unreal Engine&#xff09;的藍圖系統提供了多種父類&#xff0c;每種父類都有其特定的用途和生命周期。理解這些父類的作用&#xff0c;是高效使用藍圖開發游戲的基礎。以下是虛幻引擎中常見藍圖父類的詳細講解&#xff1a;1. Actor 作用&#xff1a;所有…

141 個 LangChain4j Maven 組件分類解析、多場景實戰攻略

141 個 LangChain4j Maven 組件分類解析、多場景實戰攻略 文章目錄 141 個 LangChain4j Maven 組件分類解析、多場景實戰攻略 1. 引言 2. LangChain4j 組件分類 2.1. 核心模塊 (Core Modules) 2.2. LLM 集成 (LLM Integrations) 2.3. 向量存儲集成 (Embedding Store Integratio…

Python可迭代歸約函數深度解析:從all到sorted的進階指南

在Python中&#xff0c;歸約函數&#xff08;Reduction Functions&#xff09;是處理可迭代對象的利器。它們通過遍歷元素并逐步收斂為單個結果&#xff0c;廣泛應用于數據分析、邏輯判斷和數值計算等場景。本文將系統梳理這些函數的核心特性、使用技巧及底層邏輯&#xff0c;助…

大帶寬服務器都有哪些應用場景?

大帶寬服務器憑借著高速的數據傳輸能力和強大的網絡承載能力&#xff0c;通常被企業應用在需要高流量和高并發處理能力的業務場景當中&#xff0c;下面&#xff0c;就讓我們共同了解一下大帶寬服務器的應用場景吧&#xff01;首先&#xff0c;隨著科學技術的快速發展&#xff0…

爬蟲實戰指南:從定位數據到解析請求的全流程解析

爬蟲的本質是什么&#xff1f; 爬蟲的本質就是用代碼模擬人類在瀏覽器里的操作&#xff0c;像點擊網頁、填寫表單、提交數據等行為&#xff0c;自動化地進行網頁數據的獲取和處理。比如&#xff1a; 發送 GET 請求 來請求網頁內容&#xff0c;相當于你在瀏覽器地址欄輸入網址…

Sentinel dashboard 添加context-path后無法信息無法上傳問題

Sentinel dashboard 添加context-path后無法加載問題 添加server.servlet.context-path/sentinel后可以正常訪問&#xff0c;但是客戶端啟動后信息上報失敗。 transport: dashboard: localhost:8858/sentinel 經查閱文檔需要加入api-path&#xff0c;但是我配置提示無api-path所…

iOS —— 3Gshare項目總結與思考

登陸注冊及推出主頁面這部分有兩種寫法&#xff1a;一種是在SceneDelegate中推出LoginVC&#xff0c;后在判斷登陸成功后退去主要程序。另一種則是先加載主程序&#xff0c;后推出登陸頁面。通過同組同學實踐證明&#xff0c;后者在推出登陸頁面時會閃一下&#xff0c;因此還是…