oracle查詢最佳化,預存程序select表迴圈插入另一個表,以及索引重建

來源:互聯網
上載者:User

標籤:

查詢語句pl/sql中用F5最佳化語句

ORACLE的explain plan工具的作用只有一個,擷取語句的執行計畫
1.語句本身並不執行,ORACLE根據最佳化器產生理論上的執行計畫
2.語句的分析結果存放在表PLAN TABLE中

select * from TABLE
where NOWTIME >=to_date(‘20160101‘,‘yyyy-mm-dd‘) and NOWTIME < to_date(‘20160102‘,‘yyyy-mm-dd‘)

通過顯示select語句是走索引的“INDEXRANGE SCAN”後邊是索引名稱,cost顯示成本,走索引成本是很低的。

如果沒有“INDEXRANGE SCAN”,表之前是建有索引,說明索引失效,我們無需刪掉再建立索引,只需要用以下語句重建索引,速度很快,即使表裡有上千萬資料。

alter index index_name rebuild tablespace tablespace_name 加入資料表空間名,會將指定的索引移動到指定的資料表空間當中。

索引在重建時,查詢仍然可以使用舊索引。實際上,oracle在rebuild時,在建立新索引過程中,並不會刪除舊索引,直到新索引rebuild成功。  從這點可以知道rebuild比刪除重建的一個好處是不會影響原有的SQL查詢,但也正由於此,用rebuild方式建立索引需要相應資料表空間的空閑空間是刪除重建方式的2倍。重建索引有多種方式

預存程序:

//////////////////////////////////////////

create or replace procedure loop_while
(
start_date in date,
end_date in date
)
is
current_date date := start_date;

current_date_end date;
begin
while current_date <=end_date
loop
current_date_end:=current_date+1;
insert into TABLE1
select * from TABLE
where NOWTIME >=current_date and NOWTIME < current_date+1 ;
commit;
current_date:=current_date+1;
end loop;
end loop_while;

/////////////////////////////////////////////////////////////////

按天迴圈插入表中。

 

oracle查詢最佳化,預存程序select表迴圈插入另一個表,以及索引重建

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.