[go: up one dir, main page]

KR20040027270A - Method for monitoring database system - Google Patents

Method for monitoring database system Download PDF

Info

Publication number
KR20040027270A
KR20040027270A KR1020030018006A KR20030018006A KR20040027270A KR 20040027270 A KR20040027270 A KR 20040027270A KR 1020030018006 A KR1020030018006 A KR 1020030018006A KR 20030018006 A KR20030018006 A KR 20030018006A KR 20040027270 A KR20040027270 A KR 20040027270A
Authority
KR
South Korea
Prior art keywords
analysis
database system
monitoring
item
oracle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
KR1020030018006A
Other languages
Korean (ko)
Inventor
나장근
Original Assignee
(주)오알솔루션즈코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)오알솔루션즈코리아 filed Critical (주)오알솔루션즈코리아
Priority to KR1020030018006A priority Critical patent/KR20040027270A/en
Publication of KR20040027270A publication Critical patent/KR20040027270A/en
Ceased legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B61/00Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages
    • B65B61/04Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages for severing webs, or for separating joined packages
    • B65B61/06Auxiliary devices, not otherwise provided for, for operating on sheets, blanks, webs, binding material, containers or packages for severing webs, or for separating joined packages by cutting
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B65/00Details peculiar to packaging machines and not otherwise provided for; Arrangements of such details
    • B65B65/02Driving gear
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B2220/00Specific aspects of the packaging operation
    • B65B2220/06Cutting webs along their longitudinal direction
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B41/00Supplying or feeding container-forming sheets or wrapping material
    • B65B41/12Feeding webs from rolls
    • B65B41/16Feeding webs from rolls by rollers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • B65B57/02Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of binding or wrapping material, containers, or packages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B59/00Arrangements to enable machines to handle articles of different sizes, to produce packages of different sizes, to vary the contents of packages, to handle different types of packaging material, or to give access for cleaning or maintenance purposes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B65/00Details peculiar to packaging machines and not otherwise provided for; Arrangements of such details
    • B65B65/003Packaging lines, e.g. general layout

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터베이스 시스템 모니터링 방법으로써, 오라클 기반의 데이터베이스 시스템에 대한 정형적 분석과 비정형적 분석을 수행하여 데이터베이스 시스템의 성능을 진단하고, 데이터베이스 부하의 요소를 도출하여 분석하고 문제를 개선하여 최적화된 데이터베이스 시스템을 유지하기 위한 데이터베이스 시스템 모니터링 방법에 관한 것이다. 상기 본 발명에 따른 데이터베이스 시스템 모니터링 방법은 a) 오라클 기반의 데이터베이스 시스템의 사용환경을 확인한 후, 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목별로 정형적 분석을 수행할지 여부를 선택할 수 있는 선택란 및 항목별 부하여부 표시란을 포함하는 항목 표시창, 정형적 분석을 실행시킬 수 있는 또는 실행된 정형적 분석을 중지시킬 수 있는 실행 및 중지 아이콘, 정형적 분석의 수행상태를 항목별로 표시하는 수행상태 표시창, 항목별 분석의 수행 목적 및 상세 설명을 표시하는 수행목적과 상세설명 표시창, 권고값 및 분석의 결과값을 표시하는 분석결과 표시창, 그리고 튜닝안내에 대한 정보를 제공하는 튜닝안내 표시창을 포함하는 그래픽 사용자 인터페이스를 제공한 후 사용자의 실행명령에 따라 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목들에 대한 정보를 수집하고 이를 저장하는 단계로 구성된 정형적 분석을 수행하여 오라클 기반의 데이터베이스 시스템의 상태를 점검하는 단계, b) 상기 단계 a)의 결과 시스템의 부하가 감지되면 부하가 발생한 항목에 대하여 데이터베이스 시스템의 파라미터를 변경하는 단계, 및 c) 오라클 인스턴스의 통계정보를 실시간 그래프로 모니터링하는 인스턴스 모니터링, 세션별 상태를 모니터링하는 세션 모니터링, 세션별 SQL을 모니터링하는 SQL 모니터링을 통해 부하의 원인을 분석한 후, 애플리케이션 튜닝을 수행하고 오브젝트를 관리하는 단계로 구성된 비정형적 분석을 수행하여 데이터베이스 시스템의 최적화를 유지하는 단계를 포함한다. 상기한 방법은 정형적 분석에 의해 데이터베이스에 대한 비전문가라 할지라도 현장에서 테스트되고 검증된 스크립트 및 튜닝안내에 의해 손쉽게 시스템을 안정화하는데 도움을 받을 수 있으며, 주기적인 튜닝안내 생성 및 결과를 보관하여 데이터베이스 시스템의 상태 및 변화 추이를 진단할 수 있다. 그리고, 비정형적 분석에 따른 모니터링 및 튜닝의 절차에 따라 관련 도구들을 수행하는 유기적인 사용자 인터페이스를 통해 문제분석 및 추적을 쉽고 빠르게 할 수 있다. 따라서, 본 발명에 따른 데이터베이스 시스템 모니터링 방법은 효율적으로 데이터베이스 시스템을 모니터링할 수 있는 방법으로써, 데이터베이스 부하의 요소를 도출하여 분석하고 문제를 개선하기 위한 온라인 점검 서비스로서 데이터베이스 운영에 대한 핵심 요소들에 대한 성능을 점검할 수 있다.The present invention is a database system monitoring method, which performs a formal and atypical analysis of an Oracle-based database system to diagnose the performance of a database system, derives and analyzes the factors of database load, and improves a database. A database system monitoring method for maintaining a system. The database system monitoring method according to the present invention includes: a) a check box and item for selecting whether or not to perform a formal analysis for each diagnostic item for checking the state of the database system after checking the usage environment of the Oracle-based database system; An item display window including a sub-field, a run and stop icon that can execute the formal analysis or stop the executed formal analysis, a performance status window that displays the performance status of the formal analysis by item, an item Graphical user interface including performance objectives and detailed explanation display window displaying the purpose and detailed description of each analysis, analysis result display window displaying recommended value and analysis result, and tuning guide display window providing information about tuning guide After providing the database, the database Checking the status of the Oracle-based database system by performing a formal analysis comprising collecting and storing information about diagnostic items for checking the status of the system; b) checking the status of the resultant system of step a). If a load is detected, changing the parameters of the database system for the item in which the load occurred; and c) instance monitoring for monitoring the statistics of Oracle instances in real-time graphs, session monitoring for monitoring status per session, and SQL per session. After analyzing the cause of the load through the SQL monitoring, and performing the atypical analysis consisting of the application tuning and managing the object to maintain the optimization of the database system. The above method can be helped to stabilize the system easily by scripts and tuning guides that have been tested and verified in the field, even by the non-experts of the database by formal analysis. Diagnose the state of the system and trends of change. In addition, problem analysis and tracking can be done quickly and easily through an organic user interface that performs related tools according to the monitoring and tuning procedures of atypical analysis. Therefore, the database system monitoring method according to the present invention is an efficient method for monitoring the database system, and is an online inspection service for deriving and analyzing the factors of the database load and improving the problems. You can check the performance.

Description

데이터베이스 시스템 모니터링 방법{METHOD FOR MONITORING DATABASE SYSTEM}How to monitor your database system {METHOD FOR MONITORING DATABASE SYSTEM}

본 발명은 효율적인 데이터베이스 시스템 모니터링 방법에 관한 것이다. 보다 구체적으로는, 본 발명은 오라클 기반의 데이터베이스 시스템에 대한 비정형적 분석과 정형적 분석을 수행하여 데이터베이스 시스템의 성능을 진단하고, 데이터베이스 부하의 요소를 도출하여 분석하고 문제를 개선하여 최적화된 데이터베이스 시스템을 유지하기 위한 데이터베이스 시스템 모니터링 방법에 관한 것이다.The present invention relates to an efficient database system monitoring method. More specifically, the present invention diagnoses the performance of the database system by performing the atypical analysis and formal analysis of the Oracle-based database system, derives and analyzes the factors of the database load, and improves the database system optimized It relates to a database system monitoring method for maintaining the system.

오늘날 회사의 전산 시스템의 성능관리 문제는 단순히 고객 서비스 차원의 문제를 넘어 사업의 성패를 결정짓는 중요한 요소가 되어가고 있다. 그러나, 막대한 자금과 시간을 투자하여 구축한 시스템이라 할 지라도, 초기에는 문제없이 잘 운영되다가도 시간이 지날수록 요구사항이 늘어나고 사용자수와 처리해야 할 데이터량이 증가하다 보면 금방 성능상의 한계를 드러내어 주변의 불만에 데이터베이스 관리자(database administrator, "DBA")가 해야 할 일이 증가된다. 오라클 데이터베이스를 기반으로 하는 시스템에서 성능에 영향을 미치는 요소는 무수히 많이 있다. 전체 시스템의 아키텍쳐, 하드웨어 자체의 성능, 디스크의 레이드 레벨(RAID Level), 운영시스템의 각종 환경변수의 설정내역, 오라클의 각종 파라미터 설정내역, 오브젝트유형 및 데이터 저장방식, 파일 분산 방식, 인덱스 생성여부, SQL(structured query language, 일명, 구조적 질의어) 작성 방식, 프로그램 로직 구사 방식, 데이터 모델링, 작업 스케쥴링 등. 하나의 시스템은 이렇게 다양한 요소들이 복잡하게 맞물려 상호 영향을 주고받으면서 운영이 되므로 모든 요소들이 어느 한쪽으로 치우침 없이 적절한 균형을 유지하도록 관리한다는 것은 쉬운 일이 아니다. 그만큼 시스템 성능관리에 있어 정해진 정답은 없다는 것이며 데이터베이스 관리자 또는 시스템 관리자는 자신이 관리하고 있는 시스템이 끊임없이 변화하는 상황에 맞추어 지속적으로 시스템을 모니터링하고 조정하고 튜닝 하는 작업을 반복해야 한다는 것이다.Today, the performance management of a company's computer systems is becoming an important factor in determining the success or failure of a business beyond the customer service. However, even if the system is built by investing huge amount of money and time, even if it works well without any problems in the beginning, the demand increases and the number of users and the amount of data to be processed increases over time. Complaints increase the work done by the database administrator ("DBA"). There are a number of factors that affect performance on systems based on Oracle databases. The architecture of the entire system, the performance of the hardware itself, the RAID level of the disk, the configuration of various environment variables of the operating system, the configuration of various parameters of Oracle, the object type and data storage method, the file distribution method, and the index creation , How to write SQL (structured query language, aka structured query language), how to use program logic, data modeling, job scheduling, etc. Since a system operates in such a way that these various elements are intricately interlocked with each other, it is not easy to manage to ensure that all elements are properly balanced without biasing to either side. There is no definite answer to system performance management, and the database administrator or system administrator must constantly monitor, tune and tune the system to keep up with the ever-changing situation of the system he is managing.

오라클 기반 데이터베이스 시스템의 성능관리 대상은 일반적으로 크게 다음의 세가지 영역으로 구분된다:Performance management targets for Oracle-based database systems generally fall into three broad areas:

1) 애플리케이션: 비스니스 규칙, 모델링, 프로그램 로직/SQL 등등1) Applications: business rules, modeling, program logic / SQL, etc.

2) 데이터베이스 관리 솔루션(DBMS): 메모리 및 자원 할당, 저장공간 설정, 데이터 파티션, 파일 입출력 분산 등등2) Database Management Solution (DBMS): Memory and resource allocation, storage configuration, data partitioning, file I / O distribution, etc.

3) 운영시스템(OS): CPU, 메모리, 디스크 입출력, 네트워크 경합 해소 등등3) Operating system (OS): CPU, memory, disk I / O, network contention elimination, etc.

시스템의 구축단계에서부터 성능 튜닝 작업을 수행할 때는 상위 레이어에서 하위 레이어로 진행하는 것이 정석이며 성능관리의 효율성과 효과 측면에서 훨씬 유리하겠지만 운영단계에서 시스템의 상황을 진단하고자 한다면 일반적으로 OS 모니터링으로부터 시작한다. OS는 CPU, 메모리, 디스크 입출력과 같은 가장 중요한 자원에 대한 정보를 제공하여주므로 OS 차원의 모니터링을 통하여 기본적인 시스템 자원의 부족이나 경합여부를 찾아낼 수 있기 때문이다.When performing performance tuning from the build stage of the system, it is a good idea to go from the upper layer to the lower layer, and it will be much more advantageous in terms of efficiency and efficiency of performance management. do. Because the OS provides information on the most important resources such as CPU, memory, and disk I / O, it is possible to find out whether there is a lack of contention or contention through the OS level monitoring.

메모리에 대한 점검포인트는 주로 페이징(paging), 스와핑(swapping) 여부인데 일반적으로 스와핑은 절대로 발생해서는 안되며 페이징도 거의 발생하지 않아야 한다. 메모리 경합이 존재하는 경우 취할 수 있는 조치는 두 가지 이다. 하드웨어적으로 메모리를 추가하거나 오라클에서 사용하는 메모리를 좀 줄이는 것이다. 오라클에서 사용하는 메모리를 줄인다는 것은 SGA(System Global Area)의 크기를 축소하거나 "sort_area_size", "hash_area_size" 등을 조정하여 각 오라클 프로세스가 할당하는 메모리 영역을 축소시키는 것을 의미한다.The main checkpoints for memory are paging and swapping. In general, swapping should never occur and paging should rarely occur. There are two things you can do if memory contention exists. You can either add memory in hardware or reduce the memory used by Oracle. Reducing the memory used by Oracle means reducing the size of the System Global Area (SGA) or adjusting the "sort_area_size", "hash_area_size", etc., to reduce the memory area allocated by each Oracle process.

디스크 입출력의 경우는 주로 디스크의 %비지(%busy)나 디스크 큐 길이(disk queue length)를 점검하는데 일반적으로 %busy가 50이상이라면 디스크에 병목이 존재한다고 판단하며 큐 길이는 긴데 디스크가 바쁘지 않다면 이는 디스크가 아니라 컨트롤러의 문제를 의미한다. 특정 디스크에 병목이 존재한다고 판단되면 보통 데이터베이스 측면에서 입출력이 집중되는 파일을 분산시키는 방식으로 문제를 해결하는데 특히 오라클 시스템의 경우 쓰기(Write) 경합이 발생하기 쉬운 반복(redo), 아키브(archive) 파일이나, 롤백(Rollback), 템퍼러리 테이블 스페이스의 분산에 주의하여야 한다.In the case of disk I / O, it checks the disk's% busy or disk queue length. In general, if% busy is over 50, the disk bottleneck is considered. If the queue is long but the disk is not busy, This is a problem with the controller, not the disk. When it is determined that a bottleneck exists on a particular disk, the problem is usually solved by distributing I / O-intensive files on the database side. Especially in an Oracle system, write and archive content are easily caused by write contention. Be careful with the distribution of files, rollbacks, and temporal table spaces.

이와 같은 메모리나 디스크의 입출력의 문제는 시스템 구축 초기가 아니라면 보통 갑자기 성능저하를 유발하는 요인이 되지는 않으며 데이터량의 증가나 사용자의 증가에 따라 주로 문제가 되는 것은 CPU 자원의 부족이다. 따라서, 일반적으로 OS 모니터링의 주된 관심항목이 되는 것은 CPU의 사용률이다.Memory or disk I / O problems are not usually the cause of sudden performance deterioration unless the system is built early, and the main problem is the lack of CPU resources due to the increase of data volume or the increase of users. Thus, in general, the main concern for OS monitoring is CPU utilization.

시스템의 성능이 아주 느린 시점에 CPU의 사용률이 낮은 상황이라면 시스템의 어딘가에 대기를 유발하는 병목지점이 존재한다는 것을 의미하며 이 가운데 %wio가 차지하는 비율이 대부분이라면 디스크 입출력에 병목이 있음을 의미할 것이다. 오라클 시스템의 경우 입출력의 문제이거나 잠금(Lock)이나 랫치(Latch)와 같은 인터널 자원에 대한 경합이 원인이 될 수 있을 텐데, 이 경우 "V$SESSION_WAIT" 뷰를 이용하여 현재 데이터베이스 상에서 발생하고 있는 대기 이벤트(Wait Event)를 조회하고 대기중인 이벤트의 종류에 따라 원인을 분석하고 조치를 취하여야 한다.If the CPU utilization is low when the system's performance is very slow, it means that there is a bottleneck that causes standby somewhere in the system, and if the percentage of% wio occupies most of the time, it means that the disk I / O is a bottleneck. . In the case of Oracle system, it may be caused by I / O problem or contention on internal resources such as lock or latch. In this case, the "V $ SESSION_WAIT" view is used to generate the database. Wait Event should be inquired and cause should be analyzed and action taken according to the type of waiting event.

만일, 시스템의 성능이 매우 느린 시점에 OS측면에서 모니터링을 해보았을 때 CPU의 사용률이 매우 높다면 우선 "%sys"와 "%usr"의 비율을 점검해보아야 한다. %sys가 높다면(일반적으로 15%이상) OS 오버헤드를 유발하는 원인을 찾아 조치해야 한다. %usr이 높은 상황에서 몇몇 프로세스가 대부분의 CPU를 점유하고 있는 상황이라면 해당 프로세스가 수행하고 있는 작업을 확인하여 조치해야 한다. 오라클 프로세스라면 프로세스의 PID(process identity number)를 사용하여 V$PROCESS(SPID 컬럼), V$SESSION 뷰를 조회하여 대응되는 데이터베이스 세션을 찾아 현재 수행중인 작업내역을 확인하고 적절히 조치하여야 할 것이다. 오라클 시스템에서 프로세스가 과도하게 CPU를 소모하는 경우는 주로 비효율적인 SQL이 원인인 경우가 많다. 예를 들어, 실행계획이 매우 잘못되어 불필요하게 많은 블록을 액세스하는 SQL이 수행되는 경우 이는 결국 많은량의 메모리 작업(Logical IO) 을 유발하므로 CPU에 부하를 야기할 것이다. SQL 처리과정에서 수행하게 되는 정렬작업이나 파싱작업 또한 전형적인 CPU 작업이므로 불필요하게 과도한 정렬작업이나 반복적인 분석을 유발하는 애플리케이션이 있다면 이는 모두 시스템 성능저하의 주범이 될 수 있다.If the CPU usage is very high when monitoring from the OS side when the system performance is very slow, first check the ratio of "% sys" and "% usr". If% sys is high (usually over 15%), you need to find out what causes the OS overhead. If% usr is high and some processes occupy most of the CPU, you should check and take action on what the process is doing. In the case of an Oracle process, the process identity number (PID) of the process should be used to query the V $ PROCESS (SPID column) and the V $ SESSION views to find the corresponding database session to check the current work being performed and take appropriate action. In an Oracle system, processes that consume excessive CPU are often caused by inefficient SQL. For example, if the execution plan is so bad that SQL is executed that accesses a large number of blocks unnecessarily, this will cause a large amount of memory operations (Logical IO), which will put a heavy load on the CPU. The sorting and parsing tasks performed during SQL processing are also typical CPU tasks, so any application that unnecessarily causes excessive sorting or repetitive analysis can be the main culprit of system performance degradation.

시스템에 성능문제가 있을 때 일반적으로 문제해결에 어려움을 겪는 경우는 딱히 주범으로 지적할 만한 악성 프로세스도 눈에 띄지 않는데 시스템의 성능은 전반적으로 느리거나, 어디쯤 병목지점이 존재하는 것 같은데 꼭 집어낼 만한 원인이 눈에 보이지 않을 때이다. OS측면에서 모니터링을 하면 사용자는 성능저하를 호소하는 상황에서 CPU의 사용률이 특정 프로세스에 점유되지도 않으면서 아이들(IDLE)이 거의 없는 상황이 수시로 발생할 것이다. 자원할당 및 배분의 잘못으로 인한 병목이 근본 원인일 수도 있고 애플리케이션에서 불필요하게 리소스를 많이 소모하는것이 근본 원인일 수도 있으며 어쩌면 애플리케이션에서는 정당하게 자신이 필요한 만큼의 리소스를 소모하고 있으나 전체 시스템 자원이 그것을 커버하기에 절대적으로 부족하여 발생하는 점검을 해보아도 증상은 있으나 원인이 분명하지 않다면 어디부터 문제를 풀어가야 할까. 여기에서 종 문제일 수도 있으며, 모든 문제들이 복합적으로 얽혀서 발생하는 문제일 수도 있다. 데이터베이스 관리솔루션 측면에서 데이터베이스 관리자와 개발자간에 논쟁이 발생한다. 데이터베이스 튜닝이 먼저인가 애플리케이션 튜닝이 먼저인가. 상황에 따라 데이터베이스 튜닝을 우선적으로 수행하여 더 많은 효과를 거둘 수도 있으나 굳이 우선 순위를 두자면 애플리케이션에 대한 점검 및 튜닝을 우선적으로 진행하는 것이 더 효과적이고 효율적인 경우가 많은데 그 이유로써,When there is a performance problem with a system, it is generally difficult to troubleshoot the problem, and there are no malicious processes that can be pointed out as the main culprit. The performance of the system is generally slow or somehow a bottleneck exists. This is when the cause is not visible. When monitoring on the OS side, users will often experience a situation where there is little idle when the CPU utilization is not occupied by a specific process while compromising performance. The bottleneck caused by the misallocation and allocation of resources may be the root cause, or an unnecessary consumption of resources in an application may be the root cause, and perhaps an application is consuming as much resources as it needs, but the entire system resource covers it. If you have the symptoms caused by the lack of checks, but the symptoms are not clear, where should I solve the problem. It may be a species problem here, or it may be a problem caused by a complex entanglement of all problems. Controversy arises between database administrators and developers in terms of database management solutions. Database tuning first or application tuning first. Depending on the situation, you may prefer to perform database tuning first to get more effect, but if you want to prioritize it, it is often more effective and efficient to check and tune your application first.

