--주의사항 : 시퀀스는 연속된 값을 보장하지 않는다
--공유가능한 객체
--시퀀스 만들기
SQL> create sequence dept_deptno_seq
2 start with 1
3 increment by 1
4 minvalue 1
5 nocycle
6 nocache;
--시퀀스 사용
SQL> insert into dept
2 values(dept_deptno_seq.nextval, 'A','B');
--롤백
SQL> rollback;
--시퀀스 소모
SQL> select dept_deptno_seq.nextval
2 from emp;
--시간 체크
SQL> set time on
--sql문 저장
19:35:21 SQL> save t1
--host로 잠깐 감
19:35:30 SQL> host
--저장파일 찾기
C:\Users\user>dir t1.sql
--notepad로 파일 열기
C:\Users\user>notepad t1.sql
--다시 sql로 돌아옴
C:\Users\user>exit
--마지막 sql문 1개 저장된것 불러옴
19:37:56 SQL> @t1
--앞으로 화면의 모든내용저장
19:38:14 SQL> spool b1
--저장 마침
19:39:13 SQL> spool off
--host로 가서 파일 확인하고 돌아옴
19:39:50 SQL> host
C:\Users\user>b1.lst
C:\Users\user>exit
--시간보니는것 없앰
19:41:44 SQL> set time off
--명령문 실행시 걸린시간 보임
SQL> set timing on
--취소
SQL> set timing off
**같은 명령을 2번 실행하면 두번째 명령문이 더 빠름, 왜냐하면 테이블이 없으면 읽어오는 작업을 앞에서 수행했기 때문
- shared pool
- library cache : sql문장 + 실행계획 보관
- data buffer cache
- table에 대한 정보가 올라감
- cache --임시저장소
- buffer --속도차이를 극복
- read log buffer
- java pool
- ...
compile : c, java...
Script : javascript , R...
parsing : 컴파일형 언어 아닌것 변환
- Syntax check : 문법검사
- privilege check : 권한검사
- parse form :
- parse tree : 옵션을 트리구조로 만듦
- execute plan : 명령어 수행 방법 결정
- optimizer =최적화기 : db의 가격 대부분 결정 (현존 최고의 AI)
- execute
--SYS 접속해서 DB껏다킴
C:\Users\user>sqlplus sys/oracle as sysdba
SQL> startup force
--SCOTT접속해서 명령문 실행
SCOTT>SELECT * FROM DEPT;
--SQL실행문 검색 (EXECUTIONS 명령문 실행횟수)
SQL> SELECT SQL_TEXT, EXECUTIONS
2 FROM V$SQL
3 WHERE SQL_TEXT LIKE '%FROM DEPT%';
--SCOTT접속해서 명령문 다시실행
SCOTT>SELECT * FROM DEPT;
--SYS최근 SQL문 다시 실행
SQL> /
--같은 명령문 대소문자 다르게 실행 (SQL문은 대소문자 구분안하지만, DB는 대소문자를 구분함)
SCOTT>Select * FROM DEPT;
--SYS최근 SQL문 다시 실행
SQL> /
**zommit -- 프리젠테이션 보조 도구
--로그인 시
SELECT 1 FROM member WHERE id='qwer' AND pw='123';
--열이름이 아니라 1을 선택하면 1byte이므로 네트웍트래픽을 줄일 수있음
--sql문은 똑같은 id, pw만 달라짐 DB는 다른 명령으로 인식함
--in,pw넣는 자리에 bind변수(PreparedStatement) 물음표를 넣으면 하나의 명령을 재사용 할 수 있음
댓글 없음:
댓글 쓰기