본문 바로가기

스터디72

CH03.오라클 성능 관리 - 03.SQL 트레이스 SQL을 튜닝할 때 가장 많이 사용되는 강력한도구 입니다. (1) 자기 세션에 트레이스 걸기 아래는 현재 자신이 접속해 있는 세션에만 트레이스를 설정하는 방법입니다. SQL> alter session set sql_trace=true; SQL 문 수행 SQL> alter session set sql_trace=false; 위와 같이 트레이스를 설정하고 SQL을 수행하면 user_dump_dest 파라미터로 지정된 디렉토리 밑에 프레이스파일(.trc)가 생성됩니다. 가장 최근에 생성되거나 수정된 파일을 찾아 분석하면 됩니다. TKProf 유틸리티 트레이스 파일을 보기 쉬운 형태로 포맷팅하면 유틸리티입니다. 사용법은 tkprof를 치면 확인할 수 있습니다. tkprof Usage: tkprof tracefi.. 2020. 1. 1.
CH03.오라클 성능 관리 - 01.Explain plan 02.AutoTrace 01 Explain plan SQL을 수행하기 전에 실행계획을 확인하고자 할때 explain plan 명령을 사용합니다. 이 명령어를 사용하려면 먼저 plan_table을 생성해야 하는데, 아래 스크립트를 실행하면 됩니다. sql>@?/rdbms/admin/utlxplan.sql 오라클 10g 부터는 기본적으로 sys.plan_table$이 생성됩니다. 그리고 이를 가리키는 public synonym을 기본적으로 생성해두기 때문에 사용자가 별도로 plan_table을 만드는 수고를 하지 않아도 됩니다. SQL> select owner,synonym_name,table_owner,table_name 2 from all_synonyms 3 where synonym_name='PLAN_TABLE'; OWNER.. 2019. 12. 31.
CH2. 트랜잭션과 LOCK - 05.오라클 Lock 오라클은 공유 리소스와 사용자 데이터를 보호할 목적으로 다양한 종류의 Lock을 사용합니다. 앞서 래치와 버퍼 Lock에 대해서는 1장에서 다루었습니다. 래치 : SGA에 공유돼 있는 갖가지 자료구조를 보호할 목적으로 사용하는 가벼운 Lock 버퍼 Lock : 버퍼 블록에 대한 액세스를 직렬화 라이브러리 캐시 Lock과 Pin은 라이브러리 캐시에 공유된 오브젝트 정의,커서, PL/SQL 프로그램 같은 실행가능 오브젝트에 대한 정의 및 실행계획을 보호하는 Lock입니다. 라이브러리 캐시 Lock : 라이브러리 캐시 오브젝트에 대한 핸들을 보호 라이브러리 캐시 Pin : 라이브러리 캐시 오브젝트의 실제 내용이 담긴 힙(heap)을 보호 DML Lock은 다중 사용자에 의해 동시에 액세스되는 사용자 데이터의 .. 2019. 12. 29.
CH2. 트랜잭션과 LOCK - 03. 비관적 vs. 낙관적 동시성 제어, 04.동시성 구현 사례 03. 비관적 vs. 낙관적 동시성 제어n-Tier 구조가 지배적인 요즘 같은 개발 환경에서는 트랜잭션 고립화 수준을 변경하는 DBMS 기능을 사용할 수 없는 경우가 있습니다. 동시성 제어는 비관적 동시성 제어와 낙관적 동시성 제어로 나뉩니다. 비관적 동시성 제어는 사용자들이 같은 데이터를 동시에 수정할 것이라고 가정합니다. 따라서 한 사용자가 데이터를 읽는 시점에 Lock을 걸고 조회 또는 갱신처리가 완료될 때까지 이를 유지합니다. Locking은 첫 번째 사용자가 트랜잭션을 완료하기 전까지 다른 사용자들이 그 데이터를 수정할 수 없게 만들기 때문에 비관적 동시성 제어를 잘못 사용하면 동시성을 저해 받게 됩니다. 낙관적 동시성 제어는 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정합니다. .. 2019. 12. 28.