첫째는, 데이터베이스 튜닝은 외부로부터 요구되는 작업량, 작업형태에 따라 수동적으로 진행될 수 밖에 없다는 점이다. 자기 홀로 스스로 완벽한 데이터베이스는 있을 수가 없다. 다만, SQL을 통해 사용자로부터 요구되는 작업내용, 작업량에 맞추어 주어진 상황에서 최대의 효율을 발휘하기 위해 최선을 다하는 데이터베이스가 있을 뿐이다. 그런데 데이터베이스에 요구되는 작업 자체에 근본적으로 심각한 문제가 있다면 데이터베이스의 튜닝을 위한 노력은 보잘 것 없는 일이다The first is that database tuning can only be done manually depending on the amount of work and type of work required from the outside. You alone cannot have a complete database on your own. However, there are only databases that do their best to achieve the maximum efficiency in a given situation according to the work contents and workload required by users through SQL. However, if there is a fundamental problem with the database itself, then the effort to tune the database is trivial.

둘째는, 데이터베이스에서 인지되는 병목현상은 상위레벨의 애플리케이션에 의해 확대되어 나타나는 경우가 많기 때문에 그 자체만으로 데이터베이스 관리솔루션에 대해 어떤 행동을 취하기로 결론 내리기는 어려운 경우가 많다는 점이다. 예를 들자면, 버퍼 캐쉬 적중률(Buffer Cache Hit Ratio)은 그 자체로 아무런 판단근거가 될 수 없다. 적중률이 낮다고 해도 그것이 야간의 대량 배치작업 때문이라면 별 문제가 될 수 없으며 적중률이 높은 원인 가운데에는 상호연관된 하부질의를 사용하는 비효율적인 SQL로 인해 동일 블록이 반복적으로 액세스된 덕택일 수도 있기 때문이다. 결국 데이터베이스 관리솔루션의 각종 통계지표는 외부적으로 증상을 드러내는 요소이지만 치료는 증상에 대해 하는 것이 아니라 질병의 원인에 대해 하는 것이므로 필연적으로 근본적인 원인파악이 우선되어야 이 과정에서 결국 SQL에 대한 점검이 빠질 수 없다는 것이다.Second, the bottlenecks perceived in the database are often magnified by higher-level applications, so it is often difficult to conclude by itself what to do with database management solutions. For example, the Buffer Cache Hit Ratio by itself is no basis for judgment. Even if the hit rate is low, it is not a problem if it is due to a nightly batch job, and the reason for the high hit rate may be that the same block is repeatedly accessed due to inefficient SQL using correlated subqueries. After all, various statistical indicators of the database management solution reveal the symptoms externally, but treatment is not about the symptoms but about the cause of the disease. Therefore, the root cause must be identified first. It can not be.

마지막으로 중요한 것은, SQL 튜닝이 데이터베이스 튜닝에 비해 상대적으로 쉽다는 점이다. 데이터베이스 튜닝은 사실 매우 반복적이고 소모적인 작업이다. 데이터베이스를 튜닝하려고 하면 우선, 새로운 파라미터 값을 적용하기 위해서 서비스를 중단해야만 하는 문제에 직면하게 되며 그것이 한번에 끝난다는 보장도 없다. 문제의 원인이 명백하지 않은 상황이므로 특정 파라미터 값을 적용한 후 모니터링하고 다시 조정 후 모니터링하는 작업을 반복해야 한다. 또한, 시스템의 성능에 영향을 미치는 튜닝항목은 무수히 많아 그들을 일일이 고려하는 것도 쉽지 않을 뿐만 아니라 각 항목들간에는 상호 영향을 주고받기 때문에 특정 영역의 문제를 해결하면 잠재되어 있던 다른 문제가 새롭게 부각되어 나타나는 경우가 부지기수이므로 이 값들간에 균형을 맞춰 최적의 상태로 유지시키는 것은 주사위를 모서리로 세우는 것만큼 쉽지 않은 일이다.Last but not least, SQL tuning is relatively easy compared to database tuning. Database tuning is actually a very repetitive and exhausting task. If you try to tune the database, you will first have to stop the service to apply the new parameter values, and there is no guarantee that it will end at once. Since the source of the problem is not obvious, monitoring should be repeated after applying a specific parameter value and monitoring after adjustment. In addition, there are many tuning items that affect the performance of the system, and it is not easy to consider them one by one, and each item is influenced by each other. Since the case is trivial, it is not as easy as balancing the dice to keep it optimal.

그러나, 예전에는 데이터베이스 시스템 성능진단과 관련한 작업들을 대부분 관리자 스스로 작성하거나 수집한 SQL 스크립트를 이용하여 수작업으로 처리하였다. 그러므로 표준화된 정보 수집 및 지침이 제시되지 않아 각기 다른 해석을 내리고 다른 튜닝 방법을 사용하여 시스템 안정화 및 이에 대한 전문가 양성이 어려웠으며, 시스템에 대해 요구되어지는 각종 상세한 정보를 쉽고 빠르게 제공하여 주는 유저 인터페이스가 부족하였다. 이러한 이유로 주기적으로 체크할 수 있는 효율적이고 체계화된 데이터베이스 시스템 성능진단 방법 및 사용자 위주의 편리한 인터페이스가 필요하게 되었다.In the past, however, most of the tasks related to database system performance diagnostics were handled manually using administrator-written or collected SQL scripts. Therefore, it is difficult to stabilize the system and train experts about different systems by using different analysis methods and using different tuning methods because standardized information collection and guidance are not provided, and a user interface that provides various detailed information required for the system quickly and easily. Was lacking. For this reason, an efficient and systematic database system performance diagnosis method and a user-friendly interface that can be checked periodically are needed.

따라서, 본 발명의 목적은 데이터베이스 시스템에 대한 성능진단을 실시간으로 수행하여 개발자 또는 데이터베이스 관리자의 수고를 덜어주고 보다 빠르고 손쉽게 문제를 파악하고 조치할 수 있는 방법을 제공하는 것이다.Accordingly, it is an object of the present invention to provide a method for performing performance diagnosis on a database system in real time, thereby reducing the effort of a developer or a database administrator, and identifying and correcting a problem more quickly and easily.

본 발명의 다른 목적은 데이터베이스 시스템에 대한 성능진단을 실시간으로 수행하여 개발자 또는 데이터베이스 관리자의 수고를 덜어주고 보다 빠르고 손쉽게 문제를 파악하고 조치할 수 있는 프로그램이 저장된 컴퓨터 판독가능한 기록매체를 제공하는 것이다.Another object of the present invention is to provide a computer-readable recording medium storing a program that can perform performance diagnosis of a database system in real time, thereby reducing the effort of a developer or a database administrator, and identifying and correcting a problem more quickly and easily.

도 1은 본 발명에 따른 바람직한 구현예에 따른 정형적 분석의 흐름도를 도시한 것이다.1 shows a flowchart of a formal analysis according to a preferred embodiment according to the present invention.

도 2는 상기 정형적 분석을 수행하기 위해 사용자에게 제공되는 그래픽 사용자 인터페이스(GUI)의 바람직한 구현예를 보여준다.2 shows a preferred implementation of a graphical user interface (GUI) provided to a user for performing the formal analysis.

도 3은 비정형석 분석의 흐름도와 각 단계별 필요한 기능을 정리한 블록도이다.3 is a block diagram summarizing the flow chart of the amorphous stone analysis and the necessary functions for each step.

도 4는 인스턴스 모니터의 활용예를 보여주는 그래픽 사용자 인터페이스이다.4 is a graphical user interface showing an example of the use of an instance monitor.

도 5는 OS PID 정보를 이용하여 대응하는 데이터베이스 세션의 기본 정보와 작업상태 및 관련 SQL의 정보를 알아내는데 필요한 통계 뷰를 나타낸 것이다.FIG. 5 shows a statistical view required to find basic information of a corresponding database session, work status, and related SQL information using OS PID information.

도 6은 "Top" 명령어를 사용하여 탑 프로세스의 PID를 알아낸 후 세션 모니터링을 수행하기 위한 사용자 인터페이스이다.Figure 6 is a user interface for performing session monitoring after finding the PID of the top process using the "Top" command.

도 7은 세션 모니터로부터 플랜 툴로 SQL을 전송한 화면이다.7 is a screen transfer of SQL from the session monitor to the plan tool.

도 8은 세션 모니터의 옵션에서 조회하고자 하는 통계항목을 선택한 후 해당 컬럼으로 정렬하여 로지컬 리드(logical reads)가 가장 큰 세션 정보를 조회하는그래픽 사용자 인터페이스이다.FIG. 8 is a graphical user interface for selecting a statistical item to be queried from options of a session monitor and sorting by corresponding column to retrieve session information having the largest logical reads.

도 9는 세션 모니터에서 특정 세션에 대하여 트레이스를 건 후 트레이스 툴을 통하여 트레이스 파일을 가져와 경과된 시간이 큰 SQL부터 순서대로 포맷하여 각종 통계정보와 함께 표시하여 주는 그래픽 사용자 인터페이스이다.9 is a graphical user interface for tracing a particular session in a session monitor and then importing a trace file through a trace tool, formatting the elapsed time in order from a large SQL, and displaying it with various statistical information.

도 10은 잠금/래치 모니터를 사용하여 세션의 잠금 상황 및 블로킹 상황을 확인하기 위한 그래픽 사용자 인터페이스이다.10 is a graphical user interface for checking the locking and blocking status of a session using a lock / latch monitor.

도 11은 SQL 모니터를 통해 탑 SQL을 추출한 예를 보여주는 사용자 인터페이스이다.11 is a user interface showing an example of extracting the top SQL through the SQL monitor.

도 12는 본 발명에 따른 분석 방법을 자동 결정하는 알고리즘을 보여주는 흐름도이다.12 is a flowchart showing an algorithm for automatically determining an analysis method according to the present invention.

도 13은 코스트에 기초한 옵티마이저 운영 환경에서 테이블, 인덱스, 클러스터와 같은 세그먼트 오브젝트에 대한 통계정보를 메뉴 화면을 통해 손쉽게 관리할 수 있도록 해주는 것을 예시하는 사용자 인터페이스이다.FIG. 13 is a user interface illustrating that statistics information on segment objects such as tables, indexes, and clusters can be easily managed through a menu screen in a cost-based optimizer operating environment.

상기 목적을 이루기 위한 본 발명에 따른 데이터베이스 시스템 모니터링 방법은 오라클 기반의 데이터베이스 시스템에 대한 정형적 분석과 비정형적 분석을 수행하여 데이터베이스 시스템의 성능을 진단하고, 데이터베이스 부하의 요소를 도출하여 분석하고 문제를 개선하여 최적화된 데이터베이스 시스템을 유지하기 위한 데이터베이스 시스템 모니터링 방법에 관한 것이다.The database system monitoring method according to the present invention for achieving the above object is to perform the formal and atypical analysis of the Oracle-based database system to diagnose the performance of the database system, to derive the factors of the database load and to analyze the problems The present invention relates to a database system monitoring method for improving and maintaining an optimized database system.

본 명세서에서, "정형적 분석"이라 함은 오라클 기반의 데이터베이스 시스템의 성능을 진단하는 분석을 말하며, "비정형적 분석"이라 함은 상기 정형적 분석의 결과 시스템의 상태에 부하가 감지된 경우 이를 분석하고 문제를 해결하기 위한 분석을 말한다.In this specification, "formal analysis" refers to an analysis for diagnosing the performance of an Oracle-based database system, and "atypical analysis" refers to a case where a load is detected in the state of the system as a result of the formal analysis. Analyze and analyze to solve a problem.

상기 본 발명에 따른 데이터베이스 시스템 모니터링 방법은 다음의 단계를 포함한다:The database system monitoring method according to the present invention includes the following steps:

