2007. 1. 12. 19:20
Re: oracle 9i에서 sqlplus질문좀 할께요... 게시일: Jan 7, 2007 7:02 AM | ||
sqlplus 에 접속하면 $ORACLE_HOME/sqlplus/admin/glogin.sql 에서 설정된 환경변수들을 가져오지요... 컬럼값은 default로 어떻고 pages는 어떻게 하고 만약 default로 설정된 값을 수정하고 싶다면 glogin.sql을 수정하시면 됩니다. 1. 한 라인에 출력되는 수 조정하기 SQL> set line 150 ==> 150라인까지 넓게 씁니다. default는 80라인일 겁니다. 2. 페이지 수 조정하기 SQL> set pages 1000 => 출력되는 row수가 glogin.sql에 설정된 14보다 많이 나오면(컬럼이름출력 포함) 다시 컬럼이 어떤 거다 하면서 나오는데 pages를 1000으로 주면 1000개의 row가 출력되고 나서야 아래 컬럼이 모다 라고 나옵니다. 예를들면 SQL> select d.deptno, e.empno, e.ename, d.dname, e.sal from dept d, emp e 2 where d.deptno=e.deptno; DEPTNO EMPNO ENAME DNAME SAL ---------- ---------- ---------- -------------- ---------- 10 7782 CLARK ACCOUNTING 2450 10 7839 KING ACCOUNTING 5000 10 7934 MILLER ACCOUNTING 1300 20 7369 SMITH RESEARCH 800 20 7876 ADAMS RESEARCH 1100 20 7902 FORD RESEARCH 3000 20 7788 SCOTT RESEARCH 3000 20 7566 JONES RESEARCH 2975 30 7499 ALLEN SALES 1600 30 7698 BLAKE SALES 2850 30 7654 MARTIN SALES 1250 DEPTNO EMPNO ENAME DNAME SAL ---------- ---------- ---------- -------------- ---------- 30 7900 JAMES SALES 950 30 7844 TURNER SALES 1500 30 7521 WARD SALES 1250 14 rows selected. SQL> set pages 1000 SQL> / DEPTNO EMPNO ENAME DNAME SAL ---------- ---------- ---------- -------------- ---------- 10 7782 CLARK ACCOUNTING 2450 10 7839 KING ACCOUNTING 5000 10 7934 MILLER ACCOUNTING 1300 20 7369 SMITH RESEARCH 800 20 7876 ADAMS RESEARCH 1100 20 7902 FORD RESEARCH 3000 20 7788 SCOTT RESEARCH 3000 20 7566 JONES RESEARCH 2975 30 7499 ALLEN SALES 1600 30 7698 BLAKE SALES 2850 30 7654 MARTIN SALES 1250 30 7900 JAMES SALES 950 30 7844 TURNER SALES 1500 30 7521 WARD SALES 1250 14 rows selected. 3. 컬럼크기 조정하기 1) 숫자값일 경우 col 컬럼이름 format 999,999,999,999 => 천단위로 콤마를 찍어서 표현 col 컬럼이름 format 999999999999 ==> 출력하는 단위가 클 경우에 ###으로 표시되곤 하는데 이것을 방지해줍니다. 2) 문자값일 경우 col 컬럼이름 format a40 => 40개 글자의 공간에 찍힙니다. 테스트를 해보면.. v$datafile의 name은 너무 길어서 한 라인이 넘어가버리죠. SQL> select name, status from v$datafile; NAME -------------------------------------------------------------------------------- STATUS ------- /data/oradata/PROD/system01.dbf SYSTEM /data/oradata/PROD/undotbs01.dbf ONLINE /data/oradata/PROD/user01.dbf ONLINE NAME -------------------------------------------------------------------------------- STATUS ------- /data/oradata/PROD/test.dbf ONLINE SQL> col name format a40 아래처럼 40글자 공간에만 나옵니다. SQL> / NAME STATUS ---------------------------------------- ------- /data/oradata/PROD/system01.dbf SYSTEM /data/oradata/PROD/undotbs01.dbf ONLINE /data/oradata/PROD/user01.dbf ONLINE /data/oradata/PROD/test.dbf ONLINE 자세한 것은 http://intranet.warevalley.com/manual/Oracle9iR2OnlineManual/server.920/a90843/toc.htm#765270 을 참고하세요. 추가적으로.. SQL> set autot on 을 했을 경우에 쿼리결과값과 쿼리수행에 대한 통계정보 그리고 execution plan이 나옵니다. 그런데 execution plan이 라인이 내려가고 보기가 어렵죠. 아래처럼 하면 넓게 보여서 쉽습니다. SQL> select d.deptno, e.empno, e.ename, d.dname, e.sal from dept d, emp e 2 where d.deptno=e.deptno; Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=9 Card=409 Bytes=241 31) 1 0 MERGE JOIN (Cost=9 Card=409 Bytes=24131) 2 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT' (Cost=2 Card=4 B ytes=52) 3 2 INDEX (FULL SCAN) OF 'UK_DEPT' (NON-UNIQUE) (Cost=1 Ca rd=4) 4 1 SORT (JOIN) (Cost=7 Card=409 Bytes=18814) 5 4 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=409 Bytes=18 814) .... 이제 execution plan이 나오는 것을 조정해봅니다. #plan table 조정하기 COLUMN id_plus_exp FORMAT 990 HEADING i COLUMN parent_id_plus_exp FORMAT 990 HEADING p COLUMN object_node_plus_exp FORMAT a8 COLUMN other_tag_plus_exp FORMAT a29 COLUMN other_plus_exp FORMAT a44 COLUMN plan_plus_exp FORMAT a100 SET linesize 132 아래처럼 execution plan이 보기쉽게 나오죠. DB2 UDB는 SUBSTR를 사용해야만 되는데 sqlplus 는 정말 강력해서 좋은 기능들이 많아요. 왜 DBA들이 sqlplus만 사용하는지 그 강력한 기능을 메뉴얼을 보시면 알게 될 겁니다. Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=9 Card=409 Bytes=24131) 1 0 MERGE JOIN (Cost=9 Card=409 Bytes=24131) 2 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT' (Cost=2 Card=4 Bytes=52) 3 2 INDEX (FULL SCAN) OF 'UK_DEPT' (NON-UNIQUE) (Cost=1 Card=4) 4 1 SORT (JOIN) (Cost=7 Card=409 Bytes=18814) 5 4 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=409 Bytes=18814) |
'ORACLE' 카테고리의 다른 글
CORE DUMP 해결방법 (0) | 2007.03.06 |
---|---|
Pro*C란 (11) | 2007.03.06 |
오라클 Role 관리 (0) | 2006.12.18 |
테이블의 필드명 변경하기... (0) | 2006.12.15 |
테이블 스페이스의 정보 확인 (0) | 2006.09.08 |