1. 程式人生 > >oracle 臨時表 with as 寫法

oracle 臨時表 with as 寫法

專案中早些時間,有個oracle查詢語句寫的極其複雜,因為資料量小的關係,當時也並沒有怎麼在意,回來隨著時間過去,客戶資料庫數量越來越大,那段語句的劣性就體現的非常明顯。優化時,發現查詢關係邏輯混亂又複雜(雖然資料查詢結果並沒有錯),多個類似的子查詢巢狀,導致查詢效能變的很低。


  尋求資料知道ORACLE有個WITH as 用法及其好用 


     寫法大致如下:


  WITH  query1 AS


(select ...from ....where ..),


query2  AS


(select...from ...where..),


query3 AS


(select...from ...where..)


SELECT ...FROM query1,quer2,query3 


where ....;


  上述程式碼,每一個逗號(必不可少)代表一段子查詢,觀察執行計劃發現,執行時with as 中的子查詢結果會以臨時表的形式存在。


這樣寫每段子查詢相應的表僅會被檢索一次,不會像原來巢狀的一樣反覆掃描相同的表,達到了“少讀的目的”,大大提高了資料分析以及查詢效率.

相關推薦

oracle 臨時 with as 寫法

專案中早些時間,有個oracle查詢語句寫的極其複雜,因為資料量小的關係,當時也並沒有怎麼在意,回來隨著時間過去,客戶資料庫數量越來越大,那段語句的劣性就體現的非常明顯。優化時,發現查詢關係邏輯混亂又複雜(雖然資料查詢

ORACLE創建臨時事務global temporary table 和 查詢時臨時with tempName as (select ) select

query 問題 weight select 別名 onf bold hellip course 創建臨時事務表只是保存當前會話(session)用到的數據,數據只在事務或會話期間存在,可規避多線程調用數據沖突問題 -- Create table create glo

ORACLE臨時空間總結

datafile 資源 indicate height 完成 round clip blocks rip 臨時表空間概念 臨時表空間用來管理數據庫排序操作以及用於存儲臨時表、中間排序結果等臨時對象,當ORACLE裏需要用到SORT的時候,並且當PGA中sort_ar

oracle 臨時空間 占用磁盤空間

oracle 臨時表空間新創建一個臨時表空間 tmpacreate temporary tablespace TEMPA TEMPFILE ‘/oracle/tmp/tempa01.dbf ‘ SIZE 8192M REUSE AUTOEXTEND ON NEXT

Oracle臨時空間使用分析

臨時表空間查詢臨時表空間的使用情況: select * from (select a.tablespace_name,sum(maxbytes/1024/1024/1024) total_G,sum(a.bytes/1024/1024) allocated_mbfrom dba_temp_files awhe

oracle 臨時空間使用情況

HA 空間占用 limited 空間使用 ase hash join sel ted 不足 今天用戶那邊執行一個很簡單的SQL,輸出結果集也才幾萬條,涉及三表,最大也才100萬數據量,結果卻報了表空間不足的情況,理論來說,這樣的SQL怎麽也不應該吃這麽多臨時表空間。 查詢臨

解決Oracle臨時空間佔滿的問題

正常來說,在完成Select語句、create index等一些使用TEMP表空間的排序操作後,Oracle是會自動釋放掉臨時段的。但有些有侯我們則會遇到臨時段沒有被釋放,TEMP表空間幾乎滿的狀況,甚至是我們重啟了資料庫仍沒有解決問題。這個問題在論壇中也常被網友問到,下面我總結一下,給出幾

ORACLE 臨時空間管理

 臨時表空間和臨時段   臨時表空間用於存放排序、臨時表等資料,其資訊不需要REDO,因此臨時表的DML操作往往比普通表產生的REDO少很多。臨時表資料變化不產生REDO,UNDO資料變化產生REDO。臨時段不僅僅存在於臨時表空間中,也可能存在普通表空間。比如通過CTAS建立一張表,新表的資料放在

oracle 臨時效能下降

oracle生產環境上有個儲存過程執行一段時間之後效能下降。初步定位後發現是臨時表的插入效能降低: insert into  臨時表A (...) select ... from ... .      其中select .. from ...的速度很快

oracle 多個with as

今天去面試,遇到一個問題。 題目是這樣的: 表1: SQL> select * from tb_data; ID CODE1 CODE2 ---------- ---------- ---------- 1

ORACLE 臨時空間使用率過高的原因及解決方案

        在資料庫的日常學習中,發現公司生產資料庫的預設臨時表空間temp使用情況達到了30G,使用率達到了100%; 待調整為32G後,使用率還是為100%,導致磁碟空間使用緊張。根據臨時表空間的主要是對臨時資料進行排序和快取臨

oracle 臨時空間不夠了

SELECT *   FROM v$session se,       v$sort_usage suWHERE se.saddr=su.session_addr      SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_

oracle臨時的用法總結

每天進步一點一點 MySQL,Oracle,Data Architect email/msn:[email protected] QQ :106708376 QQ群 :26770683 weibo :weibo.com/skatexg

oracle臨時空間過大的原因&&處理

oracle臨時表空間過大的原因 2009-05-12 11:22 Oracle臨時表空間主要是用來做查詢和存放一些快取的資料的,磁碟消耗的一個主要原因是需要對查詢的結果進行排序,如果沒有猜錯的話,在磁碟空間的(記憶體)的分配上,Oracle使用的是貪心演算法,如果上次磁碟空間消耗達到1GB,那麼臨時表空

Java 開發建立oracle臨時語句

將Connection設定為非自動提交setAutoCommit(false) 1.CREATE   GLOBAL   TEMPORARY   TABLE   TABLENAME   (           COL1     VARCHAR2(10),          

一個開發需求的解決方案 & Oracle臨時介紹

一、開發需求 最近有一個開發需求,大致需要先使用主表,或主表和幾張子表關聯查詢出ID(主鍵)及一些主表字段,然後再用這些ID查詢最多10張表中對應的記錄,主表記錄數大約2000萬,每張子表的記錄數均為百萬以上,最多可能會有5000萬,主表一條資料可能對應子表多

oracle臨時的用法總結 .

關鍵字: 基本概念,原理 臨時表的特點,什麼時候用 前段時間,新公司的面試官問了一個問題,臨時表的作用,以前我們用快取中間資料時候,都是自己建一個臨時表。其實oracle本身在這方面就已經考慮很全了,除非有些高階應用,我再考慮自己建立臨時表。由於本人對臨時表的瞭解不是很多,於是回來蒐集下這方面的資料,彌

oracle 臨時空間組的概念

個人資訊 姓名:lyg ------------------------------ 地點:上海----------------------------- 職位:ebs dba ----------------------- email:[email prot

oracle臨時的使用(未完)

臨時表 臨時表就是用來暫時儲存臨時資料(亦或叫中間資料)的一個數據庫物件,它和普通表有些類似,然而又有很大區別。它只能儲存在臨時表空間,而非使用者的表空間。ORACLE臨時表是會話或事務級別的,只對當前會話或事務可見。每個會話只能檢視和修改自己的資料。