a) 오라클 기반의 데이터베이스 시스템의 사용환경을 확인한 후, 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목별로 정형적 분석을 수행할지 여부를 선택할 수 있는 선택란 및 항목별 부하여부 표시란을 포함하는 항목 표시창, 정형적 분석을 실행시킬 수 있는 또는 실행된 정형적 분석을 중지시킬 수 있는 실행 및 중지 아이콘, 정형적 분석의 수행상태를 항목별로 표시하는 수행상태 표시창, 항목별 분석의 수행 목적 및 상세 설명을 표시하는 수행목적과 상세설명 표시창, 권고값 및 분석의 결과값을 표시하는 분석결과 표시창, 그리고 튜닝안내에 대한 정보를 제공하는 튜닝안내 표시창을 포함하는 그래픽 사용자 인터페이스를 제공한 후 사용자의 실행명령에 따라 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목들에 대한 정보를 수집하고 이를 저장하는 단계로 구성된 정형적 분석을 수행하여 오라클 기반의 데이터베이스 시스템의 상태를 점검하는 단계,a) an item display window including a check box for selecting whether or not to perform a formal analysis for each diagnostic item for checking the state of the database system after checking the usage environment of the Oracle-based database system, Displays the execution and stop icons that can execute the formal analysis or stop the executed formal analysis, the execution status window that displays the execution status of the formal analysis item by item, the purpose of performing the analysis by item, and a detailed description. According to the user's execution command, after providing the graphical user interface including the execution purpose and detailed explanation display window, the analysis result display window displaying the recommended value and the analysis result value, and the tuning guide display window providing information on the tuning guide. Information about diagnostic items for checking the state of the database system Steps to the house and perform a formal analysis consists of storing them to check the status of Oracle-based database system,

b) 상기 단계 a)의 결과 시스템의 부하가 감지되면 부하가 발생한 항목에 대하여 데이터베이스 시스템의 파라미터를 변경하는 단계, 및b) if the load of the system is detected as a result of step a), changing the parameters of the database system for the item in which the load occurred; and

c) 오라클 인스턴스의 통계정보를 실시간 그래프로 모니터링하는 인스턴스모니터링, 세션별 상태를 모니터링하는 세션 모니터링, 세션별 SQL을 모니터링하는 SQL 모니터링을 통해 부하의 원인을 분석한 후, 애플리케이션 튜닝을 수행하고 오브젝트를 관리하는 단계로 구성된 비정형적 분석을 수행하여 데이터베이스 시스템의 최적화를 유지하는 단계를 포함한다.c) Analyze the cause of the load through instance monitoring that monitors statistics of Oracle instances in real time graphs, session monitoring that monitors the status of each session, and SQL monitoring that monitors the SQL of each session, and then perform application tuning and perform object tuning. Performing atypical analysis consisting of managing steps to maintain optimization of the database system.

이하, 첨부된 도면을 참조하여 본 발명을 보다 자세히 기술하도록 한다.Hereinafter, with reference to the accompanying drawings to describe the present invention in more detail.

도 1은 본 발명에 따른 바람직한 구현예에 따른 정형적 분석의 흐름도를 도시한 것이다.1 shows a flowchart of a formal analysis according to a preferred embodiment according to the present invention.

상기 도 1에 도시된 바와 같이, 정형적 분석은 정보수집단계(S101), 문제식별단계(S102), 지침 및 조언 단계(S103) 및 결과를 저장하는 단계(S104)로 구성된다. 정보의 수집시 사용환경(예를 들면, 언어 및 버전)을 먼저 확인함으로써 사용 환경에 능동적으로 대처하게 된다. 구체적으로는, 사용언어를 확인함으로써 사용자 언어에 부합하는 인터페이스를 제공할 수 있으며, 또한 사용버전을 확인함으로써 사용버전의 변화에 효과적으로 대처하게 된다. 데이터베이스의 상태를 점검하기 위한 각종 진단 정보는 기본정보, 공유 글로벌 영역(Shared Global Area, 이하, "SGA"), 대기 이벤트, 입출력, 스페이스, 액세스 타입, 오라클 멀티스레드 서버(Multi-Thread Server, 이하 "MTS"), 오라클 병렬서버(oracle parallel server, 이하 "OPS")를 포함하는 8개의 카테고리와 이에 속하는 세부항목을 포함하여 이루어진다. 상기 정형적 분석은 상기 진단정보들에 대한 정보 수집을 실시간으로 수행한다. 수집의 결과 부하가 발생한 항목이 있을 경우 사용자가 식별할 수 있는 형태(예: 마크 또는 색깔의 부여)로 사용자에게 제공되고, 사용자는 상기 부하가 발생한 항목에 대한 상세한 정보를 쉽게 확인하게 된다. 그 후, 항목별 진단의 수행목적 및 이에 대한 상세설명과 더불어 권고값을 제시하고 튜닝에 대한 안내 정보를 제공하게 된다. 정형적 분석항목의 정의는 다음과 같다.As shown in FIG. 1, the formal analysis includes an information collecting step S101, a problem identification step S102, a guide and an advice step S103, and a result storing step S104. When collecting information, the user environment (eg language and version) is first identified to actively cope with the use environment. Specifically, by checking the language used, an interface corresponding to the user language can be provided, and by checking the version used, the user version can effectively cope with the change in the version used. The diagnostic information for checking the status of the database includes basic information, shared global area ("SGA"), standby events, I / O, space, access type, and Oracle Multi-Thread Server. "MTS"), Oracle parallel server ("OPS"), including eight categories, including the sub-category. The formal analysis performs information collection on the diagnostic information in real time. If there is an item that has a load as a result of the collection, it is provided to the user in a form that can be identified by the user (eg, a mark or a color), and the user can easily check detailed information on the item having the load. After that, the purpose of the diagnosis and the detailed description of the item-specific diagnosis are presented along with the recommended value and guidance on tuning is provided. Formal analysis items are defined as follows.

- 정형적 분석항목 정의 --Define formal analysis items-

@ SQL Definition@ SQL Definition

@ Format :@Format:

@ {@ {

@ {groupid}, -> integer format (start with 0)@ {groupid},-> integer format (start with 0)

@ {groupname}, -> string format@ {groupname},-> string format

@ {itemid}, -> integer format (start with 0)@ {itemid},-> integer format (start with 0)

@ {itemname}, -> string format@ {itemname},-> string format

@ {itemSQL_7}, -> string format (버전 7용 SQL)@ {itemSQL_7},-> string format (SQL for version 7)

@ {itemSQL_8}, -> string format (버전 8용 SQL)@ {itemSQL_8},-> string format (SQL for Version 8)

@ {itemSQL_8i}, -> string format (버전8i용 SQL)@ {itemSQL_8i},-> string format (SQL for version 8i)

@ {itemSQL_9i}, -> string format (버전 9용 SQL)@ {itemSQL_9i},-> string format (SQL for version 9)

@ {itemNote}, -> string format (분석항목 목적:영문)@ {itemNote},-> string format (Analytics purpose: English)

@ {itemNote_KOR}, -> string format (분석항목 목적:국문)@ {itemNote_KOR},-> string format (Analysis Item Purpose: Korean)

@ {itemDescription}, -> string format (분석항목 상세설명:영문)@ {itemDescription},-> string format

@ {itemDescription_KOR},-> string format (분석항목 상세설명:국문)@ {itemDescription_KOR},-> string format

@ {itemGuide}, -> string format (튜닝안내:영문)@ {itemGuide},-> string format (Tuning Instructions)

@ {itemGuide_KOR}, -> string format (튜닝안내:국문)@ {itemGuide_EN},-> string format (Tuning Guide: Korean)

@ {itemType},-> integer format (0: No Ref, 1: <, 2: >)@ {itemType},-> integer format (0: No Ref, 1: <, 2:>)

@ {itemInitRef}, -> real format@ {itemInitRef},-> real format

@ {itemUnit} -> string format@ {itemUnit}-> string format

@ }@}

아래의 표 1은 정형적 분석항목의 상세 내용을 정리한 것이다.Table 1 below summarizes the details of the formal analysis items.

표 1 계속Table 1 continued

표 1 계속Table 1 continued

표 1 계속Table 1 continued

표 1 계속Table 1 continued

_ _

표 1 계속Table 1 continued

상기 표 1에 도시된 바와 같이, 데이터베이스 시스템의 상태를 점검하기 위한 정형적 분석항목은 기본정보, SGA, 대기 이벤트, 입출력, 스페이스, 액세스 타입, MTS, OPS를 포함하는 8개의 카테고리와 이에 속하는 45개의 세부항목으로 나뉘어진다.As shown in Table 1, the formal analysis items for checking the state of the database system include eight categories including basic information, SGA, wait event, I / O, space, access type, MTS, and OPS and 45 It is divided into three details.

도 2는 상기 정형적 분석을 수행하기 위해 사용자에게 제공되는 그래픽 사용자 인터페이스(GUI)의 바람직한 구현예를 보여준다. 상기 사용자 인터페이스는 HTML(HyperText Markup Language) 형식으로 작성된다. 상기 도 1에서 알 수 있는 바와 같이, 상기 사용자 인터페이스는 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목별로 정형적 분석을 수행할지 여부를 선택할 수 있는 선택란(211) 및 항목별 부하여부 표시란(212)을 포함하는 항목 표시창(201), 정형적 분석을 실행시킬 수 있는 또는 실행된 정형적 분석을 중지시킬 수 있는 실행 및 중지 아이콘(202), 항목별 정형적 분석의 수행상태를 표시하는 수행상태 표시창(203), 항목별 분석의 수행 목적 및 상세 설명을 표시하는 수행목적과 상세설명 표시창(204), 권고값 및 분석의 결과값을 표시하는 분석결과 표시창(205), 튜닝안내에 대한 정보를 제공하는 튜닝안내 표시창(206), 그리고 분석 목적 및 권고값을 요약한 요약정리창(207)을 포함한다. 항목별로 정형적 분석을 수행할 지의 여부를 선택할 수 있는 선택란(211)을 둠으로써 모든 항목에 대한 정형적 분석을 수행하지 않고도 부하가 종종 발생한 항목에 대해서만 정형적 분석을 수행할 수 있게 된다. 그리고, 항목별 부하여부를 표시할 수 있는 부하 여부 표시란(212)를 둠으로써 사용자는 간단하게 부하가 발생한 항목을 확인할 수 있게 된다. 그리고, 사용자가 정형적 분석을 수행한 결과를 보다 상세히 확인하고자 할 경우, 사용자는 각 항목을 클릭함으로써 상기한 분석결과에 대하여 자세한 정보를 얻을 수 있다. 예를 들면, 사용자가 "버퍼캐시 적중률"(buffer cache hit ratio)에 대한 보다 상세한 분석 결과를 확인하고자 하는 경우 좌측의 항목 표시창(201)에서 "버퍼캐시 적중률" 항목을 클릭함으로써 버퍼캐시 적중률의 수행상태, 수행목적, 상세설명 및 권고값과 결과값을 하나의 창에서 간편하게 확인할 수 있게 된다. 상기한 화면상에서 "딕셔너리 캐시 적중률"(dictionary cache hit ratio)은 항목별 부하여부 표시란(202)이 마크되어 있어 정형적 분석을 수행한 결과, 부하가 발생한 항목임을 알려준다. 따라서, 상기 항목을 클릭한 후 비정형적 분석의 결과값 등을 확인한 후 튜닝 안내에 따라 파라미터의 변경을 수행하게 된다. 부하여부의 표시는 다양한 방법으로 표현될 수 있으며, 예를 들면, 적색으로 표시하여 사용자에게 명확하게 인식시킬 수 있다.2 shows a preferred implementation of a graphical user interface (GUI) provided to a user for performing the formal analysis. The user interface is written in HTML (HyperText Markup Language) format. As can be seen in FIG. 1, the user interface includes a check box 211 for selecting whether or not to perform a formal analysis for each diagnostic item for checking a state of a database system and a load display field 212 for each item. Item display window 201 including a, execution and stop icon 202 that can execute a formal analysis or stop the executed formal analysis, performance status display window for displaying the performance status of the formal analysis by item (203), the performance purpose and detailed explanation display window (204) for displaying the purpose and detailed description of the analysis of each item, the analysis result display window (205) for displaying the recommended value and the analysis result, information for tuning guide A tuning guide display window 206, and a summary summary window 207 summarizing the analysis purpose and recommended values. By providing a check box 211 for selecting whether or not to perform a formal analysis for each item, it is possible to perform a formal analysis only on an item in which a load often occurs without performing a formal analysis on all items. In addition, by providing a load availability display field 212 that can display the load for each item, the user can easily identify the item in which the load has occurred. In addition, when the user wants to confirm the results of the formal analysis in more detail, the user may obtain detailed information on the above analysis result by clicking each item. For example, if the user wants to check the result of a more detailed analysis of the "buffer cache hit ratio", the buffer cache hit ratio is performed by clicking the "buffer cache hit ratio" item in the item display window 201 on the left. Status, purpose of execution, detailed explanation, recommended value and result value can be easily checked in one window. In the above screen, the dictionary cache hit ratio indicates that an item having a load is generated as a result of performing a formal analysis by displaying a loading section display field 202 for each item. Therefore, after clicking on the above item, the result of the atypical analysis is checked, and then the parameter is changed according to the tuning guide. The display of the load may be expressed in various ways, for example, it may be displayed in red so as to be clearly recognized by the user.

