oracle小知识

来源:互联网 发布:电信2g网络和4g络区别 编辑:程序博客网 时间:2024/05/21 12:42
通常我们认为truncate和drop都是ddl语句,都会释放表占用的空间,且不可回退;而他们的之间的区别在于我们平时忽略的reuse/dropstorage子句.
  reuse storage不会立即释放表的extent,我们可以先使用truncatetable tableName reusestorage,然后分批释放表的extent.这在删除大表时非常有用,避免大量的io操作,影响整体性能.如果使用默认的dropstorage就会立即释放extent,删除的表如果非常大,这对系统有时候这可能是灾难性的.

启用并行查询
SQL> ALTER TABLE T1 PARALLEL;
告知oracle,对T1启用parallel查询,但并行度要参照系统的资源负载状况来确定。
利用hints提示,启用并行,同时也可以告知明确的并行度,否则oracle自行决定启用的并行度,这些提示只对该sql语句有效。
SQL> select count(*) from t1;
 
SQL> select degree from user_tables wheretable_name='T1';
DEGREE
--------------------
  DEFAULT
 
并行度为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 wheretable_name='T1';
 
DEGREE
----------------------------------------
       1
 
数据字典视图
v$px_session
sid:各个并行会话的sid
qcsid:query coordinator sid,查询协调器sid
0 0
原创粉丝点击