SQL中並行操作
--並行查詢
select /*+parallel(t 4)*/ count(*) from user_tables t;
select /*+parallel(t 4)*/ count(*) from t where object_name in(select /*+parallel(t1 4)*/ object_name from t1);
--一個並行查詢能夠執行,需要滿足下面其中一個:
a)sql語句中有hint提示,比如parallel或者parallel_index;
b)sql語句中引用的物件被設定了並行屬性;
c)多表關聯中至少有一個表執行全表掃描(full table scan)或者跨越分割槽的index range scan
d)在會話中執行:alter session force parallel query parallel 4;
--並行ddl操作:
create table t parallel 4 as select * from dba_objects;
alter table t move partition p1 parallel 4;
alter table t split partition p1 at(5000) into (partition p1,partition p2) parallel 4;
alter table t coalesce partition parallel 4;
create index t_ind on t(id) parallel 4;
alter index t_ind rebuild parallel 4;
alter index t_ind rebuild partition p1 parallel 4;
alter index t_ind split partition p1 at(5000) into (partition p11,partition p12) parallel 4;
--並行DML操作:
DML操作使用並行,必須顯示地在會話裡執行:
alter session enable parallel dml;
delete /*+ parallel(t 2)*/ from t;
update /*+ parallel(t 2)*/ t set name=name||'dcs';
merge /*+parallel(t 2)*/ into t using t1 on (t.id=t1.id) when matched then update set t.name=t1.name;
insert /*+parallel(t 4)*/ into t select /*+parallel(t1 4)*/ * from t1;
insert into t select /*+parallel(t1 4)*/ * from t1;
insert /*+parallel(t 4)*/ into t select * from t1;
insert /*+ append parallel(t,2)*/ into t select * from t;
--sql*loader和parallel:
--如果使用sqlloader的並行直接載入選項,並且表上有索引,將導致載入失敗,可以調整引數:skip_index_maintenance=true,先把資料插入,在rebuild索引。
sqlldr userid=test/oracle control=t.ctl direct=true parallel=true skip_index_maintenance=true log=log.txt;
alter index t_ind rebuild parallel 4;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1343787/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- My SQL 列轉行操作SQL
- systemverilog中for/foreach並行執行並行
- 常用sql 操作SQL
- SQL基本操作SQL
- 一條SQL如何被MySQL架構中的各個元件操作執行的?MySql架構元件
- 建立連結串列並進行增加、刪減操作
- Java 中的並行處理Java並行
- Oracle 中的並行系列(一)Oracle並行
- Nodejs 操作 Sql ServerNodeJSSQLServer
- java讀取excel為物件並進行讀寫操作JavaExcel物件
- ASP.NET 匯出gridview中的資料到Excel表中,並對指定單元格換行操作ASP.NETViewExcel
- 在Pandas中 SQL操作:SQLAlchemy和PyMySQL的區別MySql
- JDK8中的並行流JDK並行
- 同步容器(如Vector)並不是所有操作都執行緒安全!~執行緒
- hive02_SQL操作HiveSQL
- Sql_server基本操作SQLServer
- Oracle中的並行系列(二):你設定的並行真的生效了嗎?Oracle並行
- 從cmd中匯入.SQL檔案並建立資料庫SQL資料庫
- PostgreSQL10.1手冊_部分II.SQL語言_第15章並行查詢_15.4.並行安全性SQL並行
- 在 ABAP 層執行 Open SQL 的幕後操作 - 武俠版SQL
- SQL Server 2008 R2並行資料倉儲簡介SZSQLServer並行
- Android JNI 中的執行緒操作Android執行緒
- PyTorch中的多程序並行處理PyTorch並行
- SQL 操作指令 英文單詞SQL
- Flink SQL之Over 聚合操作SQL
- My SQL常用操作彙總SQL
- C#中的並行處理、並行查詢的方法你用對了嗎?C#並行
- Mybatis執行SQL的4大基礎元件詳解(圖文並茂)MyBatisSQL元件
- RAC中的並行查詢 DOP(Degree of Parallelism)並行Parallel
- 使用go在mongodb中進行CRUD操作MongoDB
- gvim中換行符(Enter鍵)的操作
- LLM並行訓練5-MoE並行並行
- SQL Server 2008中的行壓縮(上)JUSQLServer
- 用PostgreSQL執行檔案中的SQL程式SQL
- Go語言SQL操作實戰GoSQL
- Azure Cosmos DB (二) SQL API 操作SQLAPI
- php操作mysql防止sql注入(合集)PHPMySql
- 不同的SQL語句執行時需要申請並持有對應的鎖SQL
- 一通騷操作,我把SQL執行效率提高了10000000倍!SQL