상기한 정형적 분석은 데이터베이스 시스템 진단시 일차적으로 간단하게 시스템 상황을 판단할 수 있는 유용한 툴이며, 데이터베이스 관리자라면 정기적으로 시스템 상황을 점검 및 기록하고 리포트 하는 도구로서 실무적으로 유용하게 활용할 수 있다.The formal analysis is a useful tool that can be used to easily determine the system status during the diagnosis of a database system, and a database administrator can use it as a tool for checking, recording, and reporting the system status on a regular basis.

도 3은 비정형석 분석의 흐름도(310)와 각 단계별 필요한 기능(320)을 정리한 블록도이다. 본 발명에 따른 비정형적 분석은 인스턴스 모니터링(301), 세션 모니터링(302), SQL 모니터링(304)을 통해 문제를 분석한 후(304), 애플리케이션 튜닝(305)을 수행하고 오브젝트를 관리(306)하는 단계로 구성되며, 이러한 분석에 의해 데이터베이스 시스템이 최적화된 상태로 유지되게 된다.3 is a block diagram summarizing the flow chart 310 of the amorphous stone analysis and the necessary functions 320 for each step. Atypical analysis according to the present invention analyzes the problem via instance monitoring 301, session monitoring 302, SQL monitoring 304 (304), then performs application tuning (305) and manages objects (306). This analysis allows the database system to remain in an optimized state.

이하 각 단계별로 보다 상세히 설명하면 다음과 같다.Hereinafter, the steps will be described in more detail.

인스턴스 모니터링(또는 인스턴스 & OS 모니터)(301)은 오라클 인스턴스에 대하여 미리 정의된 9가지 카테고리, 버퍼캐시 적중률(buffer cache hit ratio), 라이브러리/딕셔너리 적중률(library/dictionary hit ration), 상호연관된세션(connected sessions), 활성 트랜잭션(active transaction), 공유 풀 크기(shared pool size), 초당 I/O 블록(I/O blocks per second), 초당 반복 크기/쓰기(Redo size/writes per second), 초당 분석/실행 횟수(parse/execution count per second), 초당 대기 이벤트 발생(wait event occurrence per second)의 통계정보를 실시간 그래프로 모니터링 할 수 있도록 하는 툴인데, 리프레쉬 간격(Refresh Interval)을 설정할 수 있으며 필요에 따라 그래프를 확대하여 볼 수도 있다. 상기한 9가지 카테고리는 인스턴스 모니터에서 제공하는 정보 중에서 가장 중요하고 또 자주 조회하는 통계정보로서, 시스템 상황의 추이를 직관적으로 판단하고 조치하는데 유용하다. 예를 들어, 인스턴스 모니터의 초당 IO 블록 그래프가 특정 시간부터 증가하여 지속적으로 높은 수치를 보인다면 세션 모니터를 열어 현재 수행중인 세션가운데 가장 IO가 많은 세션을 조회하여 수행 SQL 및 기타 관련 정보를 찾아낼 수 있다. 도 4는 인스턴스 모니터의 활용예를 보여주는 그래픽 사용자 인터페이스이다.Instance Monitoring (or Instance & OS Monitor) 301 includes nine predefined categories for Oracle instances, buffer cache hit ratio, library / dictionary hit ratio, and correlated sessions. connected sessions, active transactions, shared pool size, I / O blocks per second, redo size / writes per second, analytics per second This tool allows you to monitor the statistics of parsing / execution count per second and wait event occurrence per second in real time graph.You can set the refresh interval and You can also zoom in on the graph. The above nine categories are the most important and frequently inquired statistical information among the information provided by the instance monitor, and are useful for intuitively determining and acting on the trend of the system situation. For example, if the instance monitor's IO block graph increases from a certain time and continues to show high numbers, open the session monitor to see the most IO sessions in the current session and find out the SQL and other related information. Can be. 4 is a graphical user interface showing an example of the use of an instance monitor.

유닉스의 "Top"이나 "Ps" 명령어를 사용하여 인스턴스 모니터링을 수행하던 중 몇몇 오라클 프로세스가 대부분의 CPU를 점유하고 있는 것을 알아내었다면 상기한 프로세스가 어떤 상태인지, 무슨 작업을 수행하고 있는지 확인하여 볼 필요가 있다. 이때는 오라클의 뷰 가운데 V$PROCESS와 V$SESSION을 사용하는데 OS상에서 프로세스의 PID가 V$PROCESS의 SPID 컬럼에 해당한다. 도 5는 OS PID 정보를 이용하여 대응하는 데이터베이스 세션의 기본 정보와 작업상태 및 관련 SQL의 정보를 알아내는데 필요한 통계 뷰를 나타낸 것이다.If you find that some Oracle processes occupy most of the CPU while performing instance monitoring using the Unix "Top" or "Ps" commands, check what state and what they are doing. I need to see. In this case, we use V $ PROCESS and V $ SESSION among Oracle's views, and the PID of the process on the OS corresponds to the SPID column of V $ PROCESS. FIG. 5 shows a statistical view required to find basic information of a corresponding database session, work status, and related SQL information using OS PID information.

도 6은 "Top" 명령어를 사용하여 탑 프로세스의 PID를 알아낸 후 세션 모니터링을 수행하기 위한 사용자 인터페이스이다. 예를 들면, "Top" 명령어를 사용하여 탑 프로세스의 PID를 확인한 결과 현재 PID가 157596인 오라클 프로세스의 CPU 소모량이 높은 것으로 나타났다면 세션 모니터링를 실행시켜 SPID컬럼으로 정렬한 후 SPID가 157596인 세션을 찾으면 된다. 상기 도 6을 참조하여 설명하면, 현재 PID가 157596인 오라클 프로세스는 현재 데이터베이스 상에서 SID가 565인 세션으로서 Orange.exe를 사용하여 SYS 유저로 접속하여 "SELECT" 문장을 수행 중인 것을 확인할 수 있으며 수행 중인 SQL 문장의 신택스가 하단에 표시되어 있다. 이 세션이 어떤 자원에 대하여 대기 상태에 있는지, 또는 이 세션의 상세정보 및 각종 누적 통계정보를 보고자 한다면 해당 세션을 더블 클릭하면 된다. 작은 화면은 특정 세션의 상세정보를 보여주는 화면이며 이 정보는 V$PROCESS, V$SESSION, V$SESSION_WAIT, V$SESSION_EVENT, V$SESSTAT, V$OPEN_CURSORS, V$SQL 등의 뷰를 내부적으로 조회하여 얻어낸다.Figure 6 is a user interface for performing session monitoring after finding the PID of the top process using the "Top" command. For example, if you use the "Top" command to determine the PID of the top process and find that the Oracle process with the current PID of 157596 is high in CPU consumption, run session monitoring, sort by SPID column, and find the session with SPID 157596. do. Referring to FIG. 6, the Oracle process with the current PID of 157596 is a session with the SID of 565 on the current database, and it is confirmed that the user is executing the "SELECT" statement by connecting as the SYS user using Orange.exe. The syntax of the SQL statement is shown at the bottom. If you want to see which resource this session is waiting for, or if you want to see detailed information and various statistics of this session, just double click on the session. The small screen shows the details of a specific session. This information is internally queried for views such as V $ PROCESS, V $ SESSION, V $ SESSION_WAIT, V $ SESSION_EVENT, V $ SESSTAT, V $ OPEN_CURSORS, V $ SQL. Get it.

현재 이 세션은 'db file scattered read' 이벤트에 대하여 지속적으로 대기하고 있는 것을 확인할 수 있는데 이는 전체 테이블 스캔을 수행할 때 발생하는 대기 이벤트이다. 현재 이 세션에서 수행 중인 SQL에 대한 실행계획을 확인하고 튜닝을 수행하고자 한다면 세션 모니터로부터 바로 플랜 툴(Plan Tool)로 SQL문장을 전송할 수 있다. 도 7은 세션 모니터로부터 플랜 툴로 SQL을 전송한 화면이다. 전송된 SQL에 대하여 자동으로 실행계획이 표시되며 SQL 신택스의 가독성이 떨어지는 경우 읽기 쉽게 포맷하면 된다. 즉, 상기한 플랜 툴은 SQL 문장의 실시간 트레이스정보를 레벨별로 설정하여 계층별로 표현함으로써 실행계획을 쉽게 분석하고 관련 오브젝트 정보를 즉시 확인하면서 최적의 실행계획을 수립하도록 한다.You can see that this session is constantly waiting for the 'db file scattered read' event, which is a wait event that occurs when you perform a full table scan. If you want to check the execution plan for the SQL currently running in this session and perform tuning, you can send the SQL statement directly from the session monitor to the Plan Tool. 7 is a screen transfer of SQL from the session monitor to the plan tool. The execution plan is automatically displayed for the transferred SQL, and if the SQL syntax is not readable, it can be easily read. That is, the plan tool sets the real-time trace information of the SQL statement for each level and expresses the hierarchical level to easily analyze the execution plan and establish the optimal execution plan while immediately checking related object information.

도 7에 따른 플랜 툴의 가장 큰 장점은 실시간으로 트레이스를 수행 및 포맷할 수 있다는 것인데 버튼 하나만으로 해당 세션에 대하여 트레이스를 걸고 SQL을 수행시킨 후 서버로부터 트레이스 파일을 가져와서 "TKPROF"와 같은 형식으로 포맷까지 완료하여 표시하여 준다. 또한, 트레이스 레벨을 1, 4, 8, 12 가운데 선택하여 수행할 수 있으며 어레이 크기나 수행 스키마, 옵티마이저 모드 등을 손쉽게 바꿔가면서 테스트해 볼 수도 있다.The biggest advantage of the plan tool according to Fig. 7 is that the trace can be performed and formatted in real time. With a single button, trace the session, execute SQL, and then import the trace file from the server to format "TKPROF". Format to complete. In addition, you can select from 1, 4, 8, or 12 trace levels, and test easily by changing the array size, execution schema, and optimizer mode.

마지막으로 플랜 툴의 중요한 기능 가운데 하나는 원본 SQL과 튜닝 SQL을 각각 별도의 탭으로 구분하여 각각에 대한 실행계획, 스키마 정보, 트레이스 결과 등을 비교하면서 작업할 수 있으며 이 모든 튜닝작업 결과를 저장하였다가 추후에 다시 불러들여 작업시점의 실행계획과 통계정보 및 오브젝트 현황을 비롯한 모든 정보를 조회할 수 있으므로 실무적으로 매우 유용하다.Lastly, one of the important functions of the plan tool is to separate the original SQL and the tuning SQL into separate tabs so that you can work by comparing execution plans, schema information, and trace results for each, and save all the tuning results. It is very useful in practice because it can be recalled later to retrieve all information including execution plan, statistical information and object status at the time of work.

인스턴스 모니터링을 통하여 시스템 자원을 많이 사용하는 세션을 찾을 수도 있지만 데이터베이스 세션 통계정보로부터 직접 자원사용이 많은 세션을 찾을 수도 있다. 이때 사용하게 되는 뷰가 V$SESSTAT이며 V$STATNAME과 조인하여 200가지 이상의 통계항목에 대한 세션별 정보를 확인할 수 있다. "Top" 세션 추출에 자주 사용하는 항목은 'session logical reads', 'physical reads', 'CPU used by this session', 'parse count' 등이며 이 밖에도 다양한 통계 항목들을 잘 활용하면 시스템 상황에 대한 많은 정보를 얻을 수 있다.Instance monitoring can find sessions that use a lot of system resources, but you can also find sessions that use a lot of resources directly from database session statistics. At this time, the view to be used is V $ SESSTAT and you can check session-specific information on more than 200 statistics by joining with V $ STATNAME. The most frequently used items for "Top" session extraction are 'session logical reads', 'physical reads', 'CPU used by this session', and 'parse count'. You can get information.

도 8은 세션 모니터의 옵션에서 조회하고자 하는 통계항목을 선택한 후 해당 컬럼으로 정렬하여 로지컬 리드(logical reads)가 가장 큰 세션 정보를 조회하는 그래픽 사용자 인터페이스이다.FIG. 8 is a graphical user interface for selecting a statistical item to be queried from options of a session monitor and sorting by corresponding column to retrieve session information having the largest logical reads.

세션 모니터를 통해 세션 정보를 조회하여 문제가 있는 세션으로 판단될 경우 직접 "Kill" 세션 메뉴를 클릭하여 세션을 제거할 수 있으며 특정 세션에 대하여 레벨 1, 4, 8, 12로 트레이스를 걸 수 있다. 특히, 턱시도와 같은 미들웨어를 통하여 데이터베이스를 액세스하는 시스템인 경우 턱시도 서버에 대해 세션을 맺어놓고 다양한 서비스가 동일 세션 내에서 수행되므로 세션단위로 자원의 과다소모 여부를 판단하는 것은 큰 의미가 없으며 일정 기간동안 세션에 대해 트레이스를 건 후 악성 SQL을 추출하는 것이 효율적일 때가 많다.If the session information is checked through the session monitor and it is determined that the session is problematic, the session can be directly removed by clicking the "Kill" session menu and traced to levels 1, 4, 8, and 12 for a specific session. . In particular, in the case of a system that accesses a database through a middleware such as a tuxedo, it is not meaningful to determine whether the resource is excessively consumed in a unit of session since a session for the tuxedo server and various services are performed in the same session. It is often efficient to trace malicious sessions and then extract malicious SQL.

도 9는 세션 모니터에서 특정 세션에 대하여 트레이스를 건 후 트레이스 툴(Trace Tool)을 통하여 트레이스 파일을 가져와 경과된 시간이 큰 SQL부터 순서대로 포맷하여 각종 통계정보와 함께 표시하여 주는 그래픽 사용자 인터페이스이다. 상기한 트레이스 툴은, "TKPROF"로는 다른 컴퓨터에 존재하는 트레이스 파일을 해석하는 것은 불가능하므로, 로컬 또는 다른 서버상의 트레이스 파일을 FTP를 통해 가져와서 해석하고 SQL의 수행이 끝남과 동시에 SQL 트레이스 파일에 대한 분석 정보와 실행계획을 한번에 실시간으로 제공하여 잘못된 액세스 경로와 대량의 디스크 I/O, 자원(CPU, Memory) 사용 현황 등을 진단 하는데 뛰어난 성능을 발휘한다. 또한 "TKPROF"보다 자세한 정보제공(클라이언트 시간, 바인드 변수, 대기 이벤트)에 의해 로우 트레이스(Raw Trace) 파일 보기 및 플랜 툴과의 연동으로 세션에서문제가 발생한 부분을 정확히 찾아낼 수 있다.9 is a graphical user interface for tracing a specific session in a session monitor, and then importing a trace file through a trace tool, formatting the elapsed time in order from a large SQL, and displaying it with various statistical information. Since the above trace tool cannot interpret the trace file existing on another computer with "TKPROF", the trace file on the local or other server can be retrieved via FTP and interpreted. By providing analysis information and execution plan in real time at once, it shows excellent performance in diagnosing faulty access paths, large disk I / Os, and resource (CPU, memory) usage. Also, by providing more detailed information (client time, bind variables, and wait events) than "TKPROF", you can pinpoint the problem in the session by viewing the raw trace file and linking with the plan tool.

가끔 시스템이 갑작스런 성능저하 현상을 나타내는 경우 가운데 애플리케이션이 구조적으로 잘못 작성되어 트랜잭션을 발생시킨 후 장시간 동안 위탁(commit)이나 롤백시키지 않아 동일 데이터를 액세스하는 다른 세션들이 하염없이 대기하고 있는 상태일 때가 있다. 이런 경우에는 재빨리 잠금을 홀딩하고 있는 세션과 대기하고 있는 세션을 찾아 이 상황이 프로그램의 구조적인 문제 때문에 유발된 상황이 아닌지 원인 확인을 하고 블로킹 세션을 제거 시키는 등의 조치를 취해주어야 한다.Occasionally, when a system exhibits sudden performance degradation, other applications that access the same data without waiting or committing for long periods of time after the application has been structurally miswritten can cause transactions to wait forever. . In this case, find the session holding the lock and the waiting session quickly, check whether the situation is caused by the structural problem of the program, and remove the blocking session.

도 10은 잠금/래치 모니터(Lock/Latch Monitor)를 사용하여 세션의 잠금 상황 및 블로킹 상황을 확인하기 위한 그래픽 사용자 인터페이스이다. 현재 SID가 11인 세션이 SCOTT.EMP 테이블의 로우를 업데이트한 후 위탁을 수행하지 않은 상황에서 SID가 9인 세션인 동일한 로우에 대한 업데이트를 요청하여 대기하고 있음을 잠금 트리(Lock Tree)를 통해 확인할 수 있다. 블로킹 세션에 대하여 세션 상세정보를 확인하여 죽이거나 트레이스를 걸 수 있으며 현재 수행 중인 SQL 플랜 툴로 전송하여 튜닝을 진행할 수 있다.10 is a graphical user interface for checking the locking and blocking status of a session using a lock / latch monitor. Through the lock tree, a session with SID 11 is currently waiting for a request for an update on the same row with session SID 9 without committing after updating a row in the SCOTT.EMP table. You can check it. You can check and kill or trace the session details for the blocking session, and send it to the currently executing SQL plan tool for tuning.

SQL 모니터를 통해 탑 SQL(Top SQL)을 추출하는 사례가 도 11에 제시되어 있다. 상기 도 11에 도시된 사용자 인터페이스는 자원 소모량이 많은 SQL을 추출하는 예이다. 액세스 블록수가 많은 SQL이 1차 점검 대상이며 단위 수행당 액세스 블록수의 조건과 조합하여 해당 테스트 시스템으로부터 약 50건의 SQL이 추출되도록 기준을 설정한 것이며 시스템에 미치는 영향이 큰 SQL부터 정렬하여 순차적으로 튜닝을 진행한다.An example of extracting Top SQL through the SQL monitor is shown in FIG. 11. The user interface illustrated in FIG. 11 is an example of extracting a high resource consumption SQL. SQL with a large number of access blocks is the first check target, and the criteria are set to extract about 50 SQLs from the test system in combination with the condition of the number of access blocks per unit execution. Proceed with tuning.

마찬가지로 단위 수행당 액세스 블록수가 많으면서 일회성으로 수행되지 않는 SQL 및 전체 스캔을 많이 수행하는 SQL, 리터럴 SQL은 공유되지 않으므로 SQL 텍스트에 대한 정렬기능을 이용하여 실행횟수가 작은 SQL을 추출하면 된다.Similarly, SQL that does not have a one-time execution, large number of full scans, and literal SQL that are not shared once with many access blocks per unit execution is not shared.

도 12는 분석 방법을 자동 결정하는 알고리즘을 보여주는 흐름도로서, 세그먼트 기준을 만족하는 지의 여부를 확인하고, 이를 만족하면 분석 범위를 만족하는 지의 여부를 판단하게 된다. 만약 세그먼트 기준이 만족되지 아니할 경우 로우수 기준 및 이에 따른 분석 범위에 따라 분석하게 된다. 상기한 방법에 따른 분석 방법은 기존의 툴들에서처럼 개개의 테이블마다 분석 방법을 지정할 필요 없이 간단히 작업을 할 수 있어서 데이터베이스 관리자의 작업 부하를 줄여준다.12 is a flowchart illustrating an algorithm for automatically determining an analysis method. It is determined whether a segment criterion is satisfied, and when it is satisfied, it is determined whether an analysis range is satisfied. If the segment criterion is not satisfied, the analysis is performed according to the row number criterion and the analysis range accordingly. The analysis method according to the above method can reduce the workload of the database administrator by simplifying the work without having to specify the analysis method for each table as in the existing tools.

상기 도 12에 예시된 방법에 따라 분석 기준을 결정하고 분석을 수행하기 위한 제반 옵션 (분석 범위, 병렬 분석, 히스토그램 생성, 분석 스크립트 생성, 모든 통계 정보 제공)들을 편리하게 제공함으로써, 도 13에 도시된 바와 같이, 코스트에 기초한 옵티마이저 운영 환경에서 테이블, 인덱스, 클러스터와 같은 세그먼트 오브젝트에 대한 통계정보를 메뉴 화면을 통해 손쉽게 관리할 수 있도록 해준다.By conveniently providing the various options (analysis range, parallel analysis, histogram generation, analysis script generation, providing all statistical information) for determining analysis criteria and performing analysis according to the method illustrated in FIG. 12, As described above, in the cost-based optimizer operating environment, statistical information about segment objects such as tables, indexes, and clusters can be easily managed through a menu screen.

한편, 본 발명은 또한 상기 방법을 효과적으로 수행하기 위한 프로그램이 저장된 컴퓨터 판독가능한 기록매체에 관한 것으로서, 상기 프로그램은The present invention also relates to a computer readable recording medium having stored thereon a program for effectively performing the method.

a) 오라클 기반의 데이터베이스 시스템의 사용환경을 확인한 후, 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목별로 정형적 분석을 수행할지 여부를 선택할 수 있는 선택란 및 항목별 부하여부 표시란을 포함하는 항목 표시창, 정형적 분석을 실행시킬 수 있는 또는 실행된 정형적 분석을 중지시킬 수 있는 실행 및 중지 아이콘, 정형적 분석의 수행상태를 항목별로 표시하는 수행상태 표시창, 항목별 분석의 수행 목적 및 상세 설명을 표시하는 수행목적과 상세설명 표시창, 권고값 및 분석의 결과값을 표시하는 분석결과 표시창, 그리고 튜닝안내에 대한 정보를 제공하는 튜닝안내 표시창을 포함하는 그래픽 사용자 인터페이스를 제공한 후 사용자의 실행명령에 따라 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목들에 대한 정보를 수집하고 이를 저장하는 단계로 구성된 정형적 분석을 수행하여 오라클 기반의 데이터베이스 시스템의 상태를 점검하기 위한 단계, 및a) an item display window including a check box for selecting whether or not to perform a formal analysis for each diagnostic item for checking the state of the database system after checking the usage environment of the Oracle-based database system, Displays the execution and stop icons that can execute the formal analysis or stop the executed formal analysis, the execution status window that displays the execution status of the formal analysis item by item, the purpose of performing the analysis by item, and a detailed description. According to the user's execution command, after providing the graphical user interface including the execution purpose and detailed explanation display window, the analysis result display window displaying the recommended value and the analysis result value, and the tuning guide display window providing information on the tuning guide. Information about diagnostic items for checking the state of the database system Home and perform a formal analysis consists of storing this step to check the status of Oracle-based database systems, and

b) 오라클 인스턴스의 통계정보를 실시간 그래프로 모니터링하는 인스턴스 모니터링, 세션별 상태를 모니터링하는 세션 모니터링, 세션별 SQL을 모니터링하는 SQL 모니터링을 수행하여 부하의 원인을 분석한 후, 애플리케이션 튜닝을 수행하고 오브젝트를 관리하는 단계로 구성된 비정형적 분석을 수행하여 데이터베이스 시스템의 최적화를 유지하기 위한 단계를 포함한다. 상기한 정형적 분석 및 비정형적 분석을 편리하게 지원하기 위한 프로그램이 저장된 컴퓨터 판독가능한 기록매체는 데이터베이스 운영 환경에서 쉽고 빠르게 개발의 효율성과 생산성을 높이고 성능의 최적화를 가능하게 해준다.b) Instance monitoring that monitors statistics of Oracle instance in real time graph, session monitoring that monitors session status, SQL monitoring that monitors SQL per session, analyzes the cause of the load, and then performs application tuning and objects. A step of maintaining an optimization of the database system by performing an atypical analysis consisting of managing the. A computer readable recording medium storing a program for conveniently supporting the above-mentioned formal analysis and atypical analysis enables to easily and quickly increase the efficiency and productivity of development and optimize the performance in a database operating environment.

이상에서 살펴본 바와 같이 본 발명에 따른 효율적 데이터베이스 시스템 모니터링 방법에 의하면, 정형적 분석에 의해 데이터베이스에 대한 비전문가라 할지라도 현장에서 테스트되고 검증된 스크립트 및 튜닝안내에 의해 손쉽게 시스템을안정화하는데 도움을 받을 수 있으며, 주기적인 튜닝안내 생성 및 결과를 보관하여 데이터베이스 시스템의 상태 및 변화 추이를 진단할 수 있다. 그리고, 비정형적 분석에 따른 모니터링 및 튜닝의 절차에 따라 관련 도구들을 수행하는 유기적인 사용자 인터페이스를 통해 문제분석 및 추적을 쉽고 빠르게 할 수 있다. 따라서, 본 발명에 따른 데이터베이스 시스템 모니터링 방법은 효율적으로 데이터베이스 시스템을 모니터링할 수 있는 방법으로써, 데이터베이스 부하의 요소를 도출하여 분석하고 문제를 개선하기 위한 온라인 점검 서비스로서 데이터베이스 운영에 대한 핵심 요소들에 대한 성능을 점검할 수 있다.As described above, according to the efficient database system monitoring method according to the present invention, even a non-expert of the database by formal analysis can be helped to stabilize the system easily by scripts and tuning guides tested and verified in the field. It can generate the periodic tuning guide and save the result to diagnose the status and change of the database system. In addition, problem analysis and tracking can be done quickly and easily through an organic user interface that performs related tools according to the monitoring and tuning procedures of atypical analysis. Therefore, the database system monitoring method according to the present invention is an efficient method for monitoring the database system, and is an online inspection service for deriving and analyzing the factors of the database load and improving the problems. You can check the performance.

Claims (5)

a) 오라클 기반의 데이터베이스 시스템의 사용환경을 확인한 후, 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목별로 정형적 분석을 수행할지 여부를 선택할 수 있는 선택란 및 항목별 부하여부 표시란을 포함하는 항목 표시창, 정형적 분석을 실행시킬 수 있는 또는 실행된 정형적 분석을 중지시킬 수 있는 실행 및 중지 아이콘, 정형적 분석의 수행상태를 항목별로 표시하는 수행상태 표시창, 항목별 분석의 수행 목적 및 상세 설명을 표시하는 수행목적과 상세설명 표시창, 권고값 및 분석의 결과값을 표시하는 분석결과 표시창, 그리고 튜닝안내에 대한 정보를 제공하는 튜닝안내 표시창을 포함하는 그래픽 사용자 인터페이스를 제공한 후 사용자의 실행명령에 따라 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목들에 대한 정보를 수집하고 이를 저장하는 단계로 구성된 정형적 분석을 수행하여 오라클 기반의 데이터베이스 시스템의 상태를 점검하는 단계,a) an item display window including a check box for selecting whether or not to perform a formal analysis for each diagnostic item for checking the state of the database system after checking the usage environment of the Oracle-based database system, Displays the execution and stop icons that can execute the formal analysis or stop the executed formal analysis, the execution status window that displays the execution status of the formal analysis item by item, the purpose of performing the analysis by item, and a detailed description. According to the user's execution command, after providing the graphical user interface including the execution purpose and detailed explanation display window, the analysis result display window displaying the recommended value and the analysis result value, and the tuning guide display window providing information on the tuning guide. Information about diagnostic items for checking the state of the database system Steps to the house and perform a formal analysis consists of storing them to check the status of Oracle-based database system, b) 상기 단계 a)의 결과 시스템의 부하가 감지되면 부하가 발생한 항목에 대하여 데이터베이스 시스템의 파라미터를 변경하는 단계, 및b) if the load of the system is detected as a result of step a), changing the parameters of the database system for the item in which the load occurred; and c) 오라클 인스턴스의 통계정보를 실시간 그래프로 모니터링하는 인스턴스 모니터링, 세션별 상태를 모니터링하는 세션 모니터링, 세션별 SQL을 모니터링하는 SQL 모니터링을 수행하여 부하의 원인을 분석한 후, 애플리케이션 튜닝을 수행하고 오브젝트를 관리하는 단계로 구성된 비정형적 분석을 수행하여 데이터베이스 시스템의 최적화를 유지하는 단계를 포함하는 오라클 기반의 데이터베이스 시스템 모니터링 방법.c) Instance monitoring that monitors statistics of Oracle instance in real time graph, session monitoring that monitors session status, SQL monitoring that monitors SQL per session, analyzes the cause of the load, and then performs application tuning and objects. Oracle-based database system monitoring method comprising the step of maintaining an optimization of the database system by performing atypical analysis consisting of managing the. 제1항에 있어서, 상기 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목이 기본정보, 공유 글로벌 영역(Shared Global Area), 대기 이벤트, 입출력, 스페이스, 액세스 타입, 오라클 멀티스레드서버(Multi-Thread Server), 오라클 병렬서버(oracle parallel server)를 포함하는 8개의 카테고리와 이에 속하는 세부항목을 포함하여 이루어지는 것을 특징으로 하는 오라클 기반의 데이터베이스 시스템 모니터링 방법.The method of claim 1, wherein the diagnostic item for checking the state of the database system comprises basic information, a shared global area, a standby event, an input / output, a space, an access type, an Oracle multi-thread server. Oracle-based database system monitoring method comprising the eight categories, including the Oracle parallel server (or Oracle parallel server) and its sub-items. 제1항에 있어서, 상기 인스턴스 모니터링이 버퍼캐시 적중률(buffer cache hit ratio), 라이브러리/딕셔너리 적중률(library/dictionary hit ration), 상호연관된 세션(connected sessions), 활성 트랜잭션(active transaction), 공유 풀 크기(shared pool size), 초당 I/O 블록(I/O blocks per second), 초당 반복 크기/쓰기(Redo size/writes per second), 초당 분석/실행 횟수(parse/execution count per second), 초당 대기 이벤트 발생(wait event occurrence per second)을 포함하는 9개의 카테고리별로 행해지는 것을 특징으로 하는 오라클 기반의 데이터베이스 시스템 모니터링 방법.The method of claim 1, wherein the instance monitoring comprises: buffer cache hit ratio, library / dictionary hit ratio, correlated sessions, active transaction, shared pool size. (shared pool size), I / O blocks per second, Redo size / writes per second, parse / execution count per second, standbys per second A method for monitoring an Oracle based database system, characterized by nine categories including wait event occurrence per second. 제1항에 있어서, 상기 단계 c)의 부하의 원인 분석시 SQL 문장의 실시간 트레이스 정보를 레벨별로 설정하여 계층별로 표현하는 플랜툴 및 이에 연동하는 트레이스 툴에 의해 행해지는 것을 특징으로 하는 오라클 기반의 데이터베이스 시스템 모니터링 방법.The method of claim 1, wherein the analysis is performed by a plan tool which sets the real-time trace information of the SQL statement for each level and expresses the hierarchical level of the SQL statement, and a trace tool linked thereto. How to monitor your database system. a) 오라클 기반의 데이터베이스 시스템의 사용환경을 확인한 후, 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목별로 정형적 분석을 수행할지 여부를 선택할 수 있는 선택란 및 항목별 부하여부 표시란을 포함하는 항목 표시창, 정형적 분석을 실행시킬 수 있는 또는 실행된 정형적 분석을 중지시킬 수 있는 실행 및 중지 아이콘, 정형적 분석의 수행상태를 항목별로 표시하는 수행상태 표시창, 항목별 분석의 수행 목적 및 상세 설명을 표시하는 수행목적과 상세설명 표시창, 권고값 및 분석의 결과값을 표시하는 분석결과 표시창, 그리고 튜닝안내에 대한 정보를 제공하는 튜닝안내 표시창을 포함하는 그래픽 사용자 인터페이스를 제공한 후 사용자의 실행명령에 따라 데이터베이스 시스템의 상태를 점검하기 위한 진단 항목들에 대한 정보를 수집하고 이를 저장하는 단계로 구성된 정형적 분석을 수행하여 오라클 기반의 데이터베이스 시스템의 상태를 점검하기 위한 단계, 및a) an item display window including a check box for selecting whether or not to perform a formal analysis for each diagnostic item for checking the state of the database system after checking the usage environment of the Oracle-based database system, Displays the execution and stop icons that can execute the formal analysis or stop the executed formal analysis, the execution status window that displays the execution status of the formal analysis item by item, the purpose of performing the analysis by item, and a detailed description. According to the user's execution command, after providing the graphical user interface including the execution purpose and detailed explanation display window, the analysis result display window displaying the recommended value and the analysis result value, and the tuning guide display window providing information on the tuning guide. Information about diagnostic items for checking the state of the database system Home and perform a formal analysis consists of storing this step to check the status of Oracle-based database systems, and b) 오라클 인스턴스의 통계정보를 실시간 그래프로 모니터링하는 인스턴스 모니터링, 세션별 상태를 모니터링하는 세션 모니터링, 세션별 SQL을 모니터링하는 SQL 모니터링을 수행하여 부하의 원인을 분석한 후, 애플리케이션 튜닝을 수행하고 오브젝트를 관리하는 단계로 구성된 비정형적 분석을 수행하여 데이터베이스 시스템의 최적화를 유지하기 위한 단계를 포함하는, 제1항에 따른 오라클 기반의 데이터베이스 시스템 모니터링 방법을 구현한 프로그램이 저장된 컴퓨터 판독가능한 기록 매체.b) Instance monitoring that monitors statistics of Oracle instance in real time graph, session monitoring that monitors session status, SQL monitoring that monitors SQL per session, analyzes the cause of the load, and then performs application tuning and objects. A computer-readable recording medium storing a program implementing the Oracle-based database system monitoring method according to claim 1, comprising the step of maintaining an optimization of the database system by performing an atypical analysis comprising managing the data.
KR1020030018006A 2003-03-22 2003-03-22 Method for monitoring database system Ceased KR20040027270A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030018006A KR20040027270A (en) 2003-03-22 2003-03-22 Method for monitoring database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030018006A KR20040027270A (en) 2003-03-22 2003-03-22 Method for monitoring database system

Publications (1)

Publication Number Publication Date
KR20040027270A true KR20040027270A (en) 2004-04-01

Family

ID=37329839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030018006A Ceased KR20040027270A (en) 2003-03-22 2003-03-22 Method for monitoring database system

Country Status (1)

Country Link
KR (1) KR20040027270A (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007032913A1 (en) * 2005-09-09 2007-03-22 Microsoft Corporation Automated placement of fields in a data summary table
KR100730002B1 (en) * 2006-05-29 2007-06-20 (주)쓰리소프트 Intelligent information collection method and recording medium including the method
KR100758850B1 (en) * 2006-08-09 2007-09-14 삼성전자주식회사 Apparatus and method for testing using test script in mobile communication system
KR100830820B1 (en) * 2006-11-20 2008-05-20 주식회사 케이티프리텔 Database monitoring method and device
KR100852323B1 (en) * 2006-11-30 2008-08-14 주식회사 케이티프리텔 Apparatus and method for monitoring data base
KR100877156B1 (en) * 2008-04-17 2009-01-07 (주)아이티엑스퍼트그룹 Dictionary performance analysis system and method for atypical query language
US8095866B2 (en) 2005-09-09 2012-01-10 Microsoft Corporation Filtering user interface for a data summary table
US8286072B2 (en) 2005-10-27 2012-10-09 Microsoft Corporation Variable formatting of cells
CN103324656A (en) * 2012-03-22 2013-09-25 乐金信世股份有限公司 Database management method and database management server thereof
US8601383B2 (en) 2005-09-09 2013-12-03 Microsoft Corporation User interface for creating a spreadsheet data summary table
US8914717B2 (en) 2006-02-27 2014-12-16 Microsoft Corporation Dynamic thresholds for conditional formats
KR101845208B1 (en) * 2017-12-28 2018-04-03 최영철 Performance Improving Method Based Web for Database and Application
KR20180062469A (en) 2016-11-23 2018-06-11 이용우 Optimization diagnostic system of business and IT system
KR20190076826A (en) * 2017-12-22 2019-07-02 주식회사 웨어밸리 Automation of sql tuning method and system using statistic sql pattern analysis
CN113641655A (en) * 2021-08-17 2021-11-12 南京云信达科技有限公司 Database performance optimization algorithm and device
CN114253985A (en) * 2021-12-13 2022-03-29 北京人大金仓信息技术股份有限公司 Database statistical information update method, device, device and medium
CN115757055A (en) * 2022-10-19 2023-03-07 北京新数科技有限公司 Spring Cloud-based database unified operation and maintenance and comprehensive performance scoring system
EP4155944A1 (en) * 2021-09-13 2023-03-29 Sap Se Database troubleshooting with automated functionality
KR102626940B1 (en) * 2023-08-24 2024-01-18 나무기술 주식회사 Virtual OS-based database transaction monitoring method

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579723B2 (en) 2005-09-09 2020-03-03 Microsoft Technology Licensing, Llc User interface for creating a spreadsheet data summary table
US8095866B2 (en) 2005-09-09 2012-01-10 Microsoft Corporation Filtering user interface for a data summary table
US9529789B2 (en) 2005-09-09 2016-12-27 Microsoft Technology Licensing, Llc User interface for creating a spreadsheet data summary table
US9959267B2 (en) 2005-09-09 2018-05-01 Microsoft Technology Licensing, Llc Filtering user interface for a data summary table
WO2007032913A1 (en) * 2005-09-09 2007-03-22 Microsoft Corporation Automated placement of fields in a data summary table
US8601383B2 (en) 2005-09-09 2013-12-03 Microsoft Corporation User interface for creating a spreadsheet data summary table
US7480675B2 (en) 2005-09-09 2009-01-20 Microsoft Corporation Automated placement of fields in a data summary table
US11295058B2 (en) 2005-10-27 2022-04-05 Microsoft Technology Licensing, Llc Variable formatting of values
US8286072B2 (en) 2005-10-27 2012-10-09 Microsoft Corporation Variable formatting of cells
US9424235B2 (en) 2005-10-27 2016-08-23 Microsoft Technology Licensing, Llc Variable formatting of values
US8914717B2 (en) 2006-02-27 2014-12-16 Microsoft Corporation Dynamic thresholds for conditional formats
KR100730002B1 (en) * 2006-05-29 2007-06-20 (주)쓰리소프트 Intelligent information collection method and recording medium including the method
KR100758850B1 (en) * 2006-08-09 2007-09-14 삼성전자주식회사 Apparatus and method for testing using test script in mobile communication system
KR100830820B1 (en) * 2006-11-20 2008-05-20 주식회사 케이티프리텔 Database monitoring method and device
KR100852323B1 (en) * 2006-11-30 2008-08-14 주식회사 케이티프리텔 Apparatus and method for monitoring data base
KR100877156B1 (en) * 2008-04-17 2009-01-07 (주)아이티엑스퍼트그룹 Dictionary performance analysis system and method for atypical query language
KR101331452B1 (en) * 2012-03-22 2013-11-21 주식회사 엘지씨엔에스 Method for providing database management and the database management server there of
US20130304695A1 (en) * 2012-03-22 2013-11-14 Lg Cns Co., Ltd. Method for providing database management and the database management server thereof
CN103324656B (en) * 2012-03-22 2018-09-25 乐金信世股份有限公司 Data base management method and its Database Administration Server
CN103324656A (en) * 2012-03-22 2013-09-25 乐金信世股份有限公司 Database management method and database management server thereof
KR20180062469A (en) 2016-11-23 2018-06-11 이용우 Optimization diagnostic system of business and IT system
KR20190076826A (en) * 2017-12-22 2019-07-02 주식회사 웨어밸리 Automation of sql tuning method and system using statistic sql pattern analysis
KR101845208B1 (en) * 2017-12-28 2018-04-03 최영철 Performance Improving Method Based Web for Database and Application
CN113641655A (en) * 2021-08-17 2021-11-12 南京云信达科技有限公司 Database performance optimization algorithm and device
EP4155944A1 (en) * 2021-09-13 2023-03-29 Sap Se Database troubleshooting with automated functionality
US11907111B2 (en) 2021-09-13 2024-02-20 Sap Se Database troubleshooting with automated functionality
CN114253985A (en) * 2021-12-13 2022-03-29 北京人大金仓信息技术股份有限公司 Database statistical information update method, device, device and medium
CN115757055A (en) * 2022-10-19 2023-03-07 北京新数科技有限公司 Spring Cloud-based database unified operation and maintenance and comprehensive performance scoring system
CN115757055B (en) * 2022-10-19 2023-10-27 北京新数科技有限公司 Database unified operation and maintenance and comprehensive performance scoring system based on Spring Cloud
KR102626940B1 (en) * 2023-08-24 2024-01-18 나무기술 주식회사 Virtual OS-based database transaction monitoring method

Similar Documents

Publication Publication Date Title
Dias et al. Automatic Performance Diagnosis and Tuning in Oracle.
US8082273B2 (en) Dynamic control and regulation of critical database resources using a virtual memory table interface
KR20040027270A (en) Method for monitoring database system
US8156421B2 (en) Analysis of database performance reports for graphical presentation of summary results
US6996556B2 (en) Metadata manager for database query optimizer
US6223171B1 (en) What-if index analysis utility for database systems
US7130838B2 (en) Query optimization via a partitioned environment
US7853585B2 (en) Monitoring performance of a data processing system
US9020929B2 (en) Method and system for tracking performance by breaking down a query
US8005860B1 (en) Object-level database performance management
EP2255276A2 (en) Method and apparatus for enhancing performance of database and environment thereof
WO2007068667A1 (en) Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query
US8782641B2 (en) Tuning of work to meet performance goal
Alapati Expert Oracle Database 11 g Administration
Dageville et al. Oracle's Self-Tuning Architecture and Solutions.
CN113886205A (en) Database performance bottleneck positioning analysis method, device and system and storage medium
US20240256426A1 (en) Runtime error attribution for database queries specified using a declarative database query language
KR100344640B1 (en) Apparatus for monitoring performance of database and method thereof
Burleson Oracle tuning: The definitive reference
Fritchey SQL Server 2017 Query Performance Tuning: Troubleshoot and Optimize Query Performance
Yoon et al. DBSeer: Pain-free database administration through workload intelligence
Fritchey et al. SQL server 2012 query performance tuning
Litchfield et al. Distributed Relational Database Performance In Cloud Computing: An Investigative Study.
Wiese et al. Knowledge management in autonomic database performance tuning
KR20040039648A (en) Database tuning menagement method

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20030322

PA0201 Request for examination
G15R Request for early publication
PG1501 Laying open of application

Comment text: Request for Early Opening

Patent event code: PG15011R01I

Patent event date: 20040219

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20041217

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20050523

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20041217

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I