自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 并行HASH JOIN小表广播问题

小表没广播的: Plan hash value: 3863004939 --------------------------------------------------------------------------------------------------------------------------------------------------------------

2013-12-31 10:02:56 1665

原创 WITH AS 优化逻辑读

SQL> select * from fxqd_list_20131115_new where (acct_no, oper_no, seqno, trans_amt) not in (select acct_no, oper_no, seqno, trans_amt from fxqd_list where reg_date =

2013-12-31 08:50:42 668

原创 利用WITH AS 优化FILTER

SQL> explain plan for select * from fxqd_list_20131115_new where (acct_no, oper_no, seqno, trans_amt) not in (select acct_no, oper_no, seqno, trans_amt from fxqd_list

2013-12-31 08:40:20 830

原创 WITH AS and materialize hints

WITH AS: 就是将一个子查询部分独立出来,有时候是为了提高SQL语句的可读性,有时候是为了提高SQL语句性能。 如果一个SQL语句中,某个表会被访问多次,而且每次访问的限制条件一样的话,就可以使用with as来提高性能。 注意:如果 with as 短语没有被调用2次以上,CBO就不会讲这个短语获取的数据放入temp表,如果想要讲数据放入temp

2013-12-30 22:18:21 1526

原创 NOT EXISTS优化

INSERT INTO F_PTY_INDIV (PTY_ID, PTY_NAME, GENDER_CD, BIRTHDAY, CERT_TYPE, CERT_NO, SOCINSUR_NO, COUNTRY_CD, NATION, POLITICS_CD, MARRIAGE_STAT, FAMILY_

2013-12-30 20:53:23 1000

转载 Oracle 直接路径读

在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了。 在10g中,都是通过gc buffer来读的,所以不存在direct path read的问题。  direct path read较高的可能原因有:  1. 大量的磁盘排序操作,order by, group by, union, distinct, ro

2013-12-28 08:45:36 3313

原创 IN改写关联注意事项!

SQL> select * from a1; ID NAME---------- ---------- 1 a 2 aSQL> select * from a2; ID NAME---------- ---------- 1 a 3 aSQL> select * from a1 where id in (select id from

2013-12-27 22:19:31 661

原创 Oracle 搜集统计信息

常用的统计信息收集脚本:非分区表:BEGIN  DBMS_STATS.GATHER_TABLE_STATS(ownname          => 'SCOTT',                                tabname          => 'DEPT',                                estimate_percent

2013-12-27 19:19:20 759

原创 确认执行计划中分区号对应的分区

explain plan for select *from (SELECT 20131223 AS DATA_DATE, NVL(T1.ACCT_NO, T2.ACCT_NO) AS ACCT_NO, NVL(T1.ACCT_ORD, T2.ACCT_ORD) AS ACCT_ORD, NVL(

2013-12-27 11:33:57 641

原创 char类型关联

SQL> create table a1(id int,name char(10));Table created.SQL> create table a2(id int,name char(10));Table created.SQL> insert into a1 values(1,'a');1 row created.SQL> commit;

2013-12-26 11:09:47 607

原创 神一样的代码

declare cursor c_update is select b.acct_skid, a.acct_id from opt_acct_fdim a, opt_acct_fdim_bkp b where a.acct_id = b.acct_id; v_counter number;begin v_counter := 0; for v_row

2013-12-25 20:56:05 715

原创 JAVA程序,SESSION没有关闭导致数据库异常

可以看到连接到数据库的机器名为perass:PROCESS 1234表示是JDBC的进程

2013-12-25 16:42:43 1669 1

原创 Oracle导出存储过程

SQL> SELECT * FROM dba_directories ;OWN DIRECTORY_NAME DIRECTORY_PATH------- ---------------------- ---------------SYS DPUMPDIR /oracle/bakup

2013-12-25 15:16:04 935

原创 正在执行的SQL和之前执行的SQL

SQL> select * from v$mystat where rownum<2; SID STATISTIC# VALUE---------- ---------- ---------- 1996 0 0SQL> select count(*), USERNAME from v$session group by use

2013-12-25 13:52:29 575

原创 查看TEMP使用情况

SQL> select * from v$mystat where rownum       SID STATISTIC#    VALUE---------- ---------- ----------      1996     0        0SQL> create index acct_dtl_af_idx4 on T_PM_ACCT_DTL_AF (acct_flag

2013-12-25 13:04:51 734

原创 Oracle TEMP表空间切换

SQL> select * from v$mystat where rownum       SID STATISTIC#      VALUE---------- ---------- ----------        88          0          1        88          1          1SQL> select sid, SQL_A

2013-12-25 12:40:01 655

原创 VARCHAR2字段关联

SQL> desc a1 Name                                      Null?    Type ----------------------------------------- -------- ---------------------------- ID

2013-12-25 09:46:35 712

原创 PL/SQL 异常处理

SQL> set serveroutput on SQL> declare  name varchar2(10);begin  select ename into name from emp where empno = &no;  dbms_output.put_line(name);EXCEPTION  when NO_DATA_FOUND THEN    dbm

2013-12-24 20:51:55 689

原创 pl/sql 关于变量定义的问题

1.create or replace procedure  test_prc(p_data_dt in date) IS e_name emp.ename%type;      begin                                                select ename into e_name from emp where hiredat

2013-12-24 17:31:09 948 1

原创 FILTER优化

explain plan for select a.* from fxqd_list_20131115_new_100 a where (acct_no, oper_no, seqno, trans_amt) not in (select acct_no, oper_no, seqno, trans_amt from fxqd_list b

2013-12-24 11:29:14 761

原创 PL/SQL拼接和使用绑定变量

begin  for iin1 ..1000000loop    executeimmediate'insert into p1 values(' || i || ',' || i ||')';    commit;  endloop;end; 可以看到动态使用拼接的是使用的常值 使用绑定变量看到的就是变量的形

2013-12-24 09:58:12 1082

原创 循环处理数据提交

DECLARE V_COUNTER NUMBER; begin V_COUNTER := 0; for i in 1 .. 1000022 loop insert into p1 values(i, 'a' || i); V_COUNTER := V_COUNTER + 1; IF (V_COUNTER >= 10000) THEN CO

2013-12-23 16:08:40 663

原创 游标溢出问题

SQL> set serveroutput onSQL> DECLARE  CURSOR cur IS    SELECT DATA_DATE,  ACCT_NO       ,  ACCT_ORD     ,  ACCT_NO_PK    ,  CARD_CODE     ,  CUST_NO       ,  BANK_CORP_CODE,  MGR_C

2013-12-23 11:45:34 641

原创 查看SGA和PGA使用率

select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total*100,2) pctused from (select 'SGA' name,(select sum(value/1024/1024) from v$sga) total,(select sum(bytes/1024

2013-12-23 10:59:07 6566

原创 根据rowid回表

select rowid from T_PM_DEPOSIT_HIS partition(DEPOSIT_HIS_20120104) ;SQL> set linesize 200SQL> set pagesize 200SQL> set autot trace----该条数据取自partition(DEPOSIT_HIS_20120104) 分区SQL> selec

2013-12-23 08:49:42 645

原创 利用row_number over 函数删除重复记录

SQL> desc a1 Name        Null?    Type ----------------------------------------- -------- ---------------------------- ID          NUMBER(38) NAME          CHAR(10)SQL> select id,name ,count

2013-12-22 16:39:17 892

原创 sequence使用

SQL> create sequence seq1minvalue 1maxvalue 999999999999999999999999999start with 0increment by 1cache 20;  2    3    4    5    6  create sequence seq1*ERROR at line 1:ORA-04006: STA

2013-12-22 15:45:44 1228

原创 为什么不走INDEX FAST FULL SCAN呢

create table test as select * from dba_objects;create index test_idx1 on test(object_name);BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname => 'HR', t

2013-12-21 19:06:45 919

原创 INDEX FAST FULL SCAN和INDEX FULL SCAN

INDEX FULL SCAN 索引全扫描。单块读 。它扫描的结果是有序的,因为索引是有序的。它通常发生在 下面几种情况(注意:即使SQL满足以下情况 不一定会走索引全扫描) 1. SQL语句有order by选项,并且orde

2013-12-21 18:41:19 820

原创 利用ROWID快速执行关联更新

一.构造相关表P1,P2create table p1(id int,name char(10));create table p2(id int,name char(10));二.批量插入数据begin for i in 1 .. 100000 loop insert into p1 values(i,'a'||i); end loop ; commit;

2013-12-20 22:06:44 893

原创 利用ROWID 快速更新单表记录

-----对于普通表实现: UPDATE T_PM_DEPOSIT_HIS b       SET flag = SUBSTR( flag, 1, 8 )||'4'||            CASE              WHEN term                 THEN '1'             ELSE '2'            END A

2013-12-20 13:02:11 785

原创 PL/SQL游标使用

游标是用来处理使用SELECT语句从数据库中检索到的多行记录的工具。借助游标的功能,数据库应用程序可以对一组记录逐个进行处理,每次处理一行。--普通游标,游标本身就是一个变量SQL> DECLARE  2    emp_id employees_test.employee_id%type;  3    CURSOR cur IS  4      SELECT b.employe

2013-12-19 22:42:03 577

原创 IPCS资源

ipcrm用法 ipcrm -M shmkey  移除用shmkey创建的共享内存段ipcrm -m shmid    移除用shmid标识的共享内存段ipcrm -Q msgkey  移除用msqkey创建的消息队列ipcrm -q msqid  移除用msqid标识的消息队列ipcrm -S semkey  移除用semkey创建的信号ipcrm -s semid  移

2013-12-19 14:00:49 743

原创 sort merge join,hash join,netsloop join

Join Operations? SORT-MERGE JOIN– Sorts tables on the join key and then merges them together– Sorts are expensive? NESTED LOOPS– Retrieves a row from one table and finds the corresponding

2013-12-19 12:06:13 632

原创 通过dblink impdp导入

实验:源数据库:10.5.129.160 dwhtest需要导入的数据库:10.5.129.130 dwhtest在10.5.129.130上创建DBLINKSQL> create  public database link DBL_DWHTEST connect to dwf identified by dwf using 'dwhtest160';Database link

2013-12-18 10:16:21 1239

原创 创建range分区

drop table T_PM_ACCT_DTL_AF_TEST;create table T_PM_ACCT_DTL_AF_TEST  (    DATA_DATE     date,    ACCT_NO        VARCHAR2(100),    ACCT_ORD       VARCHAR2(30),    ACCT_NO_PK     VARCHAR2(10

2013-12-17 20:14:18 589

原创 在线重定义

分区转换步骤1.检查源表是否能重定义: SQL> exec dbms_redefinition.can_redef_table('DWF','F_AGT_BUSINESS_CONTRACT_H'); PL/SQL procedure successfully completed.注意:在线重定义,必须要有主键。 2.创建我们需要重新定义的中间表,这个是一个分

2013-12-17 20:01:09 721

原创 创建LIST分区

一:创建分区表create table T_PM_ACCT_DTL_AF_TEST( DATA_DATE NUMBER(8), ACCT_NO VARCHAR2(100), ACCT_ORD VARCHAR2(30), ACCT_NO_PK VARCHAR2(100), ACCT_BAL NUMBER(1

2013-12-16 17:08:35 619

原创 绑定变量窥探和直方图

一、绑定变量的窥探(peek)1、Oracle在处理带有绑定变量的SQL时候,只会在硬解析的时候才会“窥探”一下SQL中绑定变量的值,然后会根据窥探到的值来决定整个SQL的执行计划。参数:_optim_peek_user_binds2、绑定变量窥探的案例create table t8(id int ,name varchar2(100));begin

2013-12-13 14:06:22 679

原创 关于IN-LIST迭代

IN-list iterator (IN-list迭代)字段有索引,in里有多少个值就执行多少次索引扫描。不管值是否在字段里存在~SQL> create table t1 as select * from dba_objects;表已创建。SQL> create index idx_object_id on t1(object_id);索引已创建。SQL

2013-12-12 21:29:56 799

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除