목록Database (39)
승적이익강 (勝敵而益强)
첫번째로 인덱스 사용에 관한 사항입니다. 다음은 KBORA의 대표적인 튜닝사례입니다. 아래 SQL은 하나의 테이블을 access합니다. win_pay_info : 약 2100만건 - 인덱스 1. win_pay_info_date: period_flag+pay_date 2. win_pay_info_date_draw: pay_date+sale_draw_no+period_flag 3. win_pay_info_draw: period_flag+sale_draw_no 4. win_pay_info_draw_date: sale_draw_no+pay_date+period_flag - 컬럼 period_flag: varchar2(2) pay_date: varchar2(8) sale_draw_no: number(8) ****..
1. lock걸리 잡 찾기 select nvl(S.USERNAME,'Internal') username, nvl(S.TERMINAL,'None') terminal, L.SID||','||S.SERIAL# Kill, U1.NAME||'.'||substr(T1.NAME,1,20) tab, decode(L.LMODE,1,'No lock', 2,'Row Share', 3,'Row Exclusive', 4,'Share', 5,'Share Row Exclusive', 6,'Exclusive',null) lmode, decode(L.REQUEST,1,'No lock', 2,'Row Share', 3,'Row Exclusive', 4,'Share', 5,'Share Row Exclusive', 6,'Exclusive'..
집합의 최적화2 튜닝전 select p.problem_code_id, nvl(temp.count,0) from problem_code p, (select h.problem_code_id, count(h.problem_code_id) count from hot_call h, web_user w where to_date('2004-01-01-000000', 'YYYY-MM-DD-HH24MISS') < h.accept_date and h.accept_date
집합의 최적화 튜닝전 select sysdate, win.sale_draw_no, sysdate, sysdate, to_char(nvl((SUM(win.win_game_1)), 0) ,'999,999,999'), to_char(nvl(SUM(win.win_amount_1), 0),'999,999,999,999,999,999'), to_char(nvl((SUM(win.win_game_2)), 0) ,'999,999,999'), to_char(nvl(SUM(win.win_amount_2), 0),'999,999,999,999,999,999'), to_char(nvl((SUM(win.win_game_3)), 0) ,'999,999,999'), to_char(nvl(SUM(win.win_amount_3), 0)..
-- 아래는 숫자를 한글로만 Return하는 함수입니다. -- ============================================================================= CREATE OR REPLACE FUNCTION F_Pernum(AMT VARCHAR2) RETURN VARCHAR2 IS V_RETURN_VALUE VARCHAR2(2); BEGIN IF AMT='1' THEN V_RETURN_VALUE := '일'; END IF; IF AMT='2' THEN V_RETURN_VALUE := '이'; END IF; IF AMT='3' THEN V_RETURN_VALUE := '삼'; END IF; IF AMT='4' THEN V_RETURN_VALUE := '사'; EN..
첫번째 방법 select * from table_name sample(10) 위와 같이 sample 함수를 사용하시면 ( ) 안에 명시된 숫자 만큼을 전체를 100%로 보고 10% 데이터를 랜덤으로 가져오게 됩니다. 두번째 방법 SELECT A.ID FROM ( SELECT ID, DBMS_RANDOM.RANDOM, ROW_NUMBER() OVER(ORDER BY DBMS_RANDOM.RANDOM) AS RNUM1 FROM TABLE_NAME ORDER BY DBMS_RANDOM.RANDOM ) A WHERE A.RNUM1 > 0 AND A.RNUM1
http://korea.internet.com/channel/content.asp?cid=436&nid=22225 [엔코아 유경진 담당]관계형 데이터베이스에서 효율적인 데이터연결 - OuterJoin의 원리 및 활용방안 이라는 내용으로 해당 링크에 outer join에 대한 내용이 자세히 나와있음 SELECT * FROM test_table1 t1 FULL OUTER JOIN test_table2 t2 ON t1.field1 = t2.field1 4.2 Oracle 9i 에서 Full Outer Join 사용하기 Full Outer Join을 각각 다른 방향으로 Outer Join을 한 후 union을 하면 같은 집합을 2번 읽어야 하는 비효율과 union 하면서 생기는 sort의 부하가 있다. Orac..
10-1.산술 함수 ABS(n) : 절대값 |n| sin() cos() tan() sinH() cosH() tanH() : radian값을 이용 ex> 30' 일 경우 sin(30* (3.14.../180)); exp(n) : 지수값 e를 밑으로 하는 e의 n승 값; LN(n):자연 log값 밑수 e 지수 n SQRT(n): 루트n power(m,n): m의 n승 MOD(m.n) : m을 n 으로 나눈 나머지 floor(n): n보다 작은 정수값들중에서 최대값 ceil(n): n보다 큰 정수값들중에서 최소값 ex> floor(3.5) --> 3 , ceil (3.5) --> 4 floor(-3.2) --> -4 , ceil (-3.5) --> -3 greatest(m,n): 두 수중에서 큰것 least(..
문자 함수 CHR(N) CHR 함수는 이진 N 값에 해당하는 문자 즉 ascii N 값을 반환한다 SQL> select chr(66) from dual; C - B concat(char1,char2) 주워진 두 문자열을 합친다 || 연산자와 같다 SQL> select concat(name,'은 성실하다') name from wowbbs; name ---------------- 홍길동은 성실하다 length 문자열 길이 구하기 SQL> SELECT length('123456789') from dual ; LENGTH('123456789') ------------------- 9 substr(문자열,시작위치,문자수) 문자열 구하기 SQL> SELECT substr('123456789',2,3) from du..
create table test ( user_id varchar(30), ques_num int, correct_num int) ------------------ pfeeling 1 0 pfeeling 2 1 pfeeling 3 1 tester 1 1 tester 3 1 ----------------- 결과 user_id minor1 minor2 minor3 --------------------------- pfeeling 0 1 1 tester 1 1 SELECT A.user_id, MAX(DECODE(ques_num-1,0,correct_num)MINOR1, MAX(DECODE(ques_num-1,0,correct_num)MINOR2, MAX(DECODE(ques_num-1,0,correct_num)..