通常我们认为truncate和drop都是ddl语句,都会释放表占用的空间,且不可回退;而他们的之间的区别在于我们平时忽略的reuse/drop storage子句.
启用并行查询
SQL> ALTER TABLE T1 PARALLEL;
告知oracle,对T1启用parallel查询,但并行度要参照系统的资源负载状况来确定。
利用hints提示,启用并行,同时也可以告知明确的并行度,否则oracle自行决定启用的并行度,这些提示只对该sql语句有效。
SQL> select count(*) from t1;
SQL> select degree from user_tables where table_name='T1';
DEGREE
--------------------
并行度为Default,其值由下面2个参数决定
SQL> show parameter cpu
NAME
TYPE
VALUE
------------------------------------ ----------- ------------------------------
cpu_count
integer
2
parallel_threads_per_cpu
integer
2
cpu_count表示cpu数
parallel_threads_per_cpu表示每个cpu允许的并行进程数
default情况下,并行数为cpu_count*parallel_threads_per_cpu
取消并行设置
SQL> alter table t1 noparallel;
SQL> select degree from user_tables where table_name='T1';
DEGREE
----------------------------------------
数据字典视图
v$px_session
sid:各个并行会话的sid
qcsid:query coordinator sid,查询协调器sid