DBMS/Oracle
-
[펌] UNDOTBS 재생성DBMS/Oracle 2009. 1. 14. 12:51
long transaction등으로 인하여 undo tablespace가 일단 커지면 줄어들지 않음 이 경우에는 수동으로 삭제 후 재생성해주어야 함 다음은 해당 절차임 * undo tablespace 재생성 방법 . undo tablespace는 이미 늘어난 파일사이즈를 줄일 수가 없으므로 create -> switch -> drop -> switch의 과정을 거쳐야 한다. . 처리 과정 1) 현재 undo tablespace 확인 . show parameter undo_tablespace 2) 대체할 undo tablespace 생성 (작게 만들면 extend하느라 성능 저하되므로 적당한 크기로 생성할 것) . CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/SMS_DB09..
-
Oracle Pipelined Table FunctionsDBMS/Oracle 2008. 10. 30. 10:16
Oracle Pipelined Table Functions Overview Basically, when you would like a PLSQL (or java or c) routine to be the «source» of data -- instead of a table -- you would use a pipelined function. PIPELINED functions will operate like a table. A PL/SQL function may be used in a data warehouse database to transform large amounts of data. This might also involve massaging the data in a series of transf..
-
[펌] Oracle에서의 LockDBMS/Oracle 2008. 10. 30. 10:10
오라클에서는 테이블의 일부 레코드 또는 테이블에 대한 Lock을 걸수 있다. Lock이 걸린 Record(Table)에 대해서는 Commit, Rollback문을 수행하기 전까지 다른 세션에서 Delete, Update를 할 수 없다. 하지만 Lock을 걸더라도 다른 세션에서 Select는 가능하다. ▣ Table Lock - 문법 : lock table TABLE_NAME in exclusive mode; - Table Lock이 걸린 테이블에 대해서는 다른 세션에서 Insert, Update, Delete를 할 수 없다. - Table Lock이 걸리더라도 다른 세션에서 Select는 가능하다. - Commit, Rollback 문장 실행으로 Lock을 풀 수 있다. ▣ Record Lock - 문법..
-
[펌] SQL*Net message from client 이벤트는 항상 Idle Event 인가? (Pipelined Table Function 의 용도)DBMS/Oracle 2008. 10. 30. 09:46
얼마전에 필자는 다음과 같은 질문을 받았다. "PL/SQL 의 기능중에 커서(Select 문)을 인자로 받아서 복잡한 계산을 수행후 결과를 집합으로 RETURN 하는 기능이 있습니까?" 이런 경우 필자는 예외없이 Pipelined Table Function 을 권장한다.(단 버젼이 8i 이상이라면) Pipelined Table Function 를 사용하여야 하는 이유는 4가지 이다. 1.PL/SQL 의 유일한 단점은 부분범위처리가 안된다는 것이다. 즉 모든처리가 끝나야만 결과가 화면에 Return 된다는 것이다. Pipelined Table Function 을 사용하면 이런단점을 극복할수 있다. 당연히 조회하면등에서 성능이 개선된다. 이개념을 이용하려면 Pipe Row 기능을 이해해야한다. Pipe Ro..
-
[펌] v$sql_bind_capture - 바인드 변수값 확인DBMS/Oracle 2008. 10. 8. 10:25
바인드 변수값 확인 10g 이전에서는 trace로 확인할 수 밖에 없었다. select sesion.sid, sesion.username, sesion.sql_id, sesion.sql_child_number, sql_bind_capture.name, sql_bind_capture.value_string from v$sql_bind_capture sql_bind_capture, v$session sesion where sesion.sql_hash_value = sql_bind_capture.hash_value and sesion.sql_address = sql_bind_capture.address and sesion.username is not null ; Bind data : One of the bin..
-
Pro*C : INTERNAL ERROR: Failed assertion [PGE Code=90105]DBMS/Oracle 2008. 9. 19. 17:54
Pro*C로 컴파일할때 난 오류입니다. 해당 에러가 발생한 원인은 기존에 컴파일된 소스(.c)파일이 존재하고 해당 파일에 대한 접근권한이 낮아서 접근하지 못해 발생한 오류였습니다. 저 같은 경우는 root에서 컴파일을 한 후 다른 사용자로 다시 컴파일하는 과정에서 위와 같은 오류가 발생하였습니다. 해결방법은 Pro*C로 컴파일될 파일(.c)이 먼저 존재하는지 확인후 해당파일의 소유자 및 접근권한을 확인하신후 파일을 삭제하거나 아니면 접근권한을 부여하시면 됩니다.
-
ORACLE_HOME (오라클 홈디렉토리) 경로 data dictionary에서 조회하기.DBMS/Oracle 2008. 9. 17. 10:39
Unix/Linux ----------------------------------------------------------------------------- SELECT SUBSTR(file_spec, 1, INSTR(file_spec, '/', -1, 2) -1) FROM dba_libraries WHERE library_name = 'DBMS_SUBADV_LIB'; ---------------------------------------------------------------------------------------- Windows ------------------------------------------------------------------------------- SELECT SUBST..
-
Pro*C 컴파일오류 : PCC-S-02015, unable to open include file ( stddef.h, stdarg.h )DBMS/Oracle 2008. 9. 10. 14:36
redhat linux 엔터프라이즈 4 버전에서 proc를 컴파일 하는 과정에서 아래와 비슷한 내용의 에러가 발생했습니다. ---------------------------------------------------------------------------------- make -f /opt/oracle/product/8.1.7/precomp/demo/proc/demo_proc.mk OBJS=sample1.o EXE=sample1 build make[1]: Entering directory `/opt/oracle/product/8.1.7/precomp/demo/proc' proc iname=sample1 Pro*C/C++: Release 8.1.7.0.0 - Production on Tue Feb 25..