KR20010106166A - 데이터베이스 성능 모니터링 장치 및 그 방법 - Google Patents

데이터베이스 성능 모니터링 장치 및 그 방법 Download PDF

Info

Publication number
KR20010106166A
KR20010106166A KR1020010015453A KR20010015453A KR20010106166A KR 20010106166 A KR20010106166 A KR 20010106166A KR 1020010015453 A KR1020010015453 A KR 1020010015453A KR 20010015453 A KR20010015453 A KR 20010015453A KR 20010106166 A KR20010106166 A KR 20010106166A
Authority
KR
South Korea
Prior art keywords
database
performance data
level
data
program
Prior art date
Application number
KR1020010015453A
Other languages
English (en)
Other versions
KR100344640B1 (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 KR1020010015453A priority Critical patent/KR100344640B1/ko
Publication of KR20010106166A publication Critical patent/KR20010106166A/ko
Priority to PCT/KR2002/000491 priority patent/WO2002077879A1/en
Application granted granted Critical
Publication of KR100344640B1 publication Critical patent/KR100344640B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 정보처리시스템 내에 구비된 데이터베이스의 성능을 모니터링하기 위한 장치 및 그 방법에 관한 것으로서, 본 발명에 의한 데이터베이스 성능 모니터링 장치는 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 상위레벨모니터링부; 상위레벨 모니터링부에 의해 디스플레이된 데이터베이스 성능 데이터들 중 선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들을 액세스하여 각각의 단위 시간당 변화치를 계산하고, 계산된 프로그램별 단위 시간당 변화치를 크기의 역순으로 정렬시켜 디스플레이하는 선택데이터모니터링부; 및 선택데이터모니터링부에 의해 디스플레이된 프로그램들 중 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 디스플레이하는 하위레벨모니터링부를 포함한다.
본 발명에 의하면, 데이터베이스의 성능 저하 원인에 대하여 신속하고 용이하게 문제 분석을 할 수 있게 된다.

Description

데이터베이스 성능 모니터링 장치 및 그 방법{Apparatus for monitoring performance of database and method thereof}
본 발명은 데이터베이스를 포함하는 정보처리시스템에 관한 것으로서, 특히 정보처리시스템 내에 구비된 데이터베이스의 성능을 모니터링하기 위한 장치 및 그 방법에 관한 것이다.
데이터베이스는 그 내용을 쉽게 접근하여 처리하고 갱신할 수 있도록 구성된 데이터의 집합체이다. 또한, 데이터베이스 관리 시스템(DataBase Management System:DBMS)은 다수의 컴퓨터 사용자들이 데이터베이스 내에 데이터를 기록하거나 접근할 수 있도록 해주는 프로그램이다. DBMS는 사용자 요구사항들이나 다른 프로그램의 요구사항들을 관리함으로써, 사용자들이나 다른 프로그램들이 실제로 특정 데이터가 저장매체의 어느 곳에 저장되어 있는지를 알지 못하더라도 그 데이터를 이용할 수 있도록 해준다. 사용자 요구사항들을 처리함에 있어, DBMS는 데이터의 무결성과 보안성을 보장한다. 관계형 데이터베이스 관리시스템(RDBMS)는 가장 일반적인 형태의 DBMS인데, RDBMS의 표준화된 사용자 및 프로그램 인터페이스를 SQL (Structured Query Language)이라고 부른다. 이하의 설명에서, 데이터베이스는 상기한 바와 같이 좁은 의미에서의 데이터의 집합체만이 아니라, DBMS를 포함하는 넓은 의미로도 사용된다.
한편, 정보처리시스템에서 그 구성요소인 데이터베이스를 효과적으로 구축하고, 운영하는 기술력은 그 정보처리시스템의 성패를 좌우하는 중요한 문제이다. 이에 따라, 정보처리시스템의 구성하는 데이터베이스의 성능을 튜닝할 수 있는 소프트웨어 도구를 개발하려는 노력이 지속되고 있다. 그러나, 다양한 데이터베이스의 환경적 요인은 물론, 데이터베이스에 존재하는 데이터의 물리적, 논리적 상황에따라 문제 해결을 위한 튜닝 기술은 달라질 수 있다. 따라서, 모니터링을 통해 분석된 데이터베이스 전체 레벨, 프로그램 레벨 및 SQL 레벨로 포착되는 성능 저하 문제를 종합적으로 해결할 수 있는 데이터베이스 성능 튜닝 도구는 아직 제시되지 못하고 있다.
이러한 현실에 따라, 수많은 경험과 지식으로 무장된 전문 컨설턴트인 데이터베이스 튜너가 효과적으로 튜닝 해법을 제공하도록 지원할 수 있는 데이터베이스 성능 모니터링 기술에 초점이 맞추어지고 있다. 이와 같은 방식에 의하면, 데이터베이스에 대한 튜닝은 사람이 수행하지만, 튜닝을 위한 기반 정보를 효과적으로 모니터링할 수 있는 소프트웨어 도구가 요구된다.
일반적으로, 응용 소프트웨어들이 데이터베이스를 액세스하게 되면, DBMS는 데이터베이스의 성능에 관련된 수많은 데이터를 동적으로 생성하여 메모리의 특정 영역에 저장한다. 특히, 오라클의 DBMS에 의해 생성되는 데이터베이스의 성능 데이터(성능 통계(Performance Statistics) 데이터 및 대기 사건(Waiting Event) 데이터)는 데이터베이스 전체 레벨, 프로그램(또는 세션) 레벨 및 SQL 레벨로 분류되어 메모리 공간에서 할당된 데이터 딕션너리(Data Dictionary)에 각각 일정 시간동안 저장된다.
그런데, 종래의 데이터베이스 성능 모니터링 도구는 계층적으로 양산되는 데이터베이스 성능 데이터들 간의 상호 연관성에 주목하지 못하고, 단지 각 레벨별로의 데이터를 단편적으로 모니터링한다. 따라서, 종래의 데이터베이스 성능 모니터링 도구에 의하면, 넓은 범위(데이터베이스 전체 레벨)에서 우선적으로 포착되는성능 통계 데이터와 대기 사건 데이터를 종합적으로 파악하여 데이터베이스의 성능을 점검하지도 못하고, 데이터베이스 성능 저하의 문제 영역을 넓은 범위에서 좁은 범위로 좁혀가는 기능을 제공하지도 못한다.
또한, 종래의 데이터베이스 성능 모니터링 도구는 DBMS가 생성하는 데이터베이스 성능 데이터에 대한 적절한 가공없이 선택된 일부의 데이터를 단순히 제공하는데 그치고 있다. 그런데, DBMS가 생성하는 데이터베이스 성능 데이터는 대부분 특정 시점 이후에 누적값이므로, 튜너의 관심사항인 현재를 포함한 가장 가까운 과거 시점의 데이터베이스 성능을 파악하기는 어렵다는 문제점이 있다.
또한, 종래의 데이터베이스 성능 모니터링 도구는 다수의 데이터베이스들을 동시에 모니터링할 수 있는 수단을 제공하지 못하고 있다. 따라서, 하나의 데이터베이스를 모니터링할 경우, 다른 데이터베이스들에 대한 모니터링 프로세스들은 모두 백 그라운드로 숨어버려 다수의 데이터베이스들을 구비한 정보처리시스템에 대한 전체적인 튜닝을 위한 정보를 제공하기 어렵다.
본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로서, 계층적으로 양산되는 데이터베이스 성능 데이터들 간의 상호 연관성에 주목하여 데이터베이스 전체 레벨에서 파악되는 데이터베이스 성능 저하의 문제에 관련된 프로그램 레벨의 데이터베이스 성능 데이터들을 용이하게 모니터링할 수 있는 데이터베이스 성능 모니터링 장치 및 그 방법을 제공함을 그 목적으로 한다.
또한, 본 발명은 튜너의 관심사항인 현재를 포함한 가장 가까운 과거 시점의데이터베이스 성능을 용이하게 모니터링할 수 있는 데이터베이스 성능 모니터링 장치 및 그 방법을 제공함을 그 목적으로 한다.
또한, 본 발명은 다수의 데이터베이스들을 구비한 정보처리시스템에 대한 전체적인 튜닝을 위한 정보를 제공할 수 있는 데이터베이스 성능 모니터링 장치 및 그 방법을 제공함을 그 목적으로 한다.
도 1은 오라클 데이터베이스와 본 발명에 의한 성능 모니터링 프로세스의 접속관계를 설명하기 위한 도면이다.
도 2는 본 발명에 의한 데이터베이스 성능 모니터링 장치가 구현되는 정보처리시스템의 하드웨어 구성도이다.
도 3은 본 발명에 의한 데이터베이스 성능 모니터링 장치의 제1 실시예를 기능적으로 설명하기 위한 구성도이다.
도 4는 상위레벨모니터링부에 의해 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 델타값들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 5는 상위레벨그래픽모니터링부에 의해 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 델타값들에 의한 시간추이그래프들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 6는 도 4에서 선택된 데이터베이스 성능 데이터에 대한 각 프로그램별 델타값들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 7은 도 5에서 선택된 데이터베이스 성능 데이터에 대한 각 프로그램별 델타값들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 8은 하위레벨누적모드모니터링부에 의해 프로그램 레벨의 데이터베이스 성능 데이터들의 누적값들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 9는 하위레벨델타모드모니터링부에 의해 프로그램 레벨의 데이터베이스 성능 데이터들의 델타값들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 10은 SQL 레벨의 데이터베이스 성능 데이터들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 11은 본 발명에 의한 데이터베이스 성능 모니터링 방법을 설명하기 위한 흐름도이다.
도 12는 본 발명에 의한 데이터베이스 성능 모니터링 장치의 제2 실시예를 기능적으로 설명하기 위한 구성도이다.
도 13은 다수의 데이터베이스들에 대하여, 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 델타값들에 의한 성능데이터/데이터베이스별 시간추이그래프들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
도 14는 도 13에서 대기 사건 데이터 그래픽 디스플레이 영역에서 사용자가 원하는 데이터베이스를 선택한 경우의 화면을 예시적으로 도시한 것이다.
도 15는 도 13에서 선택된 데이터베이스 및 데이터베이스 성능 데이터에 대한 각 프로그램별 델타값들이 디스플레이되는 화면을 예시적으로 도시한 것이다.
상기의 목적들을 달성하기 위하여, 정보처리시스템에 설치된 데이터베이스 관리 시스템에 의해 데이터베이스 전체 레벨, 프로그램 레벨 및 SQL 레벨로 분류되어 생성되는 다수의 데이터베이스 성능 데이터들을 이용하여 데이터베이스를 모니터링하는 본 발명에 의한 데이터베이스 성능 모니터링 장치는 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 상위레벨모니터링부; 상기 상위레벨 모니터링부에 의해 디스플레이된 데이터베이스 성능 데이터들 중 선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들을 액세스하여 각각의 단위 시간당 변화치를 계산하고, 계산된 프로그램별 단위 시간당 변화치를 크기의 역순으로 정렬시켜 디스플레이하는 선택데이터모니터링부; 및 상기 선택데이터모니터링부에 의해 디스플레이된 프로그램들 중 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 디스플레이하는 하위레벨모니터링부를 포함한다.
상기 데이터베이스 성능 모니터링 장치에서, 상기 상위레벨모니터링부는 상기 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 상기 정보처리시스템에 설치된 모든 데이터베이스에 관련된 시간당 변화치를 계산하여 성능데이터/데이터베이스별 시간추이그래프들을 생성하고, 생성된 모든 성능데이터/데이터베이스별 시간추이그래프들을 하나의 화면 내에서 디스플레이하는 전체데이터베이스그래픽모니터링부를 구비함을 특징으로 한다.
상기 데이터베이스 성능 모니터링 장치에서, 상기 하위레벨모니터링부는 상기 프로그램 레벨의 데이터베이스 성능 데이터들을 누적치로서 디스플레이하는 하위레벨누적모드모니터링부; 및 상기 프로그램 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 하위레벨델타모드모니터링부를 구비함을 특징으로 한다.
상기 데이터베이스 성능 모니터링 장치에서, 상기 데이터베이스 성능 데이터에는 상기 정보처리시스템에 구비된 자원의 사용 정도를 나타내는 다수의 성능 통계 데이터 및 상기 자원에 대한 경합에 따른 대기 정도를 나타내는 다수의 대기 사건 데이터를 포함함을 특징으로 한다.
상기의 목적들을 달성하기 위하여, 정보처리시스템에 설치된 데이터베이스 관리 시스템에 의해 데이터베이스 전체 레벨, 프로그램 레벨 및 SQL 레벨로 분류되어 생성되는 다수의 데이터베이스 성능 데이터들을 이용하여 데이터베이스를 모니터링하는 본 발명에 의한 방법은 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 상위레벨모니터링 단계; 사용자로부터 상기 상위레벨모니터링 단계에서 디스플레이된 데이터베이스성능 데이터들 중 하나를 선택받는 성능데이터선택 단계; 선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들을 액세스하여 각각의 단위 시간당 변화치를 계산하고, 계산된 프로그램별 단위 시간당 변화치를 크기의 역순으로 정렬시켜 디스플레이하는 선택데이터모니터링 단계; 사용자로부터 상기 선택데이터모니터링 단계에서 디스플레이된 프로그램들 중 하나를 선택받는 프로그램선택 단계; 및 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 디스플레이하는 하위레벨모니터링 단계를 포함한다.
상기 데이터베이스 성능 모니터링 방법에서, 상기 상위레벨모니터링 단계는 상기 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 상기 정보처리시스템에 설치된 모든 데이터베이스에 관련된 시간당 변화치를 계산하여 성능데이터/데이터베이스별 시간추이그래프들을 생성하고, 생성된 모든 성능데이터/데이터베이스별 시간추이그래프들을 하나의 화면 내에서 디스플레이하는 단계임을 특징으로 한다.
상기 데이터베이스 성능 모니터링 방법에서, 상기 하위레벨모니터링 단계는 상기 프로그램 레벨의 데이터베이스 성능 데이터들을 누적치로서 디스플레이하는 하위레벨누적모드모니터링 단계; 및 상기 프로그램 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 하위레벨델타모드모니터링 단계를 구비하여, 사용자의 조작에 의해 상기 하위레벨누적모드모니터링 단계 및 하위레벨델타모드모니터링 단계 사이에 상호 전환되는 것을 특징으로 한다.
상기 데이터베이스 성능 모니터링 방법에서, 상기 데이터베이스 성능 데이터에는 상기 정보처리시스템에 구비된 자원의 사용 정도를 나타내는 다수의 성능 통계 데이터 및 상기 자원에 대한 경합에 따른 대기 정도를 나타내는 다수의 대기 사건 데이터를 포함함을 특징으로 한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다.
설명의 편의를 위하여, 이하에서 사용되는 데이터베이스는 오라클사의 데이터베이스인 것으로 가정한다. 그러나, 본 발명의 범위는 오라클 데이터베이스의 성능을 모니터링하는 것에 한정되는 것은 아니므로, 본 발명이 속하는 기술분야에서 평균적 지식을 가진 자는 데이터베이스 성능 데이터가 계층적 구조로 관리되는 어떠한 형태의 DBMS에도 기본적인 발명 사상은 변경되지 않은 채 본 발명이 적용될 수 있다는 것을 용이하게 이해할 수 있을 것이다.
도 1을 참조하면, 오라클 데이터베이스는 크게 프로세스, 메모리 공간 및 데이터 파일의 세가지로 구성된다.
여기서, 프로세스는 정보처리시스템에서 실행되는 프로그램으로서, 사용자 프로세스(14), 서버 프로세스(12) 및 오라클 백그라운드 프로세스들이 존재한다. 사용자 프로세스(14)는 사용자가 오라클 응용프로그램을 실행시켰을 때 사용되는 프로세스로서, 사용자가 실행시킨 SQL문을 서버 프로세스(12)에 전달하고, 그 결과를 서버 프로세스(12)로부터 받는 역할을 수행한다. 서버 프로세스(12)는 사용자 프로세스(14)로부터 전달받은 SQL문을 파스(Parse), 실행(Execute) 그리고 패치(Fetch) 작업을 통해 처리하여 그 결과를 사용자 프로세스(14)에 전달한다. 오라클 백그라운드 프로세스들은 서버 프로세스(12)를 지원하기 위한 프로세스들로서, 예를 들어 프로세스 모니터(PMON), 시스템 모니터(SMON), 데이터베이스 기록자(DBWR) 및 로그 기록자(LGWR)와 같은 필수 프로세스들과 체크 포인트(CKPT), 아카이버(ARCH), 복구자(RECO), 잠금(LCKn), 병렬질의(Pnnn), 스냅샷 리프레쉬(SNPn), 공유 서버(Snnn) 및 디스패쳐(Dnnn)와 같은 프로세스들이 포함된다.
오라클 데이터베이스에서 메모리 공간은 시스템 글로벌 영역(System Global Area:SGA)(16)이라 일컬어진다. SGA(16)는 정보처리시스템의 RAM(Random Access Memory) 영역에 위치하고, 오라클 데이터베이스의 모든 사용자들을 위한 공유 메모리 영역들의 집합으로서, 그 집합에는 오라클 데이터베이스 시스템의 데이터와 제어정보가 포함된다. SGA(16)와 백그라운드 프로세스들을 합하여 오라클 인스턴스(20)라고 한다.
오라클 데이터 파일(22)은 사용자가 저장하는 실제 데이터가 저장되는 파일을 의미한다. 한편, 오라클 데이터베이스에는 데이터 파일(22) 이외에 데이터베이스 상태와 물리적 구조를 저장하는 컨트롤 파일, 데이터베이스에서 생긴 모든 변화를 기록하는 리두 로그 파일, 오라클 인스턴스(20)가 시작할 때 참조하는 파라미터 파일 등이 더 포함된다.
오라클 데이터베이스가 가동 중이면, SGA(16)의 데이터 딕션너리(18)에는 데이터베이스 전체 레벨, 프로그램(database session) 레벨 및 SQL 레벨로 분류된 데이터베이스 성능 데이터들이 저장된다.
데이터베이스 전체 레벨의 데이터베이스 성능 데이터는 데이터베이스 모니터링을 위한 출발점으로, 다음과 같은 예시적인 분류가 가능하다.
. I/O 관련정보
성능 통계(Performance Statistics) 데이터 : logical read, physical read, direct read 등.
대기 사건(Waiting Event) 데이터 : db file sequential read, db file scattered read 등.
. 데이터베이스 전체레벨에서의 SQL 수행 성능정보
성능 통계(Performance Statistics) 데이터 : user calls, recursive calls, parse count, execution count 등.
대기 사건(Waiting Event) 데이터 : latch free, library cache pin, library cache lock 등.
. 로크(lock) 관련 정보
성능 통계(Performance Statistics) 데이터 : enqueue waits, enqueue deadlocks
대기 사건(Waiting Event) 데이터 : enqueue
. 정렬(sort) 관련 정보
성능 통계(Performance Statistics) 데이터 : sort(memory,disk,rows)
대기 사건(Waiting Event) 데이터 : db file scattered read, direct path read
. 응답시간(response time) 관련 성능정보
성능 통계(Performance Statistics) 데이터 : recursive cpu usage, CPU used by this session, parse time cpu, parse time elapsed
대기 사건(Waiting Event) 데이터 : 모든 대기 정보
이상과 같이, 데이터베이스 전체 레벨의 데이터베이스 성능 데이터는 성능 통계(Performance Statistics) 데이터와 대기 사건(Waiting Event) 데이터로 분류된다. 성능 통계(Performance Statistics) 데이터는 오라클 데이터베이스가 데이터베이스의 성능을 추적(tracking) 및 측정하기 위해 제공하는 지표로서, 여러가지 자원(입출력장치, 중앙처리장치, 메모리 등)과 관련된 상세 성능정보를 보여준다. 즉, 성능 통계(Performance Statistics) 데이터는 "자원 사용에 대한 직접적 연관지표"로서, 각 항목의 수치 증가 여부로 특정 자원에 대한 과다 사용 여부에 대한 측정이 가능한 것이다. 대기 사건(Waiting Event) 데이터는 "자원 사용에 대한 간접적 연관지표"라 할 수 있다. 어떠한 항목의 자원이든지 한정적인 자원이므로 이에 대한 경합이 필연적으로 발생한다. 대부분의 대기 사건(Waiting Event)의 발생이 반드시 특정 자원이 과다하게 사용되고 있다는 것을 나타내는 것은 아니지만 요구되는 자원에 대한 경합이 발생하고 있다는 사실을 의미하고, 데이터베이스 전체적으로 자원의 과다 사용으로 인한 성능 저하의 문제가 발생할 가능성이 있음을 예고하는 것이다. 따라서, 데이터베이스 성능의 모니터링 중 문제 영역을 특정하기 위해서는 성능 통계(Performance Statistics) 데이터와 대기 사건(Waiting Event) 데이터를 상호 보완적으로 파악할 필요가 있다.
프로그램 레벨의 데이터베이스 성능 데이터는 해당 프로그램의 수행 중에만추적(tracking)할 수 있으며, 해당 프로그램의 수행이 종료되면 SGA(18)에서 사라진다. 프로그램 레벨의 데이터베이스 성능 데이터의 종류는 데이터베이스 전체 레벨의 데이터베이스 성능 데이터의 종류와 거의 유사하다.
SQL 레벨의 데이터베이스 성능 데이터는 가장 하위 레벨의 정보로서, 특정 프로그램 내에서의 특정 SQL의 성능을 파악하기 위해서는 프로그램 레벨의 데이터베이스 성능 데이터를 실시간으로 모니터링하면서 프로그램 내에서 변화하는 SQL과 맵핑시켜 파악해야 하는 어려움이 있다.
본 발명에 의한 데이터베이스 성능 모니터링 장치는 하드웨어적으로 데이터베이스가 설치된 정보처리시스템과 소프트웨어적으로 상기 정보처리시스템 내에서 동작하는 성능 모니터링 프로세스(10)가 결합된 형태로서 기능한다. 성능 모니터링 프로세스(10)는 사용자 프로세스(14)와 유사하게 서버 프로세스(12)의 지원을 받아 SGA(18) 내의 데이터 딕션너리(18)에 저장된 데이터베이스 성능 데이터를 액세스할 수 있다.
도 2를 참조하면, 본 발명에 의한 데이터베이스 성능 모니터링 장치가 구현되는 정보처리시스템(30)는 적어도 하나 이상의 중앙처리장치(CPU)(38)와 메모리 시스템(32)을 구비한 컴퓨터(31), 입력장치(46) 및 출력장치(48)를 포함한다. 이러한 구성요소들은 적어도 하나 이상의 버스 구조(50)에 의해 상호 연결되어 있다.
도시된 중앙처리장치(38)는 산술연산 및 논리연산을 수행하는 산술/논리연산장치(ALU)(40), 데이터와 명령어를 임시적으로 저장하는 레지스터 세트(42) 및 정보처리시스템(30)의 동작을 제어하는 제어장치(44)를 구비한다. 본 발명에서 사용되는 중앙처리장치(38)는 특정한 제조사에 의해 제조된 특정한 구조에 한정되는 것이 아니므로, 상기한 바와 같은 기본적인 구성을 갖춘 모든 형태의 프로세서가 가능하다.
메모리 시스템(32)은 고속의 주메모리(34)와 데이터의 장기 저장을 위해 사용되는 보조메모리(36)를 구비한다. 주메모리(34)는 RAM(Random Access Memory)과 ROM(Read Only Memory) 반도체 칩으로 구성되고, 보조메모리(36)는 플라피 디스크, 하드 디스크, CD-ROM, 플래쉬 메모리 그리고 전기, 자기, 광 또는 다른 기록매체를 사용하여 데이터를 저장하는 장치로 구성된다. 또한, 주메모리(34)는 디스플레이 장치를 통해 영상을 디스플레이하기 위한 비디오 디스플레이 메모리를 구비할 수 있다. 본 발명에 대한 평균적인 지식을 가진 자는 메모리 시스템(32)이 다양한 저장능력을 지닌 다양한 대체가능한 구성요소를 포함할 수 있다는 것을 이해할 수 있을 것이다.
입력장치(46)에는 키보드, 마우스, 물리적 변환기(예를 들어, 마이크) 등이 포함될 수 있고, 출력장치(48)에는 디스플레이, 프린터, 물리적 변환기(예를 들어, 스피커) 등이 포함될 수 있다. 또한, 네트워크 인터페이스 또는 모뎀과 같은 장치들이 입/출력 장치로 사용될 수 있다.
정보처리시스템(30)에는 운영체제와 적어도 하나 이상의 응용 프로그램이 구비된다. 운영체제는 정보처리시스템(30)의 동작과 자원의 할당을 제어하는 일련의 소프트웨어이고, 응용 프로그램은 운영체제를 통해 이용가능한 컴퓨터 자원을 사용하여 사용자에 의해 요구되는 작업을 수행하는 일련의 소프트웨어이다. 이들 모두도시된 메모리 시스템(32)에 저장된다.
이하에서, 본 발명에 대한 평균적인 지식을 가진 자가 실무적으로 사용하는 바와 같이, 상기한 정보처리시스템(30)에서 수행되는 동작과 그 동작을 나타내는 기호적인 표현을 참조하여 본 발명의 일실시예를 설명하기로 한다.
도 3에 의하면, 본 발명에 의한 데이터베이스 성능 모니터링 장치의 제1 실시예(60)는 상위레벨모니터링부(62), 선택데이터모니터링부(66) 및 하위레벨모니터링부(68)를 포함하여 구성된다.
상위레벨모니터링부(62)는 데이터 딕션너리(18)에서 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들을 인출하여 단위 시간당 변화치를 각각 계산하여 디스플레이한다.
이하에서, 상위레벨모니터링부(62)가 데이터베이스 전체 레벨의 성능 통계(Performance Statistics) 데이터들(v$sysstat)을 일정 시간 간격으로 모니터링하여 현재 시점에서의 누적값을 구하고, 현재 시점의 누적값과 이전 시점의 누적값과의 차이값을 초 단위로 계산된 시간간격으로 나누어 디스플레이하는 과정을 예시적으로 설명하는 슈도 코드(Pseudo Code)를 제시한다.
INPUT PARAMETER : SECOND
DECLARE
V_NAME() STRING ARRAY;
V_VALUE_INIT() NUMBER ARRAY;
V_VALUE_CURR() NUMBER ARRAY;
BEGIN /* 초기화를 위해 초기값을 설정한다 */
CURSOR_A AS
SELECT STATISTIC#, NAME, VALUE
FROM V$SYSSTAT;
CURSOR_A FETCH LOOP
V_NAME(CUSRSOR_A.STATISTIC#) := CURSOR_A.NAME;
V_VALUE_INIT(CUSRSOR_A.STATISTIC#) := CURSOR_A.VALUE;
END FETCH LOOP;
LOOP (WHEN PROGRAM CLOSE EVENT, THEN EXIT)
/* 사용자가 정한 시간 간격으로 텔타값을 구하고 초 단위 델타값으로 표현한다. */
SLEEP(:SECOND);
CURSOR_B AS
SELECT STATISTIC#, NAME, VALUE
FROM V$SYSSTAT;
CURSOR_B FETCH LOOP
V_VALUE_CURR(CUSRSOR_B.STATISTIC#) := CURSOR_B.VALUE;
DISPLAY(V_NAME(CURSOR_B.STATISTIC#),
(V_VALUE_CURR(CUSRSOR_B.STATISTIC#)-
V_VALUE_INIT(CUSRSOR_B.STATISTIC#))/:SECOND);
/* 다음 시간간격의 초 단위 델타값을 구하기 위해 초기값을 초기화한다. */
V_VALUE_INIT(CUSRSOR_B.STATISTIC#):=
V_VALUE_CURR(CUSRSOR_B.STATISTIC#);
END FETCH LOOP;
END LOOP
END
이하에서는, 상위레벨모니터링부(62)가 데이터베이스 전체 레벨의 대기 사건(Waiting Event) 데이터들(v$system_event)을 일정 시간 간격으로 모니터링하여 현재 시점에서의 누적값을 구하고, 현재 시점의 누적값과 이전 시점의 누적값과의 차이값을 초 단위로 계산된 시간간격으로 나누어 디스플레이하는 과정을 예시적으로 설명하는 슈도 코드(Pseudo Code)를 제시한다.
INPUT PARAMETER : SECOND
DECLARE
V_NAME() STRING ARRAY;
V_VALUE_INIT() NUMBER ARRAY;
V_VALUE_CURR() NUMBER ARRAY;
BEGIN /* 초기화를 위해 초기값을 설정한다 */
CURSOR_A AS
SELECT B.EVENT#, B.NAME, NVL(A.TIME_WAITED,0) VALUE
FROM V$SYSTEM_EVENT A, V$EVENT_NAME B
WHERE B.NAME=A.EVENT(+);
CURSOR_A FETCH LOOP
V_NAME(CUSRSOR_A.EVENT#) := CURSOR_A.NAME;
V_VALUE_INIT(CUSRSOR_A.EVENT#) := CURSOR_A.VALUE;
END FETCH LOOP;
LOOP (WHEN PROGRAM CLOSE EVENT, THEN EXIT)
/* 사용자가 정한 시간 간격으로 텔타값을 구하고 초 단위 델타값으로 표현한다. */
SLEEP(:SECOND);
CURSOR_B AS
SELECT B.EVENT#, B.NAME, NVL(A.TIME_WAITED,0) VALUE
FROM V$SYSTEM_EVENT A, V$EVENT_NAME B
WHERE B.NAME=A.EVENT(+);
CURSOR_B FETCH LOOP
V_VALUE_CURR(CUSRSOR_B.EVENT#) := CURSOR_B.VALUE;
DISPLAY(V_NAME(CURSOR_B.EVENT#),
(V_VALUE_CURR(CUSRSOR_B.EVENT#)-
V_VALUE_INIT(CUSRSOR_B.EVENT#))/:SECOND);
/* 다음 시간간격의 초 단위 델타값을 구하기 위해 초기값을 초기화한다.*/
V_VALUE_INIT(CUSRSOR_B.EVENT#):=
V_VALUE_CURR(CUSRSOR_B.EVENT#);
END FETCH LOOP;
END LOOP
END
데이터 딕션너리(18)에 기록된 데이터베이스 성능 데이터들은 특정 시점(예를 들어, 데이터베이스 시작 시점) 이후의 누적값들이다. 그러나, 데이터베이스 전체 레벨에 대하여, 데이터베이스 성능 튜닝에 필요한 정보는 현재를 포함한 가까운 과거 시점의 데이터베이스 성능이라 할 수 있다. 따라서, 상위레벨모니터링부(62)는 쏟아지는 성능 데이터들의 누적값들을 델타 모드로 잘라서 디스플레이함으로써 성능의 추이를 용이하게 파악할 수 있도록 한다. 도 4는 상위레벨모니터링부(62)에 의해 디스플레이되는 예시적인 화면을 도시한다.
도 3에 의하면, 상위레벨모니터링부(62)는 상위레벨그래픽모니터링부(64)를 구비한다. 상위레벨그래픽모니터링부(64)는 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 시간당 변화치를 계산하여 성능데이터별 시간추이그래프를 생성한다. 상위레벨그래픽모니터링부(64)에 의해 생성된 모든 성능 데이터별 시간추이그래프들은 도 5에 예시적으로 도시된 바와 같이 하나의 화면 내에서 디스플레이된다.
도 4 또는 도 5가 도시된 상태에서 특정 성능 통계(performance statistic)데이터 또는 특정 대기 사건(waiting event) 데이터가 과다한 값을 가진다고 판단될 때, 사용자는 해당 성능 통계(performance statistic) 데이터 또는 해당 대기 사건(waiting event) 데이터의 디스플레이 위치(도 4에서 디스플레이된 해당 항목의 위치 또는 도 5에서 디스플레이된 해당 그래프의 위치)를 클릭할 수 있다. 그러면, 도 3에 도시된 선택데이터모니터링부(66)가 동작한다. 선택데이터모니터링부(66)는 상위레벨 모니터링부(62)에 의해 디스플레이된 데이터베이스 성능 데이터들 중 사용자에 의해 선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들을 데이터 딕션너리(18)에서 액세스하여 각각의 단위 시간당 변화치를 계산한다. 이와 같이 계산된 프로그램별 단위 시간당 변화치들은 선택데이터모니터링부(66)에 의해 크기의 역순으로 정렬되어 도 6 또는 도 7에 예시적으로 도시된 바와 같이 디스플레이된다.
이하에서, 선택데이터모니터링부(66)가 프로그램(또는 세션) 레벨의 성능 통계(Performance Statistics) 데이터들(v$sesstat)을 일정 시간 간격으로 모니터링하여 현재 시점에서의 누적값을 구하고, 현재 시점의 누적값과 이전 시점의 누적값과의 차이값을 초 단위로 계산된 시간간격으로 나눈 델타값을 구하고, 프로그램별 델타값을 크기의 역순으로 정렬하여 디스플레이하는 과정을 예시적으로 설명하는 슈도 코드(Pseudo Code)를 제시한다.
INPUT PARAMETER : USER_CLICK_STATISTIC#, SECOND
DECLARE
V_NAME STRING;
V_VALUE_INIT() NUMBER ARRAY;
V_VALUE_CURR() NUMBER ARRAY;
BEGIN
/* 사용자가 클릭한 성능 통계 데이터의 이름을 가져온다 */
SELECT NAME INTO V_NAME
FROM V$STATNAME
WHERE STATISTIC# = :USER_CLICK_STATISTIC#;
/* 초기화를 위해 초기값을 설정한다 */
CURSOR_A AS
SELECT SID, VALUE
FROM V$SESSTAT A
WHERE STATISTIC# = :USER_CLICK_STATISTIC#;
CURSOR_A FETCH LOOP
V_VALUE_INIT(CUSRSOR_A.SID) := CURSOR_A.VALUE;
END FETCH LOOP;
LOOP (WHEN USER CLOSE EVENT, THEN EXIT)
/* 사용자가 정한 시간 간격으로 델타값을 구하고 역순 정렬 후, 초 단위의 델타값으로 표현한다. */
SLEEP(:SECOND);
CURSOR_B AS
SELECT SID, VALUE , (VALUE - V_VALUE_INIT(SID)) DELTA_VAL
FROM V$SESSTAT A
WHERE STATISTIC# = :USER_CLICK_STATISTIC#
ORDER BY DELTA_VAL DESCENDING;
CURSOR_B FETCH LOOP
DISPLAY(V_NAME, CURSOR_B.SID, CURSOR_B.DELTA_VAL/:SECOND);
/* 다음 시간간격의 초 단위 델타값을 구하기 위해 초기값을 초기화한다. */
V_VALUE_INIT(CUSRSOR_B.SID):= CURSOR_B.VALUE;
END FETCH LOOP;
END LOOP
END
이하에서는, 선택데이터모니터링부(66)가 프로그램(또는 세션) 레벨의 대기 사건(Waiting Event) 데이터들(v$session_event)을 일정 시간 간격으로 모니터링하여 현재 시점에서의 누적값을 구하고, 현재 시점의 누적값과 이전 시점의 누적값과의 차이값을 초 단위로 계산된 시간간격으로 나눈 델타값을 구하고, 프로그램별 델타값을 크기의 역순으로 정렬하여 디스플레이하는 과정을 예시적으로 설명하는 슈도 코드(Pseudo Code)를 제시한다.
INPUT PARAMETER : USER_CLICK_EVENT#, SECOND
DECLARE
V_NAME STRING;
V_VALUE_INIT() NUMBER ARRAY;
V_VALUE_CURR() NUMBER ARRAY;
BEGIN
/* 사용자가 클릭한 대기 사건 데이터의 이름을 가져온다 */
SELECT NAME INTO V_NAME
FROM V$EVENT_NAME
WHERE EVENT# = :USER_CLICK_EVENT#;
/* 초기화를 위해 초기값을 설정한다 */
CURSOR_A AS
SELECT SID, TIME_WAITED VALUE
FROM V$SESSION_EVENT
WHERE NAME = V_NAME;
CURSOR_A FETCH LOOP
V_VALUE_INIT(CUSRSOR_A.SID) := CURSOR_A.VALUE;
END FETCH LOOP;
LOOP (WHEN USER CLOSE EVENT, THEN EXIT)
/* 사용자가 정한 시간 간격으로 델타값을 구하고 역순 정렬 후, 초 단위의 델타값으로 표현한다. */
SLEEP(:SECOND);
CURSOR_B AS
SELECT SID, TIME_WAITED VALUE, (TIME_WAITED - NVL(V_VALUE_INIT(SID),0)) DELTA_VAL
FROM V$SESSION_EVENT
WHERE NAME = V_NAME
ORDER BY DELTA_VAL DESCENDING;
CURSOR_B FETCH LOOP
DISPLAY(V_NAME, CURSOR_B.SID, CURSOR_B.DELTA_VAL/:SECOND);
/* 다음 시간간격의 초 단위 델타값을 구하기 위해 초기값을 초기화한다. */
V_VALUE_INIT(CUSRSOR_B.SID):= CURSOR_B.VALUE;
END FETCH LOOP;
END LOOP
END
위에서 예시된 슈도 코드에는 데이터베이스 성능 데이터가 델타값에 의해 표현되어 가까운 과거에 관련된 정보가 포함되어 있는데, 프로그램 레벨의 대기 사건(waiting event) 데이터의 경우 과거를 배제한 현재 상태가 중요할 수 있다. 따라서, 선택데이터모니터링부(66)가 프로그램(또는 세션) 레벨의 대기 사건(Waiting Event) 데이터들(v$session_event)에서 사용자가 선택한 대기 사건의 상태에 있는 프로그램(세션)들을 찾아 "대기 시간(seconds_in_wait)"값의 크기의 역순으로 정렬하여 디스플레이해 줄 필요가 있다. 이하에서, 이와 같은 과정을 예시적으로 설명하는 슈도 코드(Pseudo Code)를 제시한다.
INPUT PARAMETER : USER_CLICK_EVENT#, SECOND
DECLARE
V_NAME STRING;
BEGIN
SELECT NAME INTO V_NAME
FROM V$EVENT_NAME
WHERE EVENT# = :USER_CLICK_EVENT#;
LOOP (WHEN USER CLOSE EVENT, THEN EXIT)
/* 현재 정보이므로 그냥 쿼리해서 역순 정렬 후 디스플레이하면 된다. */
CURSOR_A AS
SELECT SID, SECONDS_IN_WAIT VALUE
FROM V$SESSION_WAIT
WHERE NAME = V_NAME AND WAIT_TIME=0
ORDER BY SECONDS_IN_WAIT DESCENDING;
CURSOR_A FETCH LOOP
DISPLAY(V_NAME, CURSOR_A.SID, CURSOR_A.VALUE);
END FETCH LOOP;
SLEEP(:SECOND);
END LOOP
END
도 6의 참조번호 80에 의해 지정된 윈도우 또는 도 7의 참조번호 82에 의해 지정된 윈도우에서, 사용자가 특정 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터를 모니터링하고자 하는 경우에 해당 프로그램이 디스플레이된 위치를 클릭하면 된다. 그러면, 도 3에 도시된 하위레벨모니터링부(68)가 동작한다. 따라서, 하위레벨모니터링부(68)는 선택데이터모니터링부(66)에 의해 디스플레이된 프로그램들 중 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 디스플레이한다.
도 3에 의하면, 하위레벨모니터링부(68)는 하위레벨누적모드모니터링부(70) 및 하위레벨델타모드모니터링부(72)를 구비하는데, 하위레벨누적모드모니터링부(70)는 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 누적치로서 디스플레이하고, 하위레벨델타모드모니터링부(72)는 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이한다.
도 8은 하위레벨누적모드모니터링부(70)에 의해 디스플레이된 예시적인 화면을 도시한 것이고, 도 9는 하위레벨델타모드모니터링부(72)에 의해 디스플레이된 예시적인 화면을 도시한 것이다.
이하에서는, 도 9에 예시적으로 도시된 바와 같이, 하위레벨델타모드모니터링부(72)가 특정 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들이 제공하는 네 가지 정보(도 9의 참조번호 90, 92, 94 및 96)를 디스플레이하는 과정들을 예시적으로 설명하는 슈도 코드(Pseudo Code)를 제시한다.
<프로그램 누적 성능 통계 데이터에 대한 초 단위 델타값의 계산 및 표현>
/* SESSION ID와 USER REFRESH INTERVAL을 입력 파라미터로 넘긴다 */
INPUT PARAMETER : SID, SECOND
DECLARE
V_NAME() STRING ARRAY;
V_VALUE_INIT() NUMBER ARRAY;
V_VALUE_CURR() NUMBER ARRAY;
BEGIN
/* 초기화를 위해 초기값을 설정한다 */
CURSOR_A AS
SELECT B.STATISTIC#, B.NAME, A.VALUE
FROM V$SESSTAT A, V$STATNAME B
WHERE A.STATISTIC#=B.STATISTIC# AND SID=:SID;
CURSOR_A FETCH LOOP
V_NAME(CUSRSOR_A.STATISTIC#) := CURSOR_A.NAME;
V_VALUE_INIT(CUSRSOR_A.STATISTIC#) := CURSOR_A.VALUE;
END FETCH LOOP;
LOOP (WHEN PROGRAM CLOSE EVENT, THEN EXIT)
/* 사용자가 정한 시간 간격으로 텔타값을 구하고 초 단위 델타값으로 표현한다. */
SLEEP(:SECOND);
CURSOR_B AS
SELECT B.STATISTIC#, B.NAME, A.VALUE
FROM V$SESSTAT A, V$STATNAME B
WHERE A.STATISTIC#=B.STATISTIC# AND SID=:SID;
CURSOR_B FETCH LOOP
V_VALUE_CURR(CUSRSOR_B.STATISTIC#) := CURSOR_B.VALUE;
DISPLAY(V_NAME(CURSOR_B.STATISTIC#),
(V_VALUE_CURR(CUSRSOR_B.STATISTIC#)-
V_VALUE_INIT(CUSRSOR_B.STATISTIC#))/:SECOND);
/* 다음 시간간격의 초 단위 델타값을 구하기 위해 초기값을 초기화한다. */
V_VALUE_INIT(CUSRSOR_B.STATISTIC#):=
V_VALUE_CURR(CUSRSOR_B.STATISTIC#);
END FETCH LOOP;
END LOOP
END
<프로그램 누적 대기 사건 데이터에 대한 초 단위 델타값의 계산 및 표현>
/* SESSION ID와 USER REFRESH INTERVAL을 입력 파라미터로 넘긴다 */
INPUT PARAMETER : SID, SECOND
DECLARE
V_NAME() STRING ARRAY;
V_VALUE_INIT() NUMBER ARRAY;
V_VALUE_CURR() NUMBER ARRAY;
BEGIN
/* 초기화를 위해 초기값을 설정한다 */
CURSOR_A AS
SELECT B.EVENT#, B.NAME, NVL(A.TIME_WAITED,0) VALUE
FROM V$SESSION_EVENT A, V$EVENT_NAME B
WHERE B.NAME=A.EVENT(+) AND A.SID(+)=:SID;
CURSOR_A FETCH LOOP
V_NAME(CUSRSOR_A.EVENT#) := CURSOR_A.NAME;
V_VALUE_INIT(CUSRSOR_A.EVENT#) := CURSOR_A.VALUE;
END FETCH LOOP;
LOOP (WHEN PROGRAM CLOSE EVENT, THEN EXIT)
/* 사용자가 정한 시간 간격으로 텔타값을 구하고 초 단위 델타값으로 표현한다. */
SLEEP(:SECOND);
CURSOR_B AS
SELECT B.EVENT#, B.NAME, NVL(A.TIME_WAITED,0) VALUE
FROM V$SESSION_EVENT A, V$EVENT_NAME B
WHERE B.NAME=A.EVENT AND A.SID=:SID;
CURSOR_B FETCH LOOP
V_VALUE_CURR(CUSRSOR_B.EVENT#) := CURSOR_B.VALUE;
DISPLAY(V_NAME(CURSOR_B.EVENT#),
(V_VALUE_CURR(CUSRSOR_B.EVENT#)-
V_VALUE_INIT(CUSRSOR_B.EVENT#))/:SECOND);
/* 다음 시간간격의 초 단위 델타값을 구하기 위해 초기값을 초기화한다. */
V_VALUE_INIT(CUSRSOR_B.EVENT#):= V_VALUE_CURR(CUSRSOR_B.EVENT#);
END FETCH LOOP;
END LOOP
END
<프로그램 현행 대기 사건 데이터의 값을 표현>
SELECT * FROM V$SESSION_WAIT WHERE SID=:SID;
<현재 SQL 표현>
SELECT ST.SQL_TEXT
FROM V$SESSION S,V$SQLTEXT_WITH_NEWLINES ST
WHERE S.SQL_HASH_VALUE =ST.HASH_VALUE
AND S.SQL_ADDRESS = ST.ADDRESS
AND S.SID=:SID
ORDER BY ST.HASH_VALUE,ST.PIECE;
하위레벨모니터링부(68)는 서로 연관된 두개의 데이터베이스의 연결세션을 동시에 보여주는 기능을 갖는다. 즉, 서로 다른 2개의 데이터베이스에서의 서로 관련있는 세션들(예를 들어, 오라클 데이터베이스의 경우 dblink로 연결된 두개의 세션들)에 대하여 하위레벨모니터링부는 각 세션에 대한 프로그램 레벨 데이터베이스 성능 데이터들을 디스플레이하는 윈도우들을 하나의 화면에서 동시에 제공하는 기능을 갖는다. 또한, 하위레벨모니터링부(68)는 소정의 시간 간격으로 디스플레이된 값들을 리플래쉬(reflash)하는데, 사용자의 요구에 따라 리플래쉬되기 전의 데이터를 소정의 로그 파일에 기록하여 두었다가, 사용자의 요구에 따라 상기 로그 파일에 기록된 데이터를 다시 리플레이(replay)하는 기능을 제공하는 것이 바람직하다.
도 10에 예시적으로 도시된 화면은 본 발명에 의한 데이터베이스 성능 모니터링 장치의 제1 실시예(60)가 SQL 레벨의 데이터베이스 성능 데이터를 디스플레이한 것이다. 따라서, 사용자는 프로그램에서 수행한 SQL의 성능 데이터를 누적모드로 인식하고, 수행중인 SQL의 성능 데이터를 관찰하여 현행 및 델타 모드에 의한 관점에서의 모니터링을 할 수 있다.
이하에서, 도 11을 참조하여 본 발명에 의한 데이터베이스 성능 모니터링 방법의 제1 실시예를 상세히 설명한다.
먼저, 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치가 각각 계산되어 디스플레이된다(S1100). 이때, 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 시간당 변화치가 계산되어 성능데이터별 시간추이그래프를 생성되고, 생성된 모든 성능데이터별 시간추이그래프들이 하나의 화면 내에서 디스플레이되는 것도 가능하다.
이후, 사용자로부터 S1100 단계에서 디스플레이된 데이터베이스 성능 데이터들 중 하나를 선택받는다(S1110). 여기서, 사용자는 특정 성능 통계(performance statistic) 데이터 또는 특정 대기 사건(waiting event) 데이터가 소정의 기준보다 과다한 값을 가지면 그 데이터를 문제의 데이터로서 선택할 수 있다.
문제 데이터가 선택되면, 선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들이 액세스되여 각각의 단위 시간당 변화치가 계산되고, 계산된 프로그램별 단위 시간당 변화치가 크기의 역순으로 정렬되어 디스플레이된다(S1120).
이후, 사용자로부터 S1120 단계에서 디스플레이된 프로그램들 중 하나를 선택받는다(S1130). 여기서, 사용자는 문제를 일으키는 프로그램이라 판단되는 프로그램을 선택할 수 있다.
문제 프로그램이 선택되면, 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들이 디스플레이된다(S1140). 이 때, 사용자의 조작에 의해 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 누적치로서 디스플레이하거나, 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 과정을 반복할 수 있다. 다시 말하면, 사용자는 누적 모드와 델타 모드를 상호 전환시키면서 데이터베이스 성능을 파악할 수 있다.
이후, 사용자의 조작에 의해 SQL 레벨의 데이터베이스 성능 데이터가 디스플레이됨으로써, 사용자는 프로그램에서 수행한 SQL의 성능 데이터를 누적 모드로 인식하고, 수행중인 SQL의 성능 데이터를 관찰하여 현행 및 델타모드에 의한 관점에서의 모니터링을 할 수 있다(S1150).
도 12를 참조하면, 본 발명에 의한 데이터베이스 성능 모니터링 장치의 제2 실시예(120)는 도 3에 도시된 제1 실시예(60)와 마찬가지로 상위레벨모니터링부(122), 선택데이터모니터링부(126) 및 하위레벨모니터링부(128)를 포함하여 구성되고, 하위레벨모니터링부(128)는 하위레벨누적모드모니터링부(130) 및 하위레벨델타모드모니터링부(132)를 구비한다. 따라서, 데이터베이스 성능 모니터링 장치의 제2 실시예(120)를 구성하는 구성요소들 중 제1 실시예(60)와 그 기능면에서 동일한 구성요소들에 대한 반복적인 설명은 생략한다.
다만, 도 12에 의하면, 본 발명에 의한 데이터베이스 성능 모니터링 장치의 제2 실시예(120)의 상위레벨모니터링부(122)는 전체데이터베이스그래픽모니터링부(124)를 구비한다. 전체데이터베이스그래픽모니터링부(124)는 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 상기 정보처리시스템에 설치된 모든 데이터베이스에 관련된 시간당 변화치를 계산하여 성능데이터/데이터베이스별 시간추이그래프들을 생성한다. 전체데이터베이스그래픽모니터링부(124)에 의해 생성된 모든 성능데이터/데이터베이스별 시간추이그래프들을 하나의 화면 내에서 디스플레이된다.
도 13에 예시적으로 도시된 화면에 의하면, 6개의 데이터베이스들을 한 화면에서 동시에 모니터링할 수 있는데, 각 데이터베이스에 대한 성능 통계 데이터, 대기 사건 데이터 및 SGA 현황이 디스플레이된다. 성능 통계 데이터 디스플레이 영역(130)에는 미리 선택된 9가지의 데이터들에 대한 각 데이터베이스의 시간추이그래프가 디스플레이되고, 대기 사건 데이터 그래픽 디스플레이 영역(132)에는 대기 사건 데이터에 대한 각 데이터베이스의 시간추이그래프가 디스플레이된다. 대기 사건 데이터 텍스트 디스플레이 영역(134) 및 SGA 현황 디스플레이 영역(136)에는 디폴트(default)로 대기 사건 변화값이 가장 큰 데이터베이스(도 13에서는 "DEV5")에 대한 상세가 디스플레이된다.
만약, 사용자가 다른 데이터베이스에 대한 대기 사건 상세를 보고자 하는 경우, 대기 사건 데이터 그래픽 디스플레이 영역(134)에서 해당 데이터베이스의 그래프를 클릭하면 된다. 도 14는 사용자가 도 13의 대기 사건 데이터 그래픽 디스플레이 영역에서 "PPP" 데이터베이스를 선택한 경우, 그 상세가 변경된 대기 사건 데이터 텍스트 디스플레이 영역(144) 및 SGA 현황 디스플레이 영역(146)을 도시한 것이다.
사용자가 도 13에서 "SDTEST" 데이터베이스의 "KBytes thru DBLINK" 항목의 세션들을 톱-다운 방식으로 추적하기 위하여 해당항목을 클릭하는 경우, 선택데이터모니터링부(126)가 도 15에 예시적으로 도시된 바와 같이 관련 세션들을 디스플레이한다.
본 발명에 의한 데이터베이스 성능 모니터링 방법의 제2 실시예는 도 11에 도시된 제1 실시예에서 S1100 단계만이 다음에 설명되는 바와 같은 전체데이터베이스모니터링 단계로 대체된다.
전체데이터베이스모니터링 단계는 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 정보처리시스템(30)에 설치된 모든 데이터베이스에 관련된 시간당 변화치를 계산하여 성능데이터/데이터베이스별 시간추이그래프들을 생성하고, 생성된 모든 성능데이터/데이터베이스별 시간추이그래프들을 하나의 화면 내에서 디스플레이한다.
본 발명에 의한 데이터베이스 성능 모니터링 방법의 제2 실시예에서 이후의 단계들은 도 11에 도시된 제1 실시예에서의 S1110 단계 이후의 단계들과 동일하게 수행되므로 이하에서 반복적인 설명은 생략한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 의하면, 첫째, 계층적으로 양산되는 데이터베이스 성능 데이터들 간의 상호 연관성에 주목하여, 넓은 범위(데이터베이스 전체 레벨)에서 우선적으로 포착되는 성능 통계 데이터와 대기 사건 데이터를 종합적으로 파악하여 데이터베이스의 성능을 점검하고, 데이터베이스 성능 저하의 문제 영역을 넓은 범위에서 좁은 범위로 좁혀가는 기능이 제공된다.
둘째, DBMS가 생성하는 데이터베이스 성능 데이터를 가공하여 튜너의 관심사항인 현재를 포함한 가장 가까운 과거 시점의 데이터베이스 성능을 파악할 수 있도록 하는 기능이 제공된다.
셋째, 하나의 화면에서 다중 데이터베이스를 효과적으로 모니터링할 수 있는 기능이 제공된다.
따라서, 본 발명에 의하면, 튜너는 상기한 바와 같은 기능들을 이용하여 데이터베이스의 성능 저하 원인에 대하여 신속하고 용이하게 문제 분석을 할 수 있게 된다.

Claims (14)

  1. 정보처리시스템에 설치된 데이터베이스 관리 시스템에 의해 데이터베이스 전체 레벨, 프로그램 레벨 및 SQL 레벨로 분류되어 생성되는 다수의 데이터베이스 성능 데이터들을 이용하여 데이터베이스를 모니터링하는 데이터베이스 성능 모니터링 장치에 있어서,
    데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 상위레벨모니터링부;
    상기 상위레벨 모니터링부에 의해 디스플레이된 데이터베이스 성능 데이터들 중 선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들을 액세스하여 각각의 단위 시간당 변화치를 계산하고, 계산된 프로그램별 단위 시간당 변화치를 크기의 역순으로 정렬시켜 디스플레이하는 선택데이터모니터링부; 및
    상기 선택데이터모니터링부에 의해 디스플레이된 프로그램들 중 선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 디스플레이하는 하위레벨모니터링부를 포함함을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  2. 제1항에 있어서, 상기 상위레벨모니터링부는
    상기 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 시간당 변화치를 계산하여 성능데이터별 시간추이그래프를 생성하고, 생성된 모든 성능데이터별 시간추이그래프들을 하나의 화면 내에서 디스플레이하는 상위레벨그래픽모니터링부를 구비함을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  3. 제1항에 있어서, 상기 상위레벨모니터링부는
    상기 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 상기 정보처리시스템에 설치된 모든 데이터베이스에 관련된 시간당 변화치를 계산하여 성능데이터/데이터베이스별 시간추이그래프들을 생성하고, 생성된 모든 성능데이터/데이터베이스별 시간추이그래프들을 하나의 화면 내에서 디스플레이하는 전체데이터베이스그래픽모니터링부를 구비함을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  4. 제1항에 있어서, 상기 하위레벨모니터링부는
    상기 프로그램 레벨의 데이터베이스 성능 데이터들을 누적치로서 디스플레이하는 하위레벨누적모드모니터링부; 및
    상기 프로그램 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 하위레벨델타모드모니터링부를 구비함을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  5. 제4항에 있어서, 상기 하위레벨모니터링부는
    서로 관련있는 두개의 데이터베이스에서의 각 세션에 대한 프로그램 레벨 데이터베이스 성능 데이터들을 디스플레이하는 윈도우를 하나의 화면에서 동시에 제공하는 것을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  6. 제4항에 있어서, 상기 하위레벨모니터링부는
    사용자의 기록 요구에 따라 리플래쉬되기 전의 데이터를 소정의 로그 파일에 기록하여 두고, 사용자의 재생 요구에 따라 상기 로그 파일에 기록된 데이터를 재생하는 것을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 데이터베이스 성능 데이터에는
    상기 정보처리시스템에 구비된 자원의 사용 정도를 나타내는 다수의 성능 통계 데이터 및 상기 자원에 대한 경합에 따른 대기 정도를 나타내는 다수의 대기 사건 데이터를 포함함을 특징으로 하는 데이터베이스 성능 모니터링 장치.
  8. 정보처리시스템에 설치된 데이터베이스 관리 시스템에 의해 데이터베이스 전체 레벨, 프로그램 레벨 및 SQL 레벨로 분류되어 생성되는 다수의 데이터베이스 성능 데이터들을 이용하여 데이터베이스를 모니터링하는 방법에 있어서,
    데이터베이스 전체 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 상위레벨모니터링 단계;
    사용자로부터 상기 상위레벨모니터링 단계에서 디스플레이된 데이터베이스 성능 데이터들 중 하나를 선택받는 성능데이터선택 단계;
    선택된 데이터베이스 성능 데이터에 대응하는 프로그램별 데이터베이스 성능 데이터들을 액세스하여 각각의 단위 시간당 변화치를 계산하고, 계산된 프로그램별 단위 시간당 변화치를 크기의 역순으로 정렬시켜 디스플레이하는 선택데이터모니터링 단계;
    사용자로부터 상기 선택데이터모니터링 단계에서 디스플레이된 프로그램들 중 하나를 선택받는 프로그램선택 단계; 및
    선택된 프로그램에 대한 프로그램 레벨의 데이터베이스 성능 데이터들을 디스플레이하는 하위레벨모니터링 단계를 포함함을 특징으로 하는 데이터베이스 성능 모니터링 방법.
  9. 제8항에 있어서, 상기 상위레벨모니터링 단계는
    상기 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 시간당 변화치를 계산하여 성능데이터별 시간추이그래프를 생성하고, 생성된 모든 성능데이터별 시간추이그래프들을 하나의 화면 내에서 디스플레이하는 단계임을 특징으로 하는 데이터베이스 성능 모니터링 방법.
  10. 제8항에 있어서, 상기 상위레벨모니터링 단계는
    상기 데이터베이스 전체 레벨의 데이터베이스 성능 데이터들 중 미리 정해진 일정수의 데이터베이스 성능 데이터들에 대하여 각각 상기 정보처리시스템에 설치된 모든 데이터베이스에 관련된 시간당 변화치를 계산하여 성능데이터/데이터베이스별 시간추이그래프들을 생성하고, 생성된 모든 성능데이터/데이터베이스별 시간추이그래프들을 하나의 화면 내에서 디스플레이하는 단계임을 특징으로 하는 데이터베이스 성능 모니터링 방법.
  11. 제8항에 있어서, 상기 하위레벨모니터링 단계는
    상기 프로그램 레벨의 데이터베이스 성능 데이터들을 누적치로서 디스플레이하는 하위레벨누적모드모니터링 단계; 및
    상기 프로그램 레벨의 데이터베이스 성능 데이터들의 단위 시간당 변화치를 각각 계산하여 디스플레이하는 하위레벨델타모드모니터링 단계를 구비하여,
    사용자의 조작에 의해 상기 하위레벨누적모드모니터링 단계 및 하위레벨델타모드모니터링 단계 사이에 상호 전환되는 것을 특징으로 하는 데이터베이스 성능 모니터링 방법.
  12. 제11항에 있어서, 상기 하위레벨모니터링 단계는
    서로 관련있는 두개의 데이터베이스에서의 각 세션에 대한 프로그램 레벨 데이터베이스 성능 데이터들을 디스플레이하는 윈도우를 하나의 화면에서 동시에 제공하는 것을 특징으로 하는 데이터베이스 성능 모니터링 방법.
  13. 제11항에 있어서, 상기 하위레벨모니터링 단계는
    사용자의 기록 요구에 따라 리플래쉬되기 전의 데이터를 소정의 로그 파일에 기록하여 두고, 사용자의 재생 요구에 따라 상기 로그 파일에 기록된 데이터를 재생하는 것을 특징으로 하는 데이터베이스 성능 모니터링 방법.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서, 상기 데이터베이스 성능 데이터에는
    상기 정보처리시스템에 구비된 자원의 사용 정도를 나타내는 다수의 성능 통계 데이터 및 상기 자원에 대한 경합에 따른 대기 정도를 나타내는 다수의 대기 사건 데이터를 포함함을 특징으로 하는 데이터베이스 성능 모니터링 방법.
KR1020010015453A 2001-03-24 2001-03-24 데이터베이스 성능 모니터링 장치 및 그 방법 KR100344640B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020010015453A KR100344640B1 (ko) 2001-03-24 2001-03-24 데이터베이스 성능 모니터링 장치 및 그 방법
PCT/KR2002/000491 WO2002077879A1 (en) 2001-03-24 2002-03-22 Apparatus for monitoring performance of database and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010015453A KR100344640B1 (ko) 2001-03-24 2001-03-24 데이터베이스 성능 모니터링 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20010106166A true KR20010106166A (ko) 2001-11-29
KR100344640B1 KR100344640B1 (ko) 2002-07-25

Family

ID=19707368

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010015453A KR100344640B1 (ko) 2001-03-24 2001-03-24 데이터베이스 성능 모니터링 장치 및 그 방법

Country Status (2)

Country Link
KR (1) KR100344640B1 (ko)
WO (1) WO2002077879A1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100481130B1 (ko) * 2002-11-08 2005-04-07 주식회사 웨어밸리 데이터베이스 시스템에 접속하지 않고 데이터베이스시스템을 모니터링하는 방법
KR100496970B1 (ko) * 2001-12-27 2005-06-27 삼성에스디에스 주식회사 데이터베이스의 성능 관리 방법
WO2005066850A1 (en) * 2004-01-09 2005-07-21 Banet Information Technology Co., Ltd. System for controlling datanbase access based on 3-tier structure and method thereof
KR100852323B1 (ko) * 2006-11-30 2008-08-14 주식회사 케이티프리텔 데이터베이스 모니터링 장치 및 방법
KR100877156B1 (ko) * 2008-04-17 2009-01-07 (주)아이티엑스퍼트그룹 비정형 질의언어에 대한 사전 성능 분석 시스템 및 방법
KR20170075312A (ko) * 2015-12-23 2017-07-03 (주) 우림인포텍 전후방향 동향 통합 시계열 예측 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 판독 가능한 프로그램을 기록한 기록 매체
KR101845208B1 (ko) * 2017-12-28 2018-04-03 최영철 데이터베이스와 애플리케이션을 위한 웹기반 성능개선 방법
KR20210019758A (ko) * 2019-08-13 2021-02-23 주식회사 셀파소프트 Db 성능데이터 초정밀 산출 방법 및 db 성능데이터 초정밀 산출을 위한 db 모니터링 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040169654A1 (en) * 2003-02-27 2004-09-02 Teracruz, Inc. System and method for tree map visualization for database performance data
WO2006097676A2 (en) 2005-03-16 2006-09-21 British Telecommunications Public Limited Company Monitoring computer-controlled processes
EP1708099A1 (en) 2005-03-29 2006-10-04 BRITISH TELECOMMUNICATIONS public limited company Schema matching
CN111026608A (zh) * 2019-11-28 2020-04-17 深圳供电局有限公司 一种Oracle数据库性能诊断方法及其系统、设备、介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701471A (en) * 1995-07-05 1997-12-23 Sun Microsystems, Inc. System and method for testing multiple database management systems
JPH09305461A (ja) * 1996-05-09 1997-11-28 Toshiba Corp トランザクション分析支援システムおよびトランザクション分析支援方法
US6035306A (en) * 1997-11-24 2000-03-07 Terascape Software Inc. Method for improving performance of large databases

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100496970B1 (ko) * 2001-12-27 2005-06-27 삼성에스디에스 주식회사 데이터베이스의 성능 관리 방법
KR100481130B1 (ko) * 2002-11-08 2005-04-07 주식회사 웨어밸리 데이터베이스 시스템에 접속하지 않고 데이터베이스시스템을 모니터링하는 방법
WO2005066850A1 (en) * 2004-01-09 2005-07-21 Banet Information Technology Co., Ltd. System for controlling datanbase access based on 3-tier structure and method thereof
KR100852323B1 (ko) * 2006-11-30 2008-08-14 주식회사 케이티프리텔 데이터베이스 모니터링 장치 및 방법
KR100877156B1 (ko) * 2008-04-17 2009-01-07 (주)아이티엑스퍼트그룹 비정형 질의언어에 대한 사전 성능 분석 시스템 및 방법
KR20170075312A (ko) * 2015-12-23 2017-07-03 (주) 우림인포텍 전후방향 동향 통합 시계열 예측 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 판독 가능한 프로그램을 기록한 기록 매체
KR101845208B1 (ko) * 2017-12-28 2018-04-03 최영철 데이터베이스와 애플리케이션을 위한 웹기반 성능개선 방법
KR20210019758A (ko) * 2019-08-13 2021-02-23 주식회사 셀파소프트 Db 성능데이터 초정밀 산출 방법 및 db 성능데이터 초정밀 산출을 위한 db 모니터링 장치

Also Published As

Publication number Publication date
WO2002077879A1 (en) 2002-10-03
KR100344640B1 (ko) 2002-07-25

Similar Documents

Publication Publication Date Title
US7756840B2 (en) Real-time database performance and availability monitoring method and system
US6938035B2 (en) Reduce database monitor workload by employing predictive query threshold
US6052694A (en) Method and apparatus for logging database performance characteristics
US9020929B2 (en) Method and system for tracking performance by breaking down a query
US7792950B2 (en) Coverage analysis of program code that accesses a database
US7340448B2 (en) Method, apparatus, and computer program product for implementing enhanced query governor functions
US7877378B2 (en) System and method for consolidating execution information relatin to execution of instructions by a database management system
US8788527B1 (en) Object-level database performance management
US7640264B1 (en) System and methods for querying a report database
US7130838B2 (en) Query optimization via a partitioned environment
US20020129035A1 (en) Software performance and management system
KR100344640B1 (ko) 데이터베이스 성능 모니터링 장치 및 그 방법
Roschke et al. A flexible and efficient alert correlation platform for distributed ids
WO2002073468A9 (en) Automatic data explorer that determines relationships among original and derived fields
GB2347532A (en) Monitoring a large parallel database through dynamic grouping and sequential sampling of database nodes
KR20040027270A (ko) 데이터베이스 시스템 모니터링 방법
US20130091181A1 (en) Monitoring stored procedure execution
US8417691B2 (en) Client and database problem determination and monitoring
Almeida et al. Performance analysis and optimization techniques for oracle relational databases
CN113886205A (zh) 数据库性能瓶颈定位分析方法、装置、系统及存储介质
KR20040039648A (ko) 데이터베이스 성능 관리 기법
US7668877B1 (en) System and methods for defining a canonical query expression
Thiem et al. An integrated approach to performance monitoring for autonomous tuning
Li et al. Lauca: Generating Application-Oriented Synthetic Workloads
Davidson et al. Performance Tuning Using SQL Server Dynamic Management Views

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
G15R Request for early opening
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130628

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150624

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160705

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee