posted by 지니우스 2020. 1. 14. 16:28

SELECT dt + INTERVAL lv-1 DAY dt
  FROM (
            SELECT @ROWNUM:=@ROWNUM+1 AS lv
                    , CONCAT('202001','01') dt
             FROM information_schema.`COLUMNS` A
                   , (SELECT @ROWNUM:=0) R
              LIMIT 100
          ) a

posted by 지니우스 2016. 9. 25. 08:58


1. /*+ gather_plan_statistics ckj_as_01 */ 사용하여 쿼리


SELECT /*+ gather_plan_statistics ckj_as_01 */ S8.ITEM_VALUE

FROM   SOD_8 S8 INNER JOIN (SELECT DISTINCT PROD_CD AS ITEM_VALUE

        FROM   SOD_24 S24 INNER JOIN SOD_44 S44 ON S24.PROD_CD = S44.ITEM_VALUE

        AND    S44.STR_CD IN (:1,

                       '981') INNER JOIN (SELECT SUBSTR(S13.ITEM_VALUE, 1, 8) AS ITEM_VALUE

                FROM   SOD_13 S13

                WHERE  S13.CUST_ID = :2 ) A ON S44.CATEGORY_ID LIKE A.ITEM_VALUE||'%'

        WHERE  ROWNUM <= 20 ) A ON S8.ITEM_VALUE = A.ITEM_VALUE




2. SQL_ID 확인


SELECT SQL_ID,SQL_FULLTEXT 

FROM V$SQL 

WHERE SQL_FULLTEXT LIKE '%ckj_as_01%' 

AND SQL_FULLTEXT NOT LIKE '%$%';


SQL_ID        SQL_FULLTEXT                                                                    

------------- --------------------------------------------------------------------------------

1gtk80xx65vah SELECT /*+ gather_plan_statistics ckj_as_01 */ S8.ITEM_VALUE

FROM   SOD_8 S8 INNER JOIN (SELECT DISTINCT PROD_CD AS ITEM_VALUE

        FROM   SOD_24 S24 INNER




3. 실행 쿼리 플랜 확인


select * from table(dbms_xplan.display_cursor('1gtk80xx65vah',null,'ALLSTATS LAST LAST'));


SQL> select * from table(dbms_xplan.display_cursor('1gtk80xx65vah',null,'ALLSTATS LAST LAST'));


PLAN_TABLE_OUTPUT                                                                                                                                                                                                                                                                                           

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SQL_ID  1gtk80xx65vah, child number 0                                                                                                                                                                                                                                                                       

-------------------------------------                                                                                                                                                                                                                                                                       

SELECT /*+ gather_plan_statistics ckj_as_01 */ S8.ITEM_VALUE

 FROM                                                                                                                                                                                                                                          

SOD_8 S8 INNER JOIN (SELECT DISTINCT PROD_CD AS ITEM_VALUE                                                                                                                                                                                                                                                  

FROM   SOD_24 S24 INNER JOIN SOD_44 S44 ON S24.PROD_CD =                                                                                                                                                                                                                                                    

S44.ITEM_VALUE

         AND    S44.STR_CD IN (:1,                                                                                                                                                                                                                                                           

'981') INNER JOIN (SELECT SUBSTR(S13.ITEM_VALUE, 1, 8) AS ITEM_VALUE                                                                                                                                                                                                                                        

FROM   SOD_13 S13

                 WHERE  S13.CUST_ID =                                                                                                                                                                                                                                                     

:2 ) A ON S44.CATEGORY_ID LIKE A.ITEM_VALUE||'%'

         WHERE  ROWNUM                                                                                                                                                                                                                                     

<= 20 ) A ON S8.ITEM_VALUE = A.ITEM_VALUE                                                                                                                                                                                                                                                                   

                                                                                                                                                                                                                                                                                                            

Plan hash value: 2246381816                                                                                                                                                                                                                                                                                 

                                                                                                                                                                                                                                                                                                            

-----------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                         

| Id  | Operation                 | Name             | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |                                                                                                                                                                         

-----------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                         

|   0 | SELECT STATEMENT          |                  |      1 |        |      4 |00:00:00.01 |      74 |       |       |          |                                                                                                                                                                         

|   1 |  NESTED LOOPS             |                  |      1 |     20 |      4 |00:00:00.01 |      74 |       |       |          |                                                                                                                                                                         

|   2 |   VIEW                    |                  |      1 |     20 |      6 |00:00:00.01 |      66 |       |       |          |                                                                                                                                                                         

|   3 |    HASH UNIQUE            |                  |      1 |     20 |      6 |00:00:00.01 |      66 |  1558K|  1558K|  749K (0)|                                                                                                                                                                         

|*  4 |     COUNT STOPKEY         |                  |      1 |        |     20 |00:00:00.01 |      66 |       |       |          |                                                                                                                                                                         

|*  5 |      HASH JOIN            |                  |      1 |   1078 |     20 |00:00:00.01 |      66 |  1557K|  1557K| 1632K (0)|                                                                                                                                                                         

|   6 |       INDEX FAST FULL SCAN| PK_SOD_24        |      1 |   1415 |   1379 |00:00:00.01 |      17 |       |       |          |                                                                                                                                                                         

|   7 |       NESTED LOOPS        |                  |      1 |  80878 |   5237 |00:00:00.01 |      49 |       |       |          |                                                                                                                                                                         

|*  8 |        INDEX RANGE SCAN   | PK_SOD_13        |      1 |      7 |      3 |00:00:00.01 |       3 |       |       |          |                                                                                                                                                                         

|   9 |        INLIST ITERATOR    |                  |      3 |        |   5237 |00:00:00.01 |      46 |       |       |          |                                                                                                                                                                         

|* 10 |         INDEX RANGE SCAN  | IDX_STD_SOD_44_1 |      5 |  11385 |   5237 |00:00:00.01 |      46 |       |       |          |                                                                                                                                                                         

|* 11 |   INDEX UNIQUE SCAN       | PK_SOD_8         |      6 |      1 |      4 |00:00:00.01 |       8 |       |       |          |                                                                                                                                                                         

-----------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                         

                                                                                                                                                                                                                                                                                                            

Predicate Information (identified by operation id):                                                                                                                                                                                                                                                         

---------------------------------------------------                                                                                                                                                                                                                                                         

                                                                                                                                                                                                                                                                                                            

4 - filter(ROWNUM<=20)                                                                                                                                                                                                                                                                                      

5 - access("S24"."PROD_CD"="S44"."ITEM_VALUE")                                                                                                                                                                                                                                                              

8 - access("S13"."CUST_ID"=:2)                                                                                                                                                                                                                                                                              

10 - access((("S44"."STR_CD"=:1 OR "S44"."STR_CD"='981')) AND "S44"."CATEGORY_ID" LIKE                                                                                                                                                                                                                      

SUBSTR("S13"."ITEM_VALUE",1,8)||'%')                                                                                                                                                                                                                                                                        

filter("S44"."CATEGORY_ID" LIKE SUBSTR("S13"."ITEM_VALUE",1,8)||'%')                                                                                                                                                                                                                                        

11 - access("S8"."ITEM_VALUE"="A"."ITEM_VALUE")                                                                                                                                                                                                                                                             

                                                                                                                                                                                                                                                                                                            


41 rows selected.






[Tip!] 2~3단계 한번에 실행하기


SELECT * 

FROM TABLE(

    SELECT dbms_xplan.display_cursor(SQL_ID,null,'ALLSTATS LAST LAST') 

    FROM V$SQL WHERE SQL_FULLTEXT LIKE '%ckj_to_01%' AND SQL_FULLTEXT NOT LIKE '%$%');

posted by 지니우스 2016. 4. 29. 10:50


- - URL Encode function 

CREATE OR REPLACE FUNCTION form_url_encode(

  data    IN VARCHAR2,

  charset IN VARCHAR2) RETURN VARCHAR2 AS

BEGIN

  RETURN utl_url.escape(data, TRUE, charset); 

END;



-- URL Decode function

CREATE OR REPLACE FUNCTION form_url_decode(

  data    IN VARCHAR2,

  charset IN VARCHAR2) RETURN VARCHAR2 AS

BEGIN

  RETURN utl_url.unescape(replace(data, '+', ' '), charset);

END;


posted by 지니우스 2013. 12. 26. 13:05

일반적으로 비밀번호에 영어/숫자가 아닌 한글이 들어가는 경우는 프로그램에서 Filtering하지 못한 경우가 대부분이다.

이렇게 들어간 데이터를 검색하고자 할때 regexp를 사용해서 검사하면 모두 검색할수 있다.

 

SELECT * FROM MEMBER

WHERE USER_PASSWORD REGEXP '[가-힣]';

 

추가로 정규표현식을 공부하면 쉽게 알수 있는 거지만

한글로 시작하는 경우엔 '^[가-힣]'

모두가 한글로 구성된 경우만 검색할경우엔 '^[가-힣]+$'



 [출처] MySQL 정규식(regexp)검사를 통한 한글포함여부 체크|작성자 아찌



posted by 지니우스 2013. 3. 5. 15:11

쿼리앞에 explain 이라고만 붙여주면 된다.


조회되는 필드들의 의미는 엮인글을 참고. 매우 잘 정리해놓으셨굼.

posted by 지니우스 2012. 6. 18. 21:13

SQL> var idenno varchar2(20)
SQL>
SQL> begin
SQL> :idenno := '00001ADEED13DC6C';
SQL> end;
SQL> /

PL/SQL procedure successfully completed.

SQL>
SQL> select * from ITSMEMEMBERINFOTT where iden_no = :idenno;

 

posted by 지니우스 2011. 7. 5. 14:00
spool 쿼리플랜.txt
set timing on
set linesize 1000
set pagesize 200

-- 각각 쿼리별로 GATHER_PLAN_STATISTICS 힌트를 명시안하고자 할때 세션에 전체적으로 적용함
alter session set statistics_level=all; 

-- 대상 쿼리
SELECT /*+ GATHER_PLAN_STATISTICS */
             *
   FROM ... ;

SELECT *
  FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'advanced allstats last +alias +outline +predicate'));

spool off
exit

posted by 지니우스 2010. 6. 11. 09:33
-- (1) trace 시작
alter session set events '10053 trace name context forever, level 1';

-- (2) trace 종료
alter session set events '10053 trace name context off';

-- (3) trc 파일 위치 확인
select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace
  from v$process a, v$session b, v$parameter c, v$instance d
 where a.addr = b.paddr
   and b.audsid = userenv('sessionid')
   and c.name = 'user_dump_dest'

posted by 지니우스 2010. 3. 1. 23:14
stty erase + 컨트롤v + 컨트롤h
posted by 지니우스 2008. 10. 10. 16:23

* MR(Media Recovery , 매체 복구)
* RT(Redo Thread, 리두 쓰레드)
* UN(User Name, 사용자명)
* UL(PL/SQL User Lock , PL/SQL 사용자 잠금(lock))
* DX(Distributed Xaction,분산 활동)
* CF(Control File,컨트롤 화일)
* IS(Instance State,인스턴스 상태)
* FS(File Set,파일 세트)
* IR(Instance Recovery,인스턴스 복구)
* ST(Disk Space Transaction,디스크 공간 트랜잭션)
* TS(Temp Segment,임시세그먼트)
* IV(Libary Cache Invalidation , 라이브러리 캐쉬 무효)
* LS(Log Start or Switch,로그 시작 또는 로그 스위치)
* RW(Row Wait, 행 대기)
* SQ(Sequence Number, 시퀀스 번호)
* TE(Extend Table,테이블 확장)
* TT(Temp Table,임시 테이블)
* TX(Transaction:행레벨 잠금 )
* TM(테이블 레벨 잠금)