ER DIAGRAM 추출
SQL Developer에서도 물리 ER DIAGRAM을 추출 할 수 있다. 메뉴 > 파일 > Data Modeler > 임포트 > 데이터 딕셔너리 > 이후 작업은 아래 영상에 확인
- ORACLE/SQL Developer Tool
- · 2024. 11. 6.
[ Tibero ] Parameter 변경1. 파라메터 조회비활성화된 상태2. 동적 변경 1) IS_DYNAMIC이 "1" 경우 동적변경이 된다. 동적 변경 성공 2) IS_DYNAMIC이 "0" 인 경우 동적변경시 에러 발생한다. => 정적변경 하기. - Error Code : JDBC-7198 : Unable to modify parameter "parameter명" dynamically.정적 파라메터 변수를 동적 변경시 에러 발생3. 정적 변경 1) SID.tip 파일에 파라메터 기입 - tibero6/config/tibero.tip 파일을 열어 Parameter를 기입한다. 아래 TRP_METRIC과 ACTIVE_SESSION_HISTORY를 y표기 * 2) Tibero 종료와 시작 ..
1. 동일 Row 변경에 의한 TX Enqueue : http://www.exemwiki.com/?p=1949 : Enqueue는 lock의 종류이다. Oltp 환경에서 자주 볼 수 있는 Tx Enqueue는 A 사용자가 Dml 후, Commit or Rollback을 하지 않은 상태체서, B 사용자가 Dml 작업 시도시 무한대기 하고 있을때 나타난다.이를 해소하기 위해서는 A 사용자의 Dml Transaction을 Commit or Rollback 처리하여, 종료를 시켜야 한다. 운영Db에 이와 같은 상황이 발생이 잦다면, 문제 모듈을 분석하여 최대한 DML후 다른 작업 없이 Commit or Rollback 이 되도록 수정해야 한다.2. Sql 파싱( Hard Parsing & Soft Parsin..
[ 문제 상황 ]특정 함수안에 open fetch close 하는 다이나믹 커서가 존재했는데, 마지막 Close 처리를 하지 않았습니다.개발 시, 그 함수를 자주 사용 했습니다. 어느날 "ORA-01000 : 최대 열기 커서수를 초과했습니다."라는 에러가발생했습니다. [ 분석 ] Open된 Cursor를 close를 하지 않으면 해당 함수를 1번 사용 할 때마다 해당 세션이 쌓입니다. 저는 그것을v$Open_cursor View에서 사실을 확인 할 수 있었습니다. 데이터베이스는 사용가능한 Cursor 수가 있으며,그 임계치 초과하게 되면 Session을 생성하지 않아, 신규 Session 으로 접속 시도하면, 실패 되는 것을 확인했습니다. [ 대응 ] 1. Close 코드 보완 : 업..
[ 1 ] 문제 상황 1) Orange, Toad로 Oracle 19c Enterprise 접속 시도 > 아래 에러 발생 ( Orange, Toad 동일 ) 2) Orange와 Toad DB Tool의 Oracle Home은 Instanct Client ( 19_5_32 )로 되어있음 [ 2 ] 해결 방법 1) Instant Client가 설치된 폴더 -> sqlnet.ora 열기 -> 아래 문구 붙이기 DISABLE_OOB=ON : 사용하고 있는 DB가 DOCKER에 로딩되어 있는데 해당 에러는 가상화 환경에서 발생 가능함. 해결책은 아래 2가지인데 쉽게 해결 가능한 2번을 선택함 자세한 내용은 아래 참고사이트를 확인하시기 바람 DISABLE_OOB에 따른 채널 변경 사항이 있는데 D..
관계형과 NoSQL DBMS 인기 순위 사이트 이다. [ 2024년 11월 DBMS 인기 순위 ] 경로 : https://db-engines.com/en/ranking DB-Engines RankingPopularity ranking of database management systems.db-engines.com 순위 수집은 "Google","Bing","LinkedIn","StackOverFlow", "Twitter" 등에서 언급된 수, 질문 수 등으로 책정된다고 한다. 예상은 했지만 관계형 데이터 베이스 모델을 기반으로 하는 DBMS가 인기가 가장 많고, 특정 분야에서 뛰어난 NoSQL이 번뜩이고 있는 모습이다. 국산 DBMS인 Tibero는 153위에 위치해 있다. 국외로 최근에 수출하는 모..
데이터베이스에서 공백으로 추정되나 실제는 공백이 아닌 문자들 때문에 힘들어하는 개발자 분들이 많습니다. 특히 데이터가 많고, 업무가 바쁠 때는 정확한 원인을 파악하지 못하고 넘어가곤 합니다. 이런 상황에서 도움이 되는 것은 ASCII 코드에 대한 이해입니다. 컴퓨터는 실제로 문자를 인식할 수 없기 때문에 모든 문자를 숫자로 매핑하는 방식인 ASCII 코드로 문자를 저장합니다. 아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총 128개로 구성되어있습니다. 맨 아래 ASCII 코드 일람표를 보면 우리가 사용하는 "공백 문자 (10진수 32 / 16진수 20 / 문자 SPACE)" 외에도, 눈에 잘 보이지 않지만 특수한 역할을 하는 문자들이 ..
관계형 데이터베이스의 개념은 에드거 F. 커드(Edgar F. Codd) 박사에 의해 1970년에 제안되었습니다. IBM의 연구원이었던 그는 "A Relational Model of Data for Large Shared Data Banks"라는 논문을 통해 관계형 데이터 모델을 소개하였습니다. 이 모델은 데이터베이스를 수학적인 집합 이론과 일치시키는 혁신적인 접근 방식으로, 데이터의 구조와 처리를 간결하고 효율적으로 할 수 있게 해 주었습니다. 박사는 "계층형"과 "망형" 모델의 한계를 지적하며 관계형 데이터 모델의 필요성을 주장했는데, 특히 데이터의 비표준화된 접근방식과 유연성 부족에 비판을 했습니다. 1. 관계형 데이터 모델 (Relational Data Model) : 관계형 데이터 모델은 데이..
망형 데이터 모델(Network Data Model)은 찰스 바크만(Charles W. Bachman)에 의해 개발되었습니다. 그는 1960년대에 General Electric(GE)에서 근무하면서 IDS(Integrated Data Store)라는 최초의 상용 데이터베이스 시스템을 개발하였고, 이를 통해 망형 데이터 모델의 개념을 처음 도입했습니다. 이후 CODASYL DBTG(Data Base Task Group)에서 찰스 바크만의 아이디어를 바탕으로 망형 데이터 모델을 공식화하고 표준화했습니다. 따라서, 망형 데이터 모델을 최초로 제안하고 상용화한 인물은 찰스 바크만이며, CODASYL DBTG를 통해 모델이 널리 표준화되고 사용되었습니다. 1. 망형 데이터 모델 (Network Data Mode..
에드거 프랭클린 코드 박사의 이론인 관계형 데이터 모델을 기반한 RDBMS들이 아직도 승승장구 하고 있다. 왜냐하면, 우리가 구현하고자 하는 비즈니스를 잘 표현할 수 있고, 쉽게 구현 할 수 있기 때문이다. 관계형 데이터 모델 이전에는 데이터 모델이 과연 없었을까? 그렇지 않다. "계층형" 데이터 모델과 "망"형 데이터 모델이 있었다. 그 모델들은 아직도 쓰이고 있으나 범용성에서 뒤처지기 때문에, 데이터 모델 학습시 선택되지 않는 것으로 보인다. 이 번 글에서는 관계형 데이터 이전에 각광 받았던 모델 중 계층형 데이터 모델를 소개한다. 1. 계층형 데이터 모델 (Hierarchical Data Model) : IBM의 IMS(Information Management System)에서 구현되어 그 당시 ..
[ 1 ] 데이터 무결성과 제약조건의 관계 : 무결성(無缺性)은 없을 무, 결함 결, 성질 성으로 "결함이 없는 성질"을 의미한다. "데이터 무결성"은 데이터의 "정확성, 완전성, 일관성, 유효성"을 지켜, 데이터의 결함이 없도록 하는 것이다. 이를 위해 데이터베이스에서 보편적으로 "제약조건"을 통해 "데이터 무결성"을 유지하려고 한다. 이번 글에서는 "무결성 유형" 알아보고, 데이터베이스가 "유형별 무결성"에 어떻게 대응하여 관리하는지 알아보자. ※ 제약조건 : 데이터 값에 대한 추가적인 규칙을 설정하여 데이터의 무결성을 보장하는 역할 [ 2 ] 무결성 유형 1. 개체 무결성(entity integrity) - 정의 : 기본 키값으로 정의한 속성은 항상 널(null) 값을 ..
SQL Developer에서도 물리 ER DIAGRAM을 추출 할 수 있다. 메뉴 > 파일 > Data Modeler > 임포트 > 데이터 딕셔너리 > 이후 작업은 아래 영상에 확인
[ 목 차 ] 1. 행번호 토글 2. 대소문자 단축키 설정 3. 배열 인출 크기 ( FETCH 단위 설정 ) 4. NULL값 표시 제거 ( 교육생은 제거 하지 않기 ) 5. 폰트 변경 6. 익스포트 ( 엑셀 다운 ) [ 영상 ]1. 행번호 토글 2. 대,소문자 단축키 설정 3. 배열 인출 크기 ( FETCH 단위 설정 ) 4. NULL값 표시 제거 5. 폰트 변경 6. 익스포트 ( 엑셀 다운 )
인덱스 생성시, 컬럼명을 "가공" 또는" 정렬 문구"를 기입하면 오라클이 내부적으로 FUNCTION-BASED INDEX를 생성한다. 그런데 그 이유 때문에, 아래 작업 하다가 애로사항이 발생한다. 1) 테이블의 인덱스와 구성컬럼을 일괄적으로 보고 싶은 경우 2) DBA 또는 튜너가 관리 인덱스테이블과 실제 DB에 생성되어 있는 인덱스의 컬럼간 동일여부 확인하고 싶은 경우 왜냐하면, 가공 컬럼은 인덱스 구성 컬럼 VIEW에서 "SYS_NC0000$" 형태로 나타나기 때문이다.이를 해결하기 위해서는 "FUNCTION" or "XML" 처리를 하면 된다.이번 글은 함수를 별도로 만들지 않고 편한 XML 형태이다. [1] 테스트 테이블 & 인덱스 생성 CREATE TABLE TB_FUNC( CO..
오라클에서 성능수치를 추출하다보면, 데이터 값 단위가 보통 "마이크로초", "밀리초", "센티초" 나타냄을 알 수 있다. 1 마이크로초 = 1/1,000,000 초 = μs = 1 microsecond1 밀리초 = 1/1,000 초 = ms = 1 millisecond1 센티초 = 1/100 초 = cs = 1 centisecond 즉, 오라클에서 위 단위로 데이터가 있으면 단위에 맞게 나누기하면 "초" 단위로 조회된다. [ 예시 ] SELECT ELAPSED_TIME , ELAPSED_TIME / 1000000 , ELAPSED_TIME / POWER(10,6) , ELAPSED_TIME / 1E6 FROM V$SQL ORDER BY 1 DESC; S..
차세대 프로젝트 또는 운영 시스템에서 사용하지 않은 인덱스가 간혹 있을 것이다. 그래서 그 미사용되고 있는 인덱스를 체크, 관리 하기 위한 방법을 정리해본다. 1. 인덱스 설계 : 프로젝트 중 인덱스를 보통 아래 상황에서 생성 / 변경 하게 된다. 1) 튜닝 요청 : SQL 튜닝 중 2) 모니터링 : SQL 튜닝 중 3) SQL 소스 분석 : 차세대 프로젝트에서는 풀 소스를 보고 100% 있어야 하는 곳은 미리 생성해두기도 한다. 2. 인덱스 사용여부 주기적 확인 : 생성된 인덱스가 사용되고 있는지 어느 시점에는 체크 해 볼 필요가 있다. 설계 당시에는 당연히 사용되었으나, SQL 변경으로 미사용 될 가능성이 있기 때문이다. 아래는 INDEX 사용여부를 체크하는 3가지 방법이다. 1) ..