DATABASE7

다원·2022년 12월 17일
0

DATABASE

목록 보기
8/13

INDEX

테이블에 있는 데이터 보다 빠르게 접근하기 위해서 설계된 기능
테이블과 관련 있으나, Oracle에서의 데이터베이스 저장 공간(네임스페이스)에 저장, 자동 관리

  • DATABASE Tuning 인덱스 조정하는 작업
    인덱스로 지정된 특정 컬럼에 지정해서 생성하는 데 이 컬럼을 기준으로 해서 다른 데이터들을 재 정렬하기 때문에, 쿼리 속도 빠르나, 재정렬의 시간이 발생
    컬림이 속해 있는 레코드에 대한 디스크의 물리적 저장 위치를 나타내는 ROWID
    해당 컬럼 값의 집합으로 이뤄지므로 REWID로 원하는 테이블에 데이터에 접근
    인덱스는 B-Tree 알고리즘으로 데이터 접근법을 구현

지정된 열명을 중심으로 모든 데이터를 재정렬 수행
-> 많은 양의 큰 데이터에서 Index로 지정한 열
명으로 모든 데이터 들을 재정렬 시간이 걸리기에 효율이 떨어짐

조건을 만족하는 대상이 되는 데이터가 전체 데이터에서 차지하는 비율에 따라서 Optimizer 실행 계획을 다르게 하므로 컬럼 순에 따라 인덱스 사용이 달라짐

select 문을 사용하더라도 pk로 index해서 rowid를 찾는것이 좋음
create index index명 on 테이블명(컬럼명,...)
복안 인덱스를 생성할 수 있고 컬럼 뒤에 DESC 등일 지정할 수 있음
View와 유사

소유자가 다른 사용자에게 테이블 권한을 부여할 수 있음


view 같은 경우 관리자가 권한을 부여

from 뒤에 소유자를 밝혀 해당 테이블 사용

통계정보

통계정보는 Oracle Optimizer가 SQL 쿼리에 대해 최적의 방법으로 데이터를 추출 할 수 있는 경롤르 결정하는 오라클의 내부구조
미리 정한 일정한 순서대로 실행되는 규칙기반
데이터베이스의 현재 상태를 분석하는 비용 기반
비용기반이 더 나은 성능을 제공하고, 인덱스로 작업하는 경우 대부분 비용 기반으로 처리
=> 이를 처리 하기 위해 통계 정보가 필요

  • SET AUTOTRACE ON EXPLAIN

  • 범위 검색
    전체를 찾아서 조건에 만족하는 것을 찾는 것이 아니라 인덱스에 범위를 지정하여 범위 조건에 맞지 않는 것은 무시하고, 조건에 맞는 것들만 처리하여 속도를 향상

  • user_ind_columns

  • Execution plan

    Operation: 어떠한 방식으로 처리가 이루어졌는지에 대한 설명
    access by index rowid 로 테이블에 접근한 뒤
    index range scan: 스캔 sales_demo_idk를 사용하여
    access : 조건에 접근한 것을 나타냄

    set autotrace on explains
    set timing on
    => 경과 시간과 Execution에 대한 정보 출력

    시퀀스(순서)

    연속적으로 입력되는 데이터에 어떤 순서 값을 자동으로 부여할 때 사용
    Primary Keyrk 적용된 컬럼에 순서적으로 번호를 부여할 때 주로 사용

  • create sequence 시퀀스_명: SEQUENCE 생성

  • NEXTVAL: 자동으로 다음 번호

  • INCREMENT BY: 증가값 지정하여 증가값 조절, DEFAULT=1

  • START WITH: 시작값 지정, DEFAULT=1

  • cycle: 최대값을 넘길 시 시작값부터 다시 시퀀스 번호 지정


: NEXTVAL로 자동으로 다음 값 추가

사용자 관리와 Role, 권한 위임

계정 생성과 잠금, 권한 주기 등
Role은 사용자들이 가질 수 있는 권한들을 묶어서 여러 롤로 만들어 두고, 롤에 사용자를 넣어서 해당 사용자들이 해당 Role에 들어 있는 사용자들은 해당 롤에 주어진 권한만 사용하게 하는 것
Rolde-based로 사용자를 관리
create role role1 생성

  • not identified, identified, by password, externally 등을 옵션으로 사용
    관리자가 생성하는데, 사용사를 생성하는 것과 동일

    USERS는 오라클이 생성되는 사용자들이 사용하게 하는 tablespace

  • 권한 위임: grant (권한) to (사용자)
  • connect, resource, dba 권한등
  • 권한 취소: revoke (권한) from (사용자)
  • Role 생성: create role (role_name);
    grant 권한, 권한 to role_name: 해당 role를 보유하고 있는 사람들은 실행 할 수 있음
    grant role_name to 사용자,..: 사용자에게 role을 공유하므로써 해당 role를 가지고 있는 사용자는 role안에 있는 권한을 부여받음
  • 관리자는 어떠한 테이블에 상관없이 role를 생성하여 권한을 줄수도 있고 단, select any table 등으로 어떤 테이블이든 사용 할 수 있음으로 권한을 부여해줘야됨,
    지정 테이블을 가진 role를 생성해서 권한을 줄 수 있음
    grant select .... on 사용자.테이블명 to role 명
  • with admin option 으로 role 없이 혹은 관리자가 아니어도 관리자 권한을 사용하게 할 수 있음
profile
공부일지,

0개의 댓글