KR20190022434A - 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체 - Google Patents

데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체 Download PDF

Info

Publication number
KR20190022434A
KR20190022434A KR1020187017569A KR20187017569A KR20190022434A KR 20190022434 A KR20190022434 A KR 20190022434A KR 1020187017569 A KR1020187017569 A KR 1020187017569A KR 20187017569 A KR20187017569 A KR 20187017569A KR 20190022434 A KR20190022434 A KR 20190022434A
Authority
KR
South Korea
Prior art keywords
sql language
read data
buffer read
sql
amount
Prior art date
Application number
KR1020187017569A
Other languages
English (en)
Other versions
KR102141083B1 (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 핑안 테크놀로지 (션젼) 컴퍼니 리미티드
Publication of KR20190022434A publication Critical patent/KR20190022434A/ko
Application granted granted Critical
Publication of KR102141083B1 publication Critical patent/KR102141083B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • 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/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

본 발명은 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 컴퓨터 판독 가능한 저장매체에 관한 것으로, 상기 데이터베이스 시스템의 최적화 방법은 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 실행 횟수와 버퍼 판독 데이터량을 포함하는 성능 데이터에 대해 스냅샷을 하고 상기 스냅샷을 시간 순서에 따라 배열하여 저장하며, 현재 스냅샷의 성능 데이터와 지난 순위지난 순위 성능 데이터에 대해 차이 계산을 하여 미리 설정된 시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하며, 각 SQL언어의 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량의 수치의 합을 획득하고 수치의 합에 기초하여 최적화할 SQL언어를 선택한다. 본 발명은 최적화하여야 할 SQL언어를 정확히 결정할 수 있어 최적화효율을 향상시킨다.

Description

데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체
본 발명은 데이터베이스 기술 분야에 관한 것으로, 특히 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체에 관한 것이다.
데이터베이스의 조회 SQL (Structured Query Language, 구조화질의어) 언어는 서로 다른 다양한 기록방법을 갖고, SQL언어의 기록방법은 애플리케이션시스템 성능의 우열과 관계가 있다. 애플리케이션시스템의 개발초기에 데이터베이스 내의 데이터가 적어 기록방법이 다른 SQL언어는 대응되는 시스템에 대해 미치는 영향이 작다. 실용적 응용에 있어서, 데이터베이스 내의 데이터가 지속적으로 증가하여 애플리케이션시스템의 응답 속도에 대해 미치는 영향이 크기 때문에 애플리케이션시스템을 최적화하도록 SQL언어를 최적화하여야 한다.
현재, DBA(Database Administrator,데이터 베이스 관리자)는 SQL언어가 대량한 경우, 일반적으로, SQL언어를 인공적으로 선택하여 최적화한다. 선택된 SQL언어가 항상 사용되지 않으면 최적화되어도 애플리케이션시스템의 응답 속도를 향상시킬 수 없어 인위선택의 방식은 최적화하여야 할 SQL언어를 정확히 결정할 수 없어 최적화효율이 낮다.
본 발명의 목적은 최적화하여야 할 SQL언어를 정확히 결정할 수 있어 최적화효율을 향상시키기 위해, 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 컴퓨터 판독 가능한 저장매체를 제공하고자 한다.
상기와 같은 목적을 달성하기 위해 본 발명은 데이터베이스 시스템의 최적화 방법을 개시하고 상기 데이터베이스 시스템의 최적화 방법은 하기와 같은 단계를 포함한다.
S1, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하고 상기 성능 데이터는 실행 횟수와 버퍼 판독 데이터량을 포함한다.
S2,현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
S3,각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택한다.
상기와 같은 목적을 달성하기 위해 본 발명은 데이터베이스 시스템의 최적화 시스템을 개시하고 상기 데이터베이스 시스템의 최적화 시스템은 하기와 같은 모듈을 포함한다.
스냅샷 모듈, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하고 상기 성능 데이터는 실행 횟수와 버퍼 판독 데이터량을 포함한다.
계산 모듈, 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
선택 모듈, 각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택한다.
상기와 같은 목적을 달성하기 위해 본발명은 전자장치를 개시하고, 상기 전자장치는 메모리 및 상기 메모리에 연결된 프로세서를 포함하고, 상기 메모리에는 프로세서에 의해 실행될 수 있는 데이터베이스 시스템의 최적화 시스템이 저장되고, 상기 데이터베이스 시스템의 최적화 시스템은 상기 프로세서에 의해 하기와 같은 단계를 이룬다.
S1, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하고 상기 성능 데이터는 실행 횟수와 버퍼 판독 데이터량을 포함한다.
S2,현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
S3,각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택한다.
상기 목적을 달성하기 위해 본 발명은 컴퓨터 판독 가능한 저장매체를 더 포함하고, 상기 컴퓨터 판독 가능한 저장매체에는 데이터베이스 시스템의 최적화 시스템이 저장되고 상기 데이터베이스 시스템의 최적화 시스템은 프로세서에 의해 하기와 같은 단계를 이룬다.
S1, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하고 상기 성능 데이터는 실행 횟수와 버퍼 판독 데이터량을 포함한다.
S2,현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
S3,각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택한다.
본 발명은 미리 설정된 시간마다 SQL언어의 성능 데이터에 대해 스냅샷을 하여 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터에 대해 차이 계산을 하여 이 미리 설정된 시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하며 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량에 의해 이용 빈도 및 성능이 높은 SQL언어를 획득할 수 있어 이용 빈도 및 성능이 높은 SQL언어에 대해 최적화하여 애플리케이션시스템의 응답 속도를 향상시킬 수 있으며 본 실시예는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량의 수치의 합에 기초하여 최적화할 SQL언어를 선택하여 최적화하여야 할 SQL언어를 정확히 결정할 수 있어 최적화효율을 향상시킨다.
도1은 본 발명에 따른 데이터베이스 시스템의 최적화 방법의 제1실시예의 흐름도이다. 
도2는 본 발명에 따른 데이터베이스 시스템의 최적화 방법의 제2실시예의 흐름도이다.
도3은 도1에 도시된 단계S3의 세부 흐름도이다.
도4는 본 발명의 각 실시예에 따른 선택이 가능한 어플리케이션 환경을 나타낸 도면이다.
도5는 본 발명에 따른 데이터베이스 시스템의 최적화 시스템의 제1실시예의 구조를 나타낸 도면이다.
도6은 본 발명에 따른 데이터베이스 시스템의 최적화 시스템의 제2실시예의 구조를 나타낸 도면이다.
도7은 도5에 도시된 선택 모듈의 구조를 나타낸 도면이다.
이하, 도면을 참조하여 본 발명의 원리 및 특징에 대해 설명하기로 하며, 예시적인 실시예는 본 발명을 설명하기 위한 것일 뿐 본 발명을 한정하기 위한 것이 아니다.
도1에 도시된 바와 같이, 도1은 본 발명에 따른 데이터베이스 시스템의 최적화 방법의 제1실시예의 흐름도이고, 데이터베이스 시스템의 최적화 방법은 전자장치에 적용되고 하기와 같은 단계를 포함한다.
단계S1, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장한다.
본 실시예에 있어서, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷(즉, snapshot)을 하고, 예를 들어 1 시간마다 SQL언어의 성능 데이터에 대해 스냅샷을 하여 데이터베이스의 해당 시간의 정적 뷰를 획득하고 스냅샷은 전체 데이터베이스의 데이터를 획득한다.
그 중, SQL언어의 성능 데이터는 실행 횟수(즉, executions)와 버퍼 판독 (즉, buffer gets) 데이터량을 포함하며, 버퍼 판독 데이터량은 SQL언어가 메모리로부터 판독되는 데이터양이다.
단계S2, 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
본 실시예에 있어서, 현재 스냅샷의 성능 데이터와 지난 순위의 성능 데이터를 각 대응하게 차이 계산을 한다. 즉, 현재 스냅샷의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 지난 순위의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량을 계산하며, 현재 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량과, 지난 순위의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 차이 계산(예를 들어 통계하고 빼기 연산을 한다)을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량을 계산한다. 예를 들어, 현재 스냅샷의 스냅샷 시간이 8:00이고 시간 간격이 1시간이면 지난 순위의 스냅샷은 시간이 7:00인 스냅샷이고 차이 계산을 한 후 시간이 7:00―8:00인 시간대에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 대응되는 단일 실행 버퍼 판독 데이터 평균량을 획득한다.
그 중, 1개의 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량은 이 SQL언어와 대응되는 버퍼 판독 데이터 총량 나누기 이 SQL언어와 대응되는 실행 횟수의 몫과 같다.
단계S3, 각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택한다.
본 실시예에 있어서, 각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고, 즉, 각 SQL언어에 대하여, 버퍼 판독 데이터 총량의 수치와 단일 실행 버퍼 판독 데이터 평균량의 수치 덧셈을 하여 수치의 합을 획득한다.
예를 들어, 2개의 SQL언어의 버퍼 판독 데이터 총량이 같고 모두가 10만이고 첫번째 SQL언어의 실행 횟수가 2만이고 두번째 SQL언어의 실행 횟수가 5만이면, 첫번째 SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 5이고, 두번째 SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 2이면, 총화가 (10만 + 5)인 두번째 SQL언어는 최적화할 SQL언어로 우선적으로 선택되며, 또한, 2개의 SQL언어의 실행 횟수가 같은 경우, 버퍼 판독 데이터 총량이 큰 SQL언어를 최적화할 SQL언어로 선택한다. 또한, 2개의 SQL언어의 버퍼 판독 데이터 총량이 다르고 실행 횟수도 다른 경우, 버퍼 판독 데이터 총량의 수치와 단일 실행 버퍼 판독 데이터 평균량의 수치의 합이 큰 SQL언어를 최적화할 SQL언어로 선택한다.
그 중, 단일 실행 버퍼 판독 데이터 평균량은 1개의 SQL언어가 한 번에 실행한 버퍼 판독 데이터의 평균량을 표현하고, 이 평균량이 클수록 1개의 SQL언어가 한 번에 실행한 버퍼 판독 데이터는 더 많고, 버퍼 판독 데이터 총량이 같은 경우, 1개의 SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 더 많으면 이 SQL언어는 성능 높은 SQL언어이고 최적화할 SQL언어로 우선적으로 된다. 수치의 합에 따라, 본 실시예는 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량에 기초하여 SQL언어의 이용행태에 대해 전체적이고 통합적으로 평가하고, SQL언어의 수치의 합이 클수록 이 SQL언어가 이용된 빈도와 성능은 더 높다.
본 실시예에 있어서, 수치의 합에 기초하여 최적화할 SQL언어를 선택하되 수치의 합을 크기에 따라 배열하며 이 배열 순서에 따라 최적화할 SQL언어를 선택하고, 그 중, 앞에 배열된 SQL언어가 최적화할 SQL언어이다.
기존의 기술과 비교하면, 본 실시예는 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하고, 이번 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터에 대해 차이 계산을 하여 이 미리 설정된 시간 안에 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하며, SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량에 의해 이용 빈도 및 성능이 높은 SQL언어를 획득할 수 있어 이용 빈도 및 성능이 높은 SQL언어에 대해 최적화하여 애플리케이션시스템의 응답 속도를 향상시킬 수 있으며, 본 실시예는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량의 수치의 합에 기초하여 최적화할 SQL언어를 선택하여 최적화하여야 할 SQL언어를 정확히 결정할 수 있어 최적화효율을 향상시킨다.
바람직한 일 실시예에 있어서, 상기 도면1의 실시예에 기초하여 상기 단계S2는 하기와 같이 치환된다.
현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응되여 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량, 모든 SQL언어의 버퍼 판독 데이터 총량의 합, 및 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 계산한다.
각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어의 버퍼 판독 데이터 총량의 합의 비율을 획득한다.
상기 미리 설정된 비율보다 큰 상기 비율과 대응되는 SQL언어를 상기 단계S3를 수행하기 위한 SQL언어로 한다.
본 실시예에 있어서, 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 한다. 즉, 현재 스냅샷의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과 지난 순위 스냅샷의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량을 계산한다.
현재 스냅샷의 모든 SQL언어의 버퍼 판독 데이터 총량의 합과 지난 순위 스냅샷의 모든 SQL언어의 버퍼 판독 데이터 총량의 합에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 모든 SQL언어의 버퍼 판독 데이터 총량의 합을 계산한다.
현재 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량과 지난 순위 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
다음에는 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어와 대응되는 버퍼 판독 데이터 총량의 합의 비율을 획득하며, 이 비율이 작으면 이 SQL언어는 자주 이용된 SQL언어가 아닌 것을 확인하고 미리 설정된 비율보다 작거나 같은 비율과 대응되는 SQL언어를 필터링하며, 예를 들어, 1%보다 작거나 같은 비율을 갖는 SQL언어를 필터링하며 미리 설정된 비율보다 큰 비율과 대응되는 SQL언어를 단계S3을 수행한는 SQL언어로 한다.
바람직한 일 실시예에 있어서, 도2에 도시된 바와 같이, 상기 도면1의 실시예에 기초하여 상기 단계S2를 수행한 후 하기와 같은 단계를 포함한다.
S201,미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석한다.
S202, 존재하면, 미리 설정된 데이터보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 단계S3을 수행한는 SQL언어로 한다.
본 실시예에 있어서, 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량을 계산한 후, 미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석하며, SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 이 SQL언어의 성능 수준를 나타내기 때문에 미리 설정된 데이터량보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하며, 예를 들어, 100보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 단계S3을 수행한는 SQL언어로 한다.
바람직한 일 실시예에 있어서, 도3에 도시된 바와 같이, 상기 도면1의 실시예에 기초하여 상기 단계S3은 하기와 같은 단계를 포함한다.
S31,대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하며 상기 제1차 배열 및 제2차 배열을 기준으로 획득된 SQL언어에 대해 종합배열을 한다.
S32, 상기 종합배열에 기초하여 미리 설정된 계산규칙에 의해 각 SQL언어와 대응되는 목표치를 계산하며 상기 목표치에 따라 최적화할 SQL언어를 선택한다.
본 실시예에 있어서, 대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고, 즉, 버퍼 판독 데이터 총량의 크기 순서대로 배열하며, 예를 들어, SQL언어 A,B,C,D 및 E는 대응되는 버퍼 판독 데이터 총량 크기에 따라 배열하면 B, C, D, A, E를 획득하고 대응되는 순번을 생성할 수 있으며, 예를 들어, SQL언어 B, C, D, A, E와 대응되는 순번은 1, 2, 3, 4및5일 수 있다.
대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하고, 즉, 단일 실행 버퍼 판독 데이터 평균량의 크기 순서대로 배열하며, 예를 들어, SQL언어 A,B,C,D 및 E는 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 배열하면 D, A, E, B, C를 획득하고 대응되는 순번을 생성할 수 있으며, 예를 들어, SQL언어 D, A, E, B, C와 대응되는 순번은 1, 2, 3, 4및5일 수 있다.
종합순번을 획득할 때, 제1차 배열 및 제2차 배열을 기준으로 하며, 예를 들어, 제1차 배열의 순번과 제2차 배열의 순번 덧셈할 수 있어 A(4+2), B(4+1), C(2+5), D(3+1)및 E(5+3)을 획득하며, 즉, 종합배열은 E, C, A, B, D이고, 최종 SQL언어 E, C, A, B, D의 종합순번을 생성하며, 예를 들어, SQL언어 E, C, A, B, D와 대응되는 순번은 1, 2, 3, 4 및 5이다.
몰론, 본 실시예는 제1차 배열과 제2차 배열을 기준으로 하는 다른 종합배열을 이용할 수도 있고 여기서 생략한다.
종합배열된 SQL언어는 SQL언어 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 종합하여 량의 크기에 따라 배열하기 때문에 종합배열된 SQL언어가 그의 이용 빈도 및 성능에 따라 배열된다.
본 실시예에 있어서, 종합배열을 기준으로 하여 미리 설정된 계산 규칙에 따라 각 SQL언어와 대응되는 목표치를 계산하며 목표치에 따라 최적화할 SQL언어를 선택한다.
각 SQL언어의 종합배열과 대응되는 종합순번 나누기 모든 SQL언어의 수량의 몫을 계산할 수 있어 각 SQL언어와 대응되는 목표치를 획득하며, 제1시간보다 큰 미리 설정된 제2 시간 안(예를 들어, 10시간 이내)에 적어도 1개의 SQL언어의 목표치의 존재여부를 분석하고, 존재하면 상기 미리 설정된 제2 시간 안에 같은 SQL언어와 대응되는 목표치를 누적하여 같은 SQL언어의 목표치 총 합을 획득하는 것이 바람직하다. 예를 들어, 미리 설정된 제2 시간 안에 1개의 SQL언어와 대응되는 목표치가 다수개이면, 이 SQL언어와 대응되는 모든 목표치를 누적하여 이 SQL언어와 대응되는 목표치 총 합을 획득하고, 미리 설정된 제2 시간 안에 1개의 SQL언어와 대응되는 목표치가 1개이면, 이 목표치를 SQL언어와 대응되는 목표치 총화로 한다. 미리 설정된 수치보다 크거나 같은 상기 목표치 총 합을 갖는 SQL언어를 최적화할 SQL언어로 한다.
도4에 도시된 바와 같이, 본 발명의 각 실시예의 바람직한 실시예에 따른 어플리케이션 환경을 나타낸 도면이고, 이 어플리케이션 환경의 도면에 전자장치(1)와 단말장치(2)가 포함된다. 전자장치(1)는 네트워크, 근거리 무선 통신 기술 등 적절한 기술을 통해 단말장치(2)와 데이터를 교환한다.
상기 단말장치(2)는 키보드, 마우스, 리모컨, 터치패드 또는 음성제어장치 등 방식으로 사용자와 인간-컴퓨터 상호작용을 할 수 있는 어느 한 가지의 전자제품을 포함하나 이에 한정하지 않으며, 예를 들어, 퍼스널 컴퓨터, 태블릿 PC, 스마트폰, 개인 휴대 정보 단말기(Personal Digital Assistant,PDA), 게임기, 인터넷 프로토콜 텔레비전(Internet Protocol Television, IPTV), 스마트 착용형 디바이스, 내비게이션 장치 등의 이동식 장치이나 디지털 텔레비전, 데스크톱 컴퓨터, 노트, 서버 등의 고정 터미널이다.
이 전자장치(1)는 미리 설정되거나 저장된 명령에 따라 자동적으로 수치계산 및/또는 정보처리를 할 수 있는 장치이다. 상기 전자장치(1)는 컴퓨터일 수도 있고 단일 네트워크 서버, 다수 개의 네트워크 서버로 구성된 서버그룹, 또는 클라우드 컴퓨팅에 기초한 대량의 호스트 또는 네트워크 서버로 구선된 클라우드일 수도 있고, 그 중 클라우드 컴퓨팅은 분산 컴퓨팅의 일종으로서 느슨하게 결합된 일군의 컴퓨터 세트로 구성된 1개의 수퍼 가상 컴퓨터이다.
본 실시예에 있어서, 전자장치(1)는 버스 시스템에 의해 서로 통신 연결된 저장 장치(11), 프로세서(12), 네트워크 인터페이스(13)를 포함할 수 있으나 이들에 한정되지 않고, 저장장치(11)에는 상기 프로세서(12)에서 실행할 수 있는 데이터베이스 시스템의 최적화 시스템이 저장된다. 도4에는 모듈(11-13)을 가지는 전자장치(1)만 도시하나 모든 도시된 모듈을 실시하는 것을 요구하지 않고 더 많거나 적은 모듈으로 대체하여 실시할 수 있다는 것을 이해하여야 한다.
그 중, 저장장치(11)는 메모리 및 적어도 한 종류의 판독 가능한 저장매체를 포함한다. 메모리는 전자장치(1)의 동작을 위한 캐시를 제공하며, 판독 가능한 저장매체는 플래시 메모리, 하드 디스크, 멀티미디어 카드, 카드 타입 메모리(예를 들어, SD 또는 DX 메모리 등), 랜덤 액세스 메모리(RAM),정적 램(SRAM), 판독-전용 기억장치(ROM), 전기적 소거 및 프로그램 가능 읽기 전용 기억 장치(EEPROM), 프로그램 가능 읽기용 기억 장치(PROM), 자기 메모리, 자기 디스크, 시디롬 등과 같은 비휘발성 저장매체일 수 있다. 일부 실시예에 있어서, 판독 가능한 저장매체는 전자장치(1)의 내부 저장 유닛일 수 있고, 예를 들어, 이 전자장치(1)의 하드 디스크일 수 있으며, 다른 일부 실시예에 있어서, 이 비휘발성 저장매체는 전자장치(1)의 외부 저장 유닛일 수도 있고, 예를 들어, 전자장치(1)에 설치된 플러그인형 하드디스크, 스마트 미디어 카드(Smart Media Card, SMC), 시큐어 디지털(Secure Digital, SD) 카드, 플래시 카드(Flash Card)등과 같다. 본 실시예에 있어서, 저장장치(11)의 판독 가능한 저장매체는 통상적으로 전자장치(1)에 설치된 운영체제와 응용 소프트웨어를 저장하며, 예를 들어, 본 발명의 일 실시예에 따른 데이터베이스 시스템의 최적화 시스템의 프로그램 코드 등과 같다. 또한, 저장장치(11)는 이미 출력되거나 출력할 각 종류의 데이터를 일시적으로 저장할 수 있다.
일부 실시예에 있어서, 상기 프로세서(12)는 중앙 처리 장치(Central Processing Unit,CPU), 컨트롤러, 마이크로컨트롤러, 또는 기타 데이터 처리 칩일 수 있다. 이 프로세서(12)는 통상적으로 상기 전자장치(1)의 전체적인 동작을 제어하며, 예를 들어, 단말장치(2)와의 데이터 교환이나 통신과 관련된 제어 및 처리 등을 실행한다. 본 실시예에 있어서, 상기 프로세서(12)는 상기 저장장치(11)에 저장된 프로그램 코드 또는 처리 데이터를 실행하고, 예를 들어, 데이터베이스 시스템의 최적화 시스템 등을 실행한다.
상기 네트워크 인터페이스(13)는 무선 네트워크 인터페이스 또는 유선 네트워크 인터페이스를 포함할 수 있고, 이 네트워크 인터페이스(13)는 통상적으로 상기 전자장치(1)와 다른 전자 장비 사이에서 통신 연결을 구축한다. 본 실시예에 있어서, 네트워크 인터페이스(13)는 주로 전자장치(1)와 1개 또는 다수 개의 단말장치(2)를 연결하며, 전자장치(1)와 1개 또는 다수 개의 단말장치(2) 사이에서 데이터 전송로와 통신연결을 구축한다.
상기 데이터베이스 시스템의 최적화 시스템은 저장장치(11)에 저장되고, 적어도 1개의 저장장치(11)에 저장된 컴퓨터 판독 가능한 명령을 포함하고, 이 적어도 1개의 컴퓨터 판독 가능한 명령은 프로세서(12)에 의해 실행될 수 있어 본 발명의 각 실시예의 방법을 실현하며, 이 적어도 1개의 컴퓨터 판독 가능한 명령은 그의 각 부분이 설현할 기능에 따라 서로 다른 로직 모듈로 분할될 수 있다.
상기 데이터베이스 시스템의 최적화 시스템은 상기 프로세서(12)에 의해 하기와 같은 단계를 실행한다. 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하고 상기 성능 데이터는 실행 횟수와 버퍼 판독 데이터량을 포함하며, 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하며, 각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택하여 최적화하여야 할 SQL언어를 정확히 결정할 수 있어 최적화 효율을 향상시킨다.
도5에 도시된 바와 같이, 도5는 본 발명에 따른 데이터베이스 시스템의 최적화 시스템의 제1실시예의 구조를 나타낸 도면이고, 상기 데이터베이스 시스템의 최적화 시스템은 기능에 따라 다수 개의 기능 모듈로 구획되고, 데이터베이스 시스템의 최적화 시스템은 하기와 같은 모률을 포함한다.
스냅샷 모듈(101), 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하고 상기 성능 데이터는 실행 횟수와 버퍼 판독 데이터량을 포함한다.
본 실시예에 있어서, 미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 성능 데이터에 대해 스냅샷(즉, snapshot)을 하고, 예를 들어, 1 시간마다 각 SQL언어의 성능 데이터에 대해 스냅샷(즉, snapshot)을 하여 데이터베이스의 해당 시간의 정적 뷰를 획득하고 스냅샷은 전체 데이터베이스의 데이터를 획득한다.
그 중, SQL언어의 성능 데이터는 실행 횟수(즉, executions)와 버퍼 판독 (즉, buffer gets) 데이터량을 포함하며, 버퍼 판독 데이터량은 SQL언어가 메모리로부터 판독되는 데이터양이다.
계산 모듈(102), 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
본 실시예에 있어서, 현재 스냅샷의 성능 데이터와 지난 순위의 성능 데이터를 각각 대응하게 차이 계산을 한다. 즉, 현재 스냅샷의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 지난 순위의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량을 계산하며, 현재 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량과, 지난 순위 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 차이 계산(예를 들어 통계하고 빼기 연산을 한다)을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량을 계산한다. 예를 들어, 현재 스냅샷의 스냅샷 시간이 8:00이고 시간 간격이 1시간이면 지난 순위의 스냅샷은 시간이 7:00인 스냅샷이고 차이 계산을 한 후 시간이 7:00―8:00인 시간대에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 대응되는 단일 실행 버퍼 판독 데이터 평균량을 획득한다.
그 중, 1개의 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량은 이 SQL언어와 대응되는 버퍼 판독 데이터 총량 나누기 이 SQL언어와 대응되는 실행 횟수의 몫과 같다.
선택 모듈(103), 각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택한다.
본 실시예에 있어서, 각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고, 즉, 각 SQL언어에 대하여, 버퍼 판독 데이터 총량의 수치와 단일 실행 버퍼 판독 데이터 평균량의 수치 덧셈을 하여 수치의 합을 획득한다.
예를 들어, 2개의 SQL언어의 버퍼 판독 데이터 총량이 같고 모두가 10만이고 첫번째 SQL언어의 실행 횟수가 2만이고 두번째 SQL언어의 실행 횟수가 5만이면, 첫번째 SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 5이고, 두번째 SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 2이면, 총화가 (10만 + 5)인 두번째 SQL언어는 최적화할 SQL언어로 우선적으로 선택되며, 또한, 2개의 SQL언어의 실행 횟수가 같은 경우, 버퍼 판독 데이터 총량이 큰 SQL언어를 최적화할 SQL언어로 선택한다. 또한, 2개의 SQL언어의 버퍼 판독 데이터 총량이 다르고 실행 횟수도 다른 경우, 버퍼 판독 데이터 총량의 수치와 단일 실행 버퍼 판독 데이터 평균량의 수치의 합이 큰 SQL언어를 최적화할 SQL언어로 선택한다.
그 중, 단일 실행 버퍼 판독 데이터 평균량은 1개의 SQL언어가 한 번에 실행한 버퍼 판독 데이터의 평균량을 표현하고, 이 평균량이 클수록 1개의 SQL언어가 한 번에 실행한 버퍼 판독 데이터는 더 많고, 버퍼 판독 데이터 총량이 같은 경우, 1개의 SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 더 많으면 이 SQL언어는 성능 높은 SQL언어이고 최적화할 SQL언어로 우선적으로 된다. 수치의 합에 따라, 본 실시예는 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량에 기초하여 SQL언어의 이용행태에 대해 전체적이고 통합적으로 평가하고, SQL언어의 수치의 합이 클수록 이 SQL언어가 이용된 빈도와 성능은 더 높다.
본 실시예에 있어서, 수치의 합에 기초하여 최적화할 SQL언어를 선택하되 수치의 합을 크기에 따라 배열하며 이 배열 순서에 따라 최적화할 SQL언어를 선택하고, 그 중, 앞에 배열된 SQL언어가 최적화할 SQL언어이다.
바람직한 일 실시예에서, 상기 도5의 실시예에 기초하여, 상기 계산 모듈(102)을 처리모듈로 대체하여 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량, 모든 SQL언어의 버퍼 판독 데이터 총량의 합 및 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량을 계산하며, 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어의 버퍼 판독 데이터 총량의 합의 비율을 획득하며, 상기 미리 설정된 비율보다 큰 상기 비율과 대응되는 SQL언어를 상기 선택 모듈의 SQL언어로 한다.
본 실시예에 있어서, 현재 스냅샷의 성능 데이터와 지난 순위의 성능 데이터를 각각 대응하게 차이 계산을 한다. 즉, 현재 스냅샷의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 지난 순위의 각 SQL언어와 대응되는 버퍼 판독 데이터 총량에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량을 계산한다.
현재 스냅샷의 모든 SQL언어의 버퍼 판독 데이터 총량의 합과 지난 순위 스냅샷의 모든 SQL언어의 버퍼 판독 데이터 총량의 합에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 모든 SQL언어의 버퍼 판독 데이터 총량의 합을 계산한다.
현재 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량과 지난 순위 스냅샷의 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 차이 계산(예를 들어, 통계하고 빼기 연산을 한다)을 하여, 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량을 계산한다.
다음에는 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어와 대응되는 버퍼 판독 데이터 총량의 합의 비율을 획득하며, 이 비율이 작으면 이 SQL언어는 자주 이용된 SQL언어가 아닌 것을 확인하고 미리 설정된 비율보다 작거나 같은 비율에 대응되는 SQL언어를 필터링하며, 예를 들어, 1%보다 작거나 같은 비율을 갖는 SQL언어를 필터링하며 미리 설정된 비율보다 큰 비율에 대응되는 SQL언어를 선택모듈(103)의 SQL언어로 한다.
바람직한 일 실시예에 있어서, 도6에 도시된 바와 같이, 상기 도면5의 실시예에 기초하여 상기 데이터베이스 시스템의 최적화 시스템은 하기와 같은 모듈을 더 포함한다.
분석모듈(201),미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석한다.
필터링모듈(202), 존재하면, 미리 설정된 데이터보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 선택모듈의 SQL언어로 한다.
본 실시예에 있어서, 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량을 계산한 후, 미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석하며, SQL언어의 단일 실행 버퍼 판독 데이터 평균량이 이 SQL언어의 성능 수준를 나타내기 때문에 미리 설정된 데이터량보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하며, 예를 들어, 100보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 선택모듈(102)의 SQL언어로 한다.
바람직한 일 실시예에 있어서, 도7에 도시된 바와 같이, 상기 도면5의 실시예에 기초하여 상기 선택모듈(103)은 하기와 같은 유닛을 포함한다.
순서배열 유닛(1031),대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하며 상기 제1차 배열 및 제2차 배열을 기준으로 획득된 SQL언어에 대해 종합배열을 한다.
선택유닛(1032), 상기 종합배열에 기초하여 미리 설정된 계산규칙에 의해 각 SQL언어와 대응되는 목표치를 계산하며 상기 목표치에 따라 최적화할 SQL언어를 선택한다.
본 실시예에 있어서, 대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고, 즉, 버퍼 판독 데이터 총량의 크기 순서대로 배열하며, 예를 들어, SQL언어 A,B,C,D 및 E는 대응되는 버퍼 판독 데이터 총량 크기에 따라 배열하면 B, C, D, A, E를 획득하고 대응되는 순번을 생성할 수 있으며, 예를 들어, SQL언어 B, C, D, A, E와 대응되는 순번은 1, 2, 3, 4및5일 수 있다.
대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하고, 즉, 단일 실행 버퍼 판독 데이터 평균량의 크기 순서대로 배열하며, 예를 들어, SQL언어 A,B,C,D 및 E는 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 배열하면 D, A, E, B, C를 획득하고 대응되는 순번을 생성할 수 있으며, 예를 들어, SQL언어 D, A, E, B, C와 대응되는 순번은 1, 2, 3, 4및5일 수 있다.
종합순번을 획득할 때, 제1차 배열 및 제2차 배열을 기준으로 하며, 예를 들어, 제1차 배열의 순번과 제2차 배열의 순번 덧셈할 수 있어 A(4+2), B(4+1), C(2+5), D(3+1)및 E(5+3)을 획득하며, 즉, 종합배열은 E, C, A, B, D이고, 최종 SQL언어 E, C, A, B, D의 종합순번을 생성하며, 예를 들어, SQL언어 E, C, A, B, D와 대응되는 순번은 1, 2, 3, 4 및 5이다.
몰론, 본 실시예는 제1차 배열과 제2차 배열을 기준으로 하는 다른 종합배열을 이용할 수도 있고 여기서 생략한다.
종합배열된 SQL언어는 SQL언어 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 종합하여 량의 크기에 따라 배열하기 때문에 종합배열된 SQL언어가 그의 이용 빈도 및 성능에 따라 배열된다.
본 실시예에 있어서, 종합배열에 기초하여 미리 설정된 계산 규칙에 따라 각 SQL언어와 대응되는 목표치를 계산하며 목표치에 따라 최적화할 SQL언어를 선택한다.
선택유닛(1032)은 구체적으로 각 SQL언어의 종합배열과 대응되는 종합순번 나누기 모든 SQL언어의 수량의 몫을 계산할 수 있어 각 SQL언어와 대응되는 목표치를 획득하며, 제1시간보다 큰 미리 설정된 제2 시간 안(예를 들어, 10시간 이내)에 적어도 1개의 SQL언어의 목표치의 존재여부를 분석하고, 존재하면 상기 미리 설정된 제2 시간 안에 같은 SQL언어와 대응되는 목표치를 누적하여 같은 SQL언어의 목표치 총 합을 획득하는 것이 바람직하다. 예를 들어, 미리 설정된 제2 시간 안에 1개의 SQL언어와 대응되는 목표치가 다수개이면, 이 SQL언어와 대응되는 모든 목표치를 누적하여 이 SQL언어와 대응되는 목표치 총 합을 획득하고, 미리 설정된 제2 시간 안에 1개의 SQL언어와 대응되는 목표치가 1개이면, 이 목표치를 SQL언어와 대응되는 목표치 총화로 한다. 미리 설정된 수치보다 크거나 같은 상기 목표치 총 합을 갖는 SQL언어를 최적화할 SQL언어로 한다.
상기와 같은 실시예는 본 발명의 바람직한 실시예로서 본 발명에 대해 한정하고자 하는 것이 아니다. 본 발명의 기술사상과 원칙 안에서 임의 수정, 등가치환, 개진 등은 모두 본 발명의 특허보호범위내에 포함된다.

Claims (20)

  1. 데이터베이스 시스템의 최적화 방법에 있어서,
    미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 실행 횟수와 버퍼 판독 데이터량을 포함하는 성능 데이터에 대해 스냅샷을 하고 상기 스냅샷을 시간 순서에 따라 배열하여 저장하는 단계S1과,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하는 단계S2와,
    각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택하는 단계S3을 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 방법.
  2. 제1항에 있어서,
    상기 단계S2는,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하여 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량, 모든 SQL언어의 버퍼 판독 데이터 총량의 합, 및 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 계산하며,
    각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어의 버퍼 판독 데이터 총량의 합의 비율을 획득하며,
    상기 미리 설정된 비율보다 큰 상기 비율과 대응되는 SQL언어를 상기 단계S3를 수행하기 위한 SQL언어로 하는 것으로 치환되는 것을 특징으로 하는 데이터베이스 시스템의 최적화 방법.
  3. 제1항에 있어서,
    상기 단계S2 이후,
    미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석하는 단계S201과,
    존재하면, 미리 설정된 데이터보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 단계S3을 수행한는 SQL언어로 하는 단계S202를 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 단계S3은,
    대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하며 상기 제1차 배열 및 제2차 배열을 기준으로 획득된 SQL언어에 대해 종합배열을 하는 단계S31과,
    상기 종합배열에 기초하여 미리 설정된 계산규칙에 의해 각 SQL언어와 대응되는 목표치를 계산하며 상기 목표치에 따라 최적화할 SQL언어를 선택하는 단계S32를 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 방법.
  5. 제4항에 있어서,
    상기 단계S32는,
    각 SQL언어의 종합배열과 대응되는 종합순번 나누기 모든 SQL언어의 수량의 몫을 계산할 수 있어 각 SQL언어와 대응되는 목표치를 획득하는 단계,
    제1시간보다 큰 미리 설정된 제2 시간 안에 적어도 1개의 SQL언어의 목표치의 존재여부를 분석하는 단계,
    존재하면 상기 미리 설정된 제2 시간 안에 같은 SQL언어와 대응되는 목표치를 누적하여 같은 SQL언어의 목표치 총 합을 획득하는 단계,
    미리 설정된 수치보다 크거나 같은 상기 목표치 총 합을 갖는 SQL언어를 최적화할 SQL언어로 하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 방법.
  6. 데이터베이스 시스템의 최적화 시스템에 있어서,
    미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 실행 횟수와 버퍼 판독 데이터량을 포함하는 성능 데이터에 대해 스냅샷을 하여 상기 스냅샷을 시간 순서에 따라 배열하여 저장하는 스냅샷 모듈과,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하는 계산 모듈과,
    각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택하는 선택 모듈을 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 시스템.
  7. 제6항에 있어서,
    상기 계산 모듈은, 현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량, 모든 SQL언어의 버퍼 판독 데이터 총량의 합 및 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량을 계산하며, 각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어의 버퍼 판독 데이터 총량의 합의 비율을 획득하며, 상기 미리 설정된 비율보다 큰 상기 비율과 대응되는 SQL언어를 상기 선택 모듈의 SQL언어로 하는 처리모듈로 대체되는 것을 특징으로 하는 데이터베이스 시스템의 최적화 시스템.
  8. 제6항에 있어서,
    미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석하는 분석모듈과,
    존재하면, 미리 설정된 데이터보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 선택모듈의 SQL언어로 하는 필터링모듈을 더 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 시스템.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 선택모듈은,
    대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하며 상기 제1차 배열 및 제2차 배열을 기준으로 하여 획득된 SQL언어에 대해 종합배열을 하는 순서배열 유닛과,
    상기 종합배열에 기초하여 미리 설정된 계산규칙에 의해 각 SQL언어와 대응되는 목표치를 계산하며 상기 목표치에 따라 최적화할 SQL언어를 선택하는 선택유닛을 포함하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 시스템.
  10. 제9항에 있어서,
    선택유닛은 구체적으로 각 SQL언어의 종합배열과 대응되는 종합순번 나누기 모든 SQL언어의 수량의 몫을 계산할 수 있어 각 SQL언어와 대응되는 목표치를 획득하며, 제1시간보다 큰 미리 설정된 제2 시간 안에 적어도 1개의 SQL언어의 목표치의 존재여부를 분석하고, 존재하면 상기 미리 설정된 제2 시간 안에 같은 SQL언어와 대응되는 목표치를 누적하여 같은 SQL언어의 목표치 총 합을 획득하며, 미리 설정된 수치보다 크거나 같은 상기 목표치 총 합을 갖는 SQL언어를 최적화할 SQL언어로 하는 것을 특징으로 하는 데이터베이스 시스템의 최적화 시스템.
  11. 메모리 및 상기 메모리에 연결된 프로세서를 포함하고, 상기 메모리에는 프로세서에 의해 실행될 수 있는 데이터베이스 시스템의 최적화 시스템이 저장되고, 상기 데이터베이스 시스템의 최적화 시스템은 상기 프로세서에 의해 실행될 때,
    미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 실행 횟수와 버퍼 판독 데이터량을 포함하는 성능 데이터에 대해 스냅샷을 하고 상기 스냅샷을 시간 순서에 따라 배열하여 저장하는 단계S1과,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하는 단계S2와,
    각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택하는 단계S3을 이루는 것을 특징으로 하는 전자장치.
  12. 제11항에 있어서,
    상기 단계S2는,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량, 모든 SQL언어의 버퍼 판독 데이터 총량의 합, 및 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 계산하며,
    각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어의 버퍼 판독 데이터 총량의 합의 비율을 획득하며,
    상기 미리 설정된 비율보다 큰 상기 비율과 대응되는 SQL언어를 상기 단계S3을 수행하기 위한 SQL언어로 하는 것으로 치환되는 것을 특징으로 하는 전자장치.
  13. 제11항에 있어서,
    상기 데이터베이스 시스템의 최적화 시스템은 상기 프로세서에 의해 실행될 때,
    미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석하는 단계S201과,
    존재하면, 미리 설정된 데이터보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 단계S3을 수행한는 SQL언어로 하는 단계S202를 이루는 것을 특징으로 하는 전자장치.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 단계S3은,
    대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하며 상기 제1차 배열 및 제2차 배열을 기준으로 획득된 SQL언어에 대해 종합배열을 하는 단계S31과,
    상기 종합배열에 기초하여 미리 설정된 계산규칙에 의해 각 SQL언어와 대응되는 목표치를 계산하며 상기 목표치에 따라 최적화할 SQL언어를 선택하는 단계S32를 포함하는 것을 특징으로 하는 전자장치.
  15. 제14항에 있어서,
    상기 단계S32는
    각 SQL언어의 종합배열과 대응되는 종합순번 나누기 모든 SQL언어의 수량의 몫을 계산할 수 있어 각 SQL언어와 대응되는 목표치를 획득하는 단계와,
    미리 설정된 제1시간보다 큰 미리 설정된 제2 시간 안에 적어도 1개의 SQL언어의 목표치의 존재여부를 분석하는 단계와,
    존재하면 상기 미리 설정된 제2 시간 안에 같은 SQL언어와 대응되는 목표치를 누적하여 같은 SQL언어의 목표치 총 합을 획득하는 단계와,
    미리 설정된 수치보다 크거나 같은 상기 목표치 총 합을 갖는 SQL언어를 최적화할 SQL언어로 하는 단계를 포함하는 것을 특징으로 하는 전자장치.
  16. 데이터베이스 시스템의 최적화 시스템이 저장되고 상기 데이터베이스 시스템의 최적화 시스템은 프로세서에 의해 실행될 때,
    미리 설정된 제1시간마다 데이터베이스 시스템의 각 SQL언어의 실행 횟수와 버퍼 판독 데이터량을 포함하는 성능 데이터에 대해 스냅샷을 하고 상기 스냅샷을 시간 순서에 따라 배열하여 저장하는 단계S1과,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량 및 단일 실행 버퍼 판독 데이터 평균량을 계산하는 단계S2와,
    각 SQL언어의 버퍼 판독 데이터 총량과 단일 실행 버퍼 판독 데이터 평균량의 합을 획득하고 상기 수치의 합에 따라 최적화할 SQL언어를 선택하는 단계S3을 이루는 것을 특징으로 하는 컴퓨터 판독 가능한 저장매체.
  17. 제16항에 있어서,
    상기 단계S2는,
    현재 스냅샷의 성능 데이터와 지난 순위 스냅샷의 성능 데이터를 각각 대응하게 차이 계산을 하여 미리 설정된 제1시간 안에 각 SQL언어와 대응되는 버퍼 판독 데이터 총량, 모든 SQL언어의 버퍼 판독 데이터 총량의 합, 및 각 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량에 대해 계산하며,
    각 SQL언어와 대응되는 버퍼 판독 데이터 총량과, 모든 SQL언어의 버퍼 판독 데이터 총량의 합의 비율을 획득하며,
    상기 미리 설정된 비율보다 큰 상기 비율과 대응되는 SQL언어를 상기 단계S3를 수행하기 위한 SQL언어로 하는 것으로 치환되는 것을 특징으로 하는 컴퓨터 판독 가능한 저장매체.
  18. 제16항에 있어서,
    상기 데이터베이스 시스템의 최적화 시스템은 프로세서에 의해 실행될 때,
    미리 설정된 데이터량보다 작거나 같은 SQL언어와 대응되는 단일 실행 버퍼 판독 데이터 평균량의 존재여부를 분석하는 단계S201과,
    존재하면, 미리 설정된 데이터보다 작거나 같은 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 필터링하고 미리 설정된 데이터량보다 큰 단일 실행 버퍼 판독 데이터 평균량의 SQL언어를 상기 단계S3을 수행한는 SQL언어로 하는 단계 S202를 이루는 것을 특징으로 하는 컴퓨터 판독 가능한 저장매체.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서,
    상기 단계S3은,
    대응되는 버퍼 판독 데이터 총량 크기에 따라 각 SQL언어에 대해 제1차 배열을 하고 대응되는 단일 실행 버퍼 판독 데이터 평균량 크기에 따라 각 SQL언어에 대해 제2차 배열을 하며 상기 제1차 배열 및 제2차 배열을 기준으로 획득된 SQL언어에 대해 종합배열을 하는 단계S31과,
    상기 종합배열에 기초하여 미리 설정된 계산규칙에 의해 각 SQL언어와 대응되는 목표치를 계산하며 상기 목표치에 따라 최적화할 SQL언어를 선택하는 단계S32를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장매체.
  20. 제19항에 있어서,
    상기 단계S32는,
    각 SQL언어의 종합배열과 대응되는 종합순번 나누기 모든 SQL언어의 수량의 몫을 계산할 수 있어 각 SQL언어와 대응되는 목표치를 획득하는 단계, 제1시간보다 큰 미리 설정된 제2 시간 안에 적어도 1개의 SQL언어의 목표치의 존재여부를 분석하는 단계, 존재하면 상기 미리 설정된 제2 시간 안에 같은 SQL언어와 대응되는 목표치를 누적하여 같은 SQL언어의 목표치 총 합을 획득하는 단계, 미리 설정된 수치보다 크거나 같은 상기 목표치 총 합을 갖는 SQL언어를 최적화할 SQL언어로 하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장매체.
KR1020187017569A 2017-02-20 2017-06-30 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체 KR102141083B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710088152.5 2017-02-20
CN201710088152.5A CN107688589B (zh) 2017-02-20 2017-02-20 数据库系统优化的方法及装置
PCT/CN2017/091375 WO2018149085A1 (zh) 2017-02-20 2017-06-30 数据库系统优化的方法、系统、电子装置及存储介质

Publications (2)

Publication Number Publication Date
KR20190022434A true KR20190022434A (ko) 2019-03-06
KR102141083B1 KR102141083B1 (ko) 2020-08-05

Family

ID=61152404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187017569A KR102141083B1 (ko) 2017-02-20 2017-06-30 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체

Country Status (8)

Country Link
US (1) US11132362B2 (ko)
EP (1) EP3388957B1 (ko)
JP (1) JP6570156B2 (ko)
KR (1) KR102141083B1 (ko)
CN (1) CN107688589B (ko)
AU (1) AU2017399399B2 (ko)
SG (1) SG11201808828RA (ko)
WO (1) WO2018149085A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888909B (zh) * 2018-09-07 2022-09-23 大唐移动通信设备有限公司 一种评估内容的数据统计处理方法及装置
CN109299132B (zh) * 2018-11-29 2021-08-06 中国人民财产保险股份有限公司 Sql数据处理方法、系统以及电子设备
CN110148011B (zh) * 2019-04-15 2024-03-22 平安科技(深圳)有限公司 基于大数据的活跃量下降分析方法、装置、设备及介质
CN115037798B (zh) * 2022-08-11 2022-12-27 成都金诺信高科技有限公司 一种时统报文数据包分发方法
CN115858399B (zh) * 2023-02-09 2023-05-05 创智和宇信息技术股份有限公司 一种利用线程栈快照进行代码级性能分析的方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175678A (ja) * 1999-12-20 2001-06-29 Toshiba Corp データベース・チューニング装置、データベース・チューニング方法、および記録媒体
JP2007122405A (ja) * 2005-10-28 2007-05-17 Hitachi Ltd データベース管理システムの性能チューニングシステム
KR20080084968A (ko) * 2005-12-15 2008-09-22 마이크로소프트 코포레이션 일정 잡기 가능한 일정표를 전자적으로 제공하는 시스템 및방법
US20150081669A1 (en) * 2007-09-14 2015-03-19 Oracle International Corporation Fully automated sql tuning
KR20150047007A (ko) * 2013-10-23 2015-05-04 삼성전자주식회사 복수의 프로세서들을 병렬적으로 이용하여 시뮬레이션을 수행하는 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138015A1 (en) * 2003-09-06 2005-06-23 Oracle International Corporation High load SQL driven statistics collection
CN102541884B (zh) * 2010-12-10 2014-07-02 中国移动通信集团贵州有限公司 数据库优化方法和装置
CN103176974B (zh) 2011-12-20 2016-01-13 国际商业机器公司 优化数据库中访问路径的方法和装置
CN103390066B (zh) * 2013-08-08 2016-02-17 上海新炬网络信息技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法
CN105243068A (zh) * 2014-07-09 2016-01-13 华为技术有限公司 数据库系统的查询方法、服务器和能耗测试系统
CN105989137B (zh) * 2015-02-27 2019-12-10 中国移动通信集团河北有限公司 一种结构化查询语言性能优化方法及系统
CN105302858B (zh) * 2015-09-18 2019-02-05 北京国电通网络技术有限公司 一种分布式数据库系统的跨节点查询优化方法及系统
CN106372135A (zh) * 2016-08-26 2017-02-01 深圳市卓讯信息技术有限公司 一种结构化查询语言sql执行效率跟踪方法及装置
US11232102B2 (en) * 2016-10-17 2022-01-25 Salesforce.Com, Inc. Background processing to provide automated database query tuning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175678A (ja) * 1999-12-20 2001-06-29 Toshiba Corp データベース・チューニング装置、データベース・チューニング方法、および記録媒体
JP2007122405A (ja) * 2005-10-28 2007-05-17 Hitachi Ltd データベース管理システムの性能チューニングシステム
KR20080084968A (ko) * 2005-12-15 2008-09-22 마이크로소프트 코포레이션 일정 잡기 가능한 일정표를 전자적으로 제공하는 시스템 및방법
US20150081669A1 (en) * 2007-09-14 2015-03-19 Oracle International Corporation Fully automated sql tuning
KR20150047007A (ko) * 2013-10-23 2015-05-04 삼성전자주식회사 복수의 프로세서들을 병렬적으로 이용하여 시뮬레이션을 수행하는 방법 및 장치

Also Published As

Publication number Publication date
JP2019508774A (ja) 2019-03-28
EP3388957A4 (en) 2018-11-07
AU2017399399B2 (en) 2020-01-23
CN107688589B (zh) 2019-02-26
EP3388957A1 (en) 2018-10-17
JP6570156B2 (ja) 2019-09-04
AU2017399399A1 (en) 2018-10-11
CN107688589A (zh) 2018-02-13
US11132362B2 (en) 2021-09-28
WO2018149085A1 (zh) 2018-08-23
US20190065548A1 (en) 2019-02-28
KR102141083B1 (ko) 2020-08-05
EP3388957B1 (en) 2020-10-14
SG11201808828RA (en) 2018-11-29

Similar Documents

Publication Publication Date Title
US11632422B2 (en) Automated server workload management using machine learning
KR20190022434A (ko) 데이터베이스 시스템의 최적화 방법, 시스템, 전자장치 및 저장매체
US11709661B2 (en) Representing result data streams based on execution of data stream language programs
Wang et al. Performance prediction for apache spark platform
US8782219B2 (en) Automated discovery of template patterns based on received server requests
KR101894226B1 (ko) Ip 어드레스에 대응하는 위치를 결정하기 위한 방법, 장치, 및 시스템
CN103177062A (zh) 用于高速内存在线分析处理查询和操作的加速查询操作器
WO2020168756A1 (zh) 集群日志特征提取方法、装置、设备及存储介质
JPWO2008020468A1 (ja) プログラム分析方法及び装置
US10466936B2 (en) Scalable, multi-dimensional search for optimal configuration
CN111061758B (zh) 数据存储方法、装置及存储介质
JP2017117242A (ja) 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム
WO2017092444A1 (zh) 基于Hadoop的日志数据挖掘方法及系统
US20160253591A1 (en) Method and apparatus for managing performance of database
US20200380037A1 (en) Information Retrieval Precision Evaluation Method, System and Device and Computer-Readable Storage Medium
JP2016024486A (ja) データ活用システム及びその制御方法
CN107305552A (zh) 辅助阅读方法和装置
JP6331549B2 (ja) 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理システム
CN113835953A (zh) 作业信息的统计方法、装置、计算机设备和存储介质
CN109885384B (zh) 任务并行度优化方法、装置、计算机设备及存储介质
US20170242916A1 (en) Retain data above threshold
CN112148491B (zh) 数据处理方法及装置
CN116910352A (zh) 基于人工智能的报表推荐方法、装置、设备及介质
CN106156261B (zh) 一种用户信息的加载方法、装置及服务器
CN115858324A (zh) 基于ai的it设备故障处理方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant