목록DB, SQL (18)
개발 공부
Oracle 데이터베이스에서 인덱스 공간의 회수는 다음과 같이 이루어집니다:즉시 회수되지 않습니다. 데이터를 삭제해도 인덱스 엔트리는 실제로 제거되지 않고 삭제 표시만 됩니다.시간이 지나면 회수될 수 있습니다:새로운 INSERT 작업 시 삭제된 키 공간이 재활용됩니다.인덱스 SPLIT 발생 시 DELETE로 생긴 빈 공간이 재활용됩니다.자동으로 완전히 회수되지는 않습니다. 인덱스 리빌드를 통해 수동으로 공간을 회수할 수 있습니다.대량 삭제 후에도 인덱스 크기가 즉시 줄어들지 않을 수 있습니다.따라서 Oracle에서는 삭제된 인덱스 공간이 즉시 회수되지는 않지만, 새로운 데이터 삽입이나 인덱스 분할 시 재사용될 수 있습니다. 완전한 공간 회수를 위해서는 인덱스 리빌드와 같은 관리 작업이 필요합니다.
테이블스페이스 정리 효과인덱스 리빌드를 수행하면 테이블스페이스에도 일정 부분 정리 효과가 있습니다. 리빌드 과정에서 다음과 같은 변화가 일어납니다:사용하지 않는 공간 회수: 삭제된 데이터의 인덱스 엔트리가 제거되어 공간이 확보됩니다.인덱스 구조 최적화: 조각화된 인덱스가 재구성되어 더 효율적인 구조로 변경됩니다.저장 공간 감소: 불필요한 인덱스 블록이 제거되어 전체적인 저장 공간이 줄어들 수 있습니다인덱스 리빌드 방법인덱스 리빌드는 주로 두 가지 방법으로 수행할 수 있습니다:인덱스 삭제 후 재생성:DROP INDEX 인덱스명;CREATE INDEX 인덱스명 ON 테이블명(컬럼1, 컬럼2, ...);ALTER INDEX 명령어 사용:ALTER INDEX 인덱스명 REBUILD;ALTER INDEX를 사용한..
테이블스페이스 설정 확인테이블스페이스 설정을 확인하는 방법은 다음과 같습니다:전체 테이블스페이스 정보 조회:SELECT * FROM DBA_TABLESPACES;테이블스페이스 용량 확인 (MB 단위):SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/1024/1024,2) AS "SIZE_MB", ROUND(SUM(MAXBYTES)/1024/1024,2) AS "MAX_SIZE_MB"FROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME;테이블스페이스 사용량 확인:SELECT A.TABLESPACE_NAME, ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0))/1024/1024, 2) AS "USED_MB", ROUN..
Synonym 사용 이유Synonym(동의어)을 사용하는 주요 이유는 다음과 같습니다:객체 이름 단순화: 긴 객체 이름을 짧고 간단한 이름으로 대체할 수 있습니다.객체 위치 은닉: 실제 객체의 소유자나 위치를 숨길 수 있어 보안에 도움이 됩니다.객체 이동 용이성: 객체가 이동하거나 변경되어도 synonym만 수정하면 되므로 유지보수가 쉽습니다.원격 객체 접근 간소화: 다른 데이터베이스의 객체에 대한 접근을 로컬 객체처럼 간단하게 만들 수 있습니다.객체 이름 충돌 방지: 동일한 이름의 객체가 여러 스키마에 존재할 때 구분하기 쉽게 해줍니다.이러한 이유로 synonym은 데이터베이스 관리와 애플리케이션 개발에서 유용하게 사용됩니다
1. Oracle Listener 설정 변경listener.ora 파일 위치$ORACLE_HOME/network/admin/listener.ora Windows:C:\oracle\product\\dbhome\network\admin\listener.oraLinux/Unix:/opt/oracle/product//dbhome/network/admin/listener.ora 포트 변경LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your-hostname)(PORT = 1522)) ) )2. Oracle Database 설정 변경tnsnames.ora 파일 위치$ORACLE_HOME/netw..
토드에서 아래와 같은 방법으로 Oracle 홈을 변경할 수 있는데 간혹 Installed Client - Connect Using 홈 선택 드롭박스가 disabled돼있거나 [...]을 눌러 여러 오라클 인스턴스를 선택해도 변경되지 않을 때가 있다. 이는 하나라도 connection이 맺어져 있으면 변경할 수 없기 때문에 발생한다. 유효한 connection을 모두 끊은 후 home 변경을 시도하면 된다. ※ 아래는 퀘스트에서 제공하는 오라클 홈 변경 메뉴얼 발췌 https://support.quest.com/technical-documents/toad-for-oracle/12.9/toad-%ec%82%ac%ec%9a%a9-%ec%95%88%eb%82%b4%ec%84%9c--user-guide-korea..
방법 1 * 최신버전의 toad에서는 방법 2의 toadprep.sql을 실행할 필요 없이 toad에서 바로 설치 가능 - sql 작성 후 cntr+e 로 Explain plan 실행 - 이 때 explain plan table이 없으면 생성 또는 기존에 사용되고 있는 table을 사용하도록 설정할 수 있다. 방법 2 - C:\Program Files\Quest Software\TOAD\temps\toadprep.sql 실행 https://toad.co.kr/tip/?q=YToyOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjtzOjQ6InBhZ2UiO2k6ODt9&bmode=view&idx=5865326&t=board [Toad for Oracle] Explain Plan 보..
-- 사용중인 table space 확인 SELECT * FROM DBA_TABLESPACES ; -- 특정 유저 table space 확인 SELECT tablespace_name FROM all_tables WHERE OWNER LIKE 'EDU'||'%'; -- users -- 스키마 소유주 생성 CREATE USER schema_owner IDENTIFIED BY password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users; -- 소유주 권한 부여 GRANT CONNECT, CREATE TABLE TO schema_owner; -- GRANT CONNECT, RESOURCE TABLE TO schema_ow..
creat user 시 아래 오류 발생 create user userName identified by !!pwd -- SQL Error [922] [42000]: ORA-00922: 누락된 또는 부적합한 옵션 오라클 password 정책 확인 o Passwords must be from 1 to 30 characters long. o Passwords cannot contain quotation marks. o Passwords are not case sensitive. o A Password must begin with an alphabetic character. o Passwords can contain only alphanumeric characters and the underscore (_), d..
에러 로그 확인 mysql 실행 시 unable to lock ./ibdata1 error 11에러 발생 실행 중인 mysqld process 를 확인하라고 한다. (Check that you do not already have another mysqld process) $ tail -n 30 /var/log/mysqld.log ... InnoDB: Unable to lock ./ibdata1, error: 11 InnoDB: Check that you do not already have another mysqld process InnoDB: using the same InnoDB data or log files. ... 실행 중 mysql 확인 방법 1 (일괄) $ ps aux | grep mysqld..