KR102230661B1 - Sql 검토 방법, 장치, 서버 및 저장 매체 - Google Patents

Sql 검토 방법, 장치, 서버 및 저장 매체 Download PDF

Info

Publication number
KR102230661B1
KR102230661B1 KR1020187015349A KR20187015349A KR102230661B1 KR 102230661 B1 KR102230661 B1 KR 102230661B1 KR 1020187015349 A KR1020187015349 A KR 1020187015349A KR 20187015349 A KR20187015349 A KR 20187015349A KR 102230661 B1 KR102230661 B1 KR 102230661B1
Authority
KR
South Korea
Prior art keywords
review
sql
result
passed
sql statement
Prior art date
Application number
KR1020187015349A
Other languages
English (en)
Other versions
KR20190060725A (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 KR20190060725A publication Critical patent/KR20190060725A/ko
Application granted granted Critical
Publication of KR102230661B1 publication Critical patent/KR102230661B1/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/2455Query execution
    • G06F16/24553Query execution of query operations
    • 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/2454Optimisation of common expressions
    • 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/3433Recording 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 for load management
    • 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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

SQL 검토 방법은 저속 로그 데이터를 획득하는 단계; 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계; 파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계; 검토 결과를 획득하기 위해 상기 파싱된 결과 및/또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계; 및 상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계를 포함한다.

Description

SQL 검토 방법, 장치, 서버 및 저장 매체
본 출원은 2016년 9월 28일 출원된 제목이 "SQL 검토 방법, 장치, 서버 및 저장 매체"인 중국 특허출원 제201610860550.X호에 우선권을 주장한 출원으로, 그 전체 내용은 여기에 참고로서 포함된다.
본 발명은 컴퓨터 네트워크 보안 기술 분야에 관한 것으로서, 보다 상세하게는 SQL 검토 방법, 장치, 서버 및 저장 매체에 관한 것이다.
데이터베이스 작업에서, 데이터베이스에 의해 수행되는 SQL(구조화 질의 언어, Structured Query Language) 문장의 검토가 종종 요구되고 있다. 프로덕션 시스템에 성능 저하의 SQL 문장 등이 입력되어 데이터베이스의 전체 성능이 저하되는 것은 이러한 SQL 검토에 따라 회피될 수 있다. 기존 방식의 SQL검토는 SQL 스크립트만으로 SQL 문장을 파싱(parse)하여 간단한 검토 작업만을 수행할 수 있으며, SQL 실행 계획 검토와 같은 SQL을 보다 깊이 검토할 수 없어, MYSQL, Postgres 및 기타 데이터베이스와 같은 일부 데이터 사전 불완전한 정보 데이터베이스를 검토하는 경우 부정확한 SQL 검토가 초래될 수 있다.
본 발명의 다양한 실시예에 따르면, SQL 검토 방법, 장치, 서버 및 저장 매체가 제공된다.
SQL 검토 방법은 저속 로그 데이터를 획득하는 단계; 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계; 파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계; 검토 결과를 획득하기 위해 상기 파싱된 결과 및/또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계; 및 상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계를 포함한다.
SQL 검토 장치는 저속 로그 데이터를 획득하도록 구성되는 획득 모듈; 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하도록 구성되는 추출 모듈; 파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하도록 구성되는 파싱 모듈; 검토 결과를 획득하기 위해 상기 파싱된 결과 및/또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하도록 구성되는 검토 모듈; 및 상기 검토 결과에 따라 검토 결과 집합을 생성하는 생성 모듈을 포함한다.
프로세서 및 상기 프로세서에 의해 실행될 때 상기 프로세서가 단계들을 수행하게 하는 명령을 저장하는 메모리를 포함하는 서버로서, 상기 단계들은, 저속 로그 데이터를 획득하는 단계; 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계; 파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계; 검토 결과를 획득하기 위해 상기 파싱된 결과 및/또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계; 및 상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계를 포함한다.
컴퓨터 판독 가능 명령을 저장하는 적어도 하나의 비 일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 단계들을 수행하도록 하며, 상기 단계들은, 저속 로그 데이터를 획득하는 단계; 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계; 파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계; 검토 결과를 획득하기 위해 상기 파싱된 결과 및/또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계; 및 상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계를 포함한다.
본 발명의 적어도 하나의 실시예에 대한 설명은 다음의 도면 및 설명을 참조하여 설명될 것이다. 본 발명의 다른 특성, 목적 및 장점은 상세한 설명, 도면 및 청구 범위로부터 더욱 명백해질 것이다.
본 실시예에서, SQL 문장을 파싱하여 얻어진 파싱된 결과 및/또는 SQL 문장과 매치되는 기본 정보는 실행 계획 검토 템플릿 및 SQL 문법 검토 템플릿에 따라 하나씩 검토된다. 불완전한 데이터 사전 정보가 있는 데이터베이스의 SQL는 보다 심도 있게 검토될 수 있으므로, SQL 검토의 대상이 보다 명확해지고 SQL 검토의 정확성이 효과적으로 향상될 수 있다.
본 실시예에서, 검토 결과가 통과되지 않은 SQL 문장은 SQL베이스 라인을 구축하기 위해 검토 결과 집합에서 추출되기에, 데이터베이스 관리자는 검토 결과가 데이터베이스에서 통과되지 않은 SQL 문장을 수정하는 것이 편리해진다. 이에 따라 SQL 검토 작업의 효율성이 향상되고 데이터베이스의 데이터 처리 성능이 향상될 수 있다.
본 발명의 실시예 또는 기존 기술의 기술적 해결책을 더 명확하게 설명하기 위해, 다음에 실시예 또는 기존 기술을 설명하는 데 필요한 첨부 도면을 간략하게 설명한다. 명백하게, 다음의 설명에서 첨부된 도면은 단지 본 발명의 일부 실시예를 도시하는 것이며, 본 기술 분야의 통상의 기술자는 창의적 노력 없이 다른 도면을 안출할 수 있다.
도 1은 일 실시예에 따른 서버의 블록도이다.
도 2는 일 실시예에 따른 SQL 검토 방법의 흐름도이다.
도 3은 일 실시예에 따른 미리 설정된 검토 템플릿 내의 검토 항목들에 따라 검토를 수행하는 방법의 흐름도이다.
도 4는 일 실시예에 따른 베이스 라인을 구축하고 분석하는 흐름도이다.
도 5는 일 실시예에 따른 베이스 라인을 구축하는 흐름도이다.
도 6은 일 실시예에 따른 SQL 검토 장치의 블록도이다.
도 7은 일 실시예에 따른 추출 모듈의 블록도이다.
도 8은 다른 실시예에 따른 SQL 검토 장치의 블록도이다.
도 9는 다른 실시예에서 따른 확립 모듈의 블록도이다.
본 개시내용의 목적들, 기술적 해결책들, 및 장점들을 보다 명확히 하기 위해, 본 개시내용이 첨부 도면 및 실시예들을 참조하여 아래에 상세히 설명된다. 여기에 설명된 특정한 실시예들은 단지 본 개시내용을 설명하고자 하는 것이지, 본 개시내용을 제한하려는 것은 아니다.
도 1은 일 실시예에 따른 서버의 블록도이다. 도 1을 참조하면, 서버는 시스템 버스를 통해 연결된 프로세서, 메모리 및 네트워크 인터페이스를 포함한다. 서버의 프로세서는 계산 및 제어 기능을 제공하여 전체 서버의 작동을 지원하도록 구성된다. 서버의 메모리는 데이터, 명령 코드 등을 저장하도록 구성된다. 일 실시예에서, 메모리는 비 - 일시적 저장 매체 및 RAM (Random Access Memory)을 포함 할 수 있다. 비 일시적 저장 매체는 운영 체제, 데이터베이스 및 컴퓨터 실행 가능 명령을 저장한다. 데이터베이스는 저속 로그 데이터를 저장한다. 컴퓨터 실행 가능 명령어는 본 실시예에서 제공된 서버에 적용된 SQL을 검토하는 방법을 구현하도록 구성될 수 있다. RAM은 운영 체제에 대한 실행 환경 및 비 일시적 저장 매체의 컴퓨터 실행 가능 명령을 제공한다. 서버의 네트워크 인터페이스는 네트워크 접속에 의해 외부 단말기와의 네트워크 통신을 수행하도록 구성되며, 단말기에 의해 전송된 수정된 SQL 문장을 수신하고, 검토 데이터를 단말기에 반환한다. 서버는 개별 서버 또는 복수의 서버로 구성된 서버 클러스터에 의해 구현될 수 있다. 당업자는 도 1에 도시된 구조가 본 발명의 해결 수단과 관련된 부분 구조의 블록 다이어그램일 뿐이며 본 발명의 해결 수단이 적용되는 서버를 제한하지 않은 것을 이해할 것이다. 특정 서버는 도면에 도시된 부품의 수보다 많은 부품 또는 적은 부품을 포함할 수 있고, 또는 특정 부품을 조합하거나, 상이한 부품 배치를 가질 수도 있다.
도 2를 참조하면, 일 실시예에서, SQL 검토 방법이 제공되며, 이는 도 1에 도시된 서버에 적용될 수 있다. 상기 방법은 다음 단계를 포함한다.
단계(S210)에서, 저속 로그 데이터가 획득된다.
서버는 MySQL, Postgres 및 기타 대상 데이터베이스와 같이 불완전한 데이터 사전 정보가 있는 대상 데이터베이스로부터 외부 연결 테이블을 통해 저속 로그 데이터를 얻을 수 있다. 여기서 저속 로그 데이터는 저속 쿼리 로그 데이터를 나타낸다. 데이터베이스에서 지정된 시간을 초과하는 SQL 문장 쿼리를 "저속 쿼리”라고 한다. 저속 로그 데이터는 지정된 시간을 초과하는 SQL 문장을 기록하고, 로그 시간, 저장 위치, 실행 시간, 실행자 번호와 같은 SQL 문장이 실행될 때 생성되는 관련 데이터를 기록한다.
단계(S220)에서, 검토될 SQL 문장과 SQL 문장과 매치되는 기본 정보가 저속 로그 데이터로부터 추출된다.
서버는 검토될 SQL 문장 및 획득된 저속 로그 데이터로부터 SQL 문장을 검토하는 데 필요한 검토될 SQL 문장과 매치되는 기본 정보를 추출할 수 있다. 기본 정보는 미리 설정된 검토 템플릿의 검토 항목에 따라 추출될 수 있다. 기본 정보는 실행 횟수, 총 실행 시간, 실행 동작, 실행 비용 등을 포함할 수 있다. 저속 로그 데이터로부터 검토될 SQL 문장을 추출함으로써, SQL 문장은 필터링된다. 우수한 성능의 SQL 문장은 SQL 문장의 실행 시간에 따라 필터링된다. 지정된 시간을 초과하는 성능 저하 SQL 문장이 검토된다.
일 실시예에서, 검토될 SQL 문장 및 SQL 문장과 매치되는 기본 정보를 저속 로그 데이터로부터 추출하는 단계(S220)은 (a) 및 (b)를 포함한다.
(a) 저속 로그 데이터가 미리 설정된 포맷에 따라 분석되고 저속 로그 데이터 리스트가 생성된다.
서버는 저속 로그 데이터를 분석하고 미리 설정된 포맷에 따라 저속 로그 데이터에서 데이터를 추출할 수 있다. 미리 설정된 포맷은 실제 요구 사항에 따라 설정될 수 있다. 예를 들어, 미리 설정된 포맷이 필드 이름, 필드 타입 및 필드 내용을 포함할 수 있는 경우, 필드 이름에 해당하는 각 필드 이름, 필드 타입 및 필드 내용이 저속 로그 데이터에서 추출된다. 저속 로그 데이터 리스트는 미리 설정된 포맷에 따라 저속 로그 데이터로부터 추출된 데이터로부터 생성될 수 있다. 저속 로그 데이터 리스트의 포맷 내용은 미리 설정된 포맷 및 추출된 데이터에 대응한다. 예를 들어, 저속 로그 데이터 리스트는 표 1과 같이 표시 될 수 있다.
[표 1]
Figure 112018053159040-pct00001
여기서, log_time은 로그 시간, user_name은 사용자 이름, database_name은 데이터베이스 이름, userid는 사용자 번호, calls는 실행 번호, total_time은 전체 실행 시간을 나타낸다. 저속 로그 데이터 리스트의 내용 및 포맷은 표 1에 도시된 내용 및 포맷으로 제한되는 것은 아니다.
(b) 저속 로그 데이터 리스트의 필드 이름에 따라 검토될 SQL 문장과 SQL 문장과 매치되는 기본 정보는 저속 로그 데이터 리스트에서 추출된다.
서버는 저속 로그 데이터 목록에서 필드 이름 "query"를 추출할 수 있다. 즉, 필드 이름은 실행된 문장의 필드 내용에 대해 검토될 SQL 문장으로 사용된다. SQL 문장과 매치되는 해당 기본 정보는 미리 설정된 검토 템플릿의 검토 항목에 따라 저속 로그 데이터 리스트에서 추출된다. 예를 들어, 미리 설정된 검토 템플릿의 검토 항목에 실행 시간이 포함되어 있으면, SQL 문장과 매치되는 기본 정보인 저속 로그 데이터 리스트에서 필드 내용 "total_time" 및 필드 내용 "calls"이 추출된다.
단계(S230)에서, 파싱된 결과를 획득하기 위해 상기 SQL 문장이 식별되고 파싱된다.
서버는 검토 템플릿에 의해 식별될 수 있는 파싱된 결과를 획득하도록 저속 로그 데이터에서 추출된 SQL 문장을 식별하고 파싱할 수 있다. 실시예에서, SQL 문장을 파싱한 후에 SQL 트리 파싱된 결과가 획득되고, 이는 검토 템플릿의 검토 항목에 따라 파싱된 결과를 검토하는 것을 용이하게 할 수 있다.
단계(S240)에서, 검토 결과를 획득하기 위해 파싱된 결과 및/또는 기본 정보가 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토된다.
미리 설정된 검토 템플릿은 실행 계획 검토 템플릿과 SQL 문법 검토 템플릿이 포함될 수 있다. 실행 계획 검토 템플릿은 SQL 문장의 실행 계획을 검토하도록 구성된다. 데이터베이스에서 SQL 문장은 예상되는 데이터를 나타내지만, 예상되는 데이터를 획득하는 방법을 나타내지는 않는다. 예를 들어, SQL 문장에 의해 심천시(Shenzhen City)에 사는 모든 고객은 추출될 수 있다. 서버의 데이터베이스가 이러한 SQL을 수신하면, 계산에 통해 데이터베이스는 데이터를 획득하기 위해 전체 고객 테이블을 읽는 것 또는 색인을 사용하는 것을 선택한다. 최종적으로, 물리적으로 SQL 문장을 실행하는 방법은 실행 계획으로 명칭된다. 실행 계획 검토 템플릿의 검토 항목에는 저속 쿼리, 높은 비용의 작업 등이 포함될 수 있다. SQL 문법 검토 템플릿은 SQL 문장 자체의 구문과 의미를 검토하도록 구성된다. SQL 문법 검토 템플릿의 검토 항목은 쿼리 절을 반복하지 못하게 하는 것, " select *"와 같은 표시를 금지하는 것을 포함할 수 있다. 서버는 검토 결과를 얻기 위해 미리 설정된 검토 템플릿의 검토 항목에 따라 파싱된 결과 및/또는 기본 정보를 하나씩 검토할 수 있다. 검토 템플릿의 검토 항목이 만족스럽지 않으면 검토는 통과되지 않고, 검토 템플릿의 모든 검토 항목이 충족되면 검토가 통과된다.
단계 S250에서, 검토 결과에 따라 검토 결과 집합이 생성된다.
서버는 상기 저속 로그 데이터로부터 추출된 각 SQL 문장과 매칭되는 기본 정보 및 복수의 SQL 문장을 검토하고, 상기 검토 결과에 따라 상기 검토 결과 집합을 생성할 수 있다. 상기 검토 결과 집합은 검토된 SQL 문장의 SQL 번호, 데이터베이스 이름, 실행 시간, 명령 유형, 검토 상태, 불법 항목 등을 포함할 수 있다. 상기 검토 결과 세트는 상기 검토 데이터베이스에 저장되고, 상기 검토 상태는 상기 검토 결과를 표시한다. 숫자 "0", "1" 및 기타 숫자 또는 기타 문자, 기호 등은 검토 결과의 통과 여부를 나타낼 수 있다.
상술한 SQL 검토 방법은 검토될 SQL 문장과 SQL 문장과 매치되는 기본 정보를 저속 로그 데이터로부터 추출하고, SQL 문장과 SQL 문장과 매치되는 기본 정보를 파싱하여 획득된 파싱된 결과를 검토한다. 저속 로그 데이터를 마이닝하고, 분석함으로써, SQL 딥 검토에 의해 수행될 수 있는 SQL 문장과 SQL 문장과 매치되는 기본 정보는 불완전한 데이터 사전 정보가 있는 데이터베이스로부터 확장될 수 있고 SQL 검토 대상이 보다 명확해지고 SQL 검토의 정확성이 효율적으로 향상될 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따르면, 미리 설정된 검토 템플릿의 검토 항목에 따라 파싱된 결과 및/또는 기본 정보를 하나씩 검토하여 검토 결과를 얻는 단계(S240)는 단계(S302) 및 단계(S304)을 포함한다.
단계(S302)에서, 검토 결과를 획득하기 위해 상기 기본 정보에서 실행 계획 검토 템플릿의 검토 항목과 매치되는 데이터가 상기 검토 항목에 따라 하나씩 추출되고 검토된다.
미리 설정된 검토 템플릿에는 실행 계획 검토 템플릿과 SQL 문법 검토 템플릿이 포함될 수 있다. 실행 계획 검토 템플릿은 SQL 문장의 실행 계획을 검토하도록 구성된다. 실행 계획 검토 템플릿의 검토 항목에는 저속 쿼리, 고비용 작업 등과 같은 항목이 포함될 수 있다. 저속 쿼리의 검토 내용은 SQL 문장의 실행 시간이 미리 설정된 실행 시간보다 긴지 여부를 확인, 예를 들어 실행 시간이 1초보다 긴지 여부를 확인하는 것이다. 검토 내용의 고비용 작업은 SQL 문장에 높은 비용 작업이 있는지 여부를 결정하는 것, 예를 들어 Seq 스캔(시퀀스 스캔), 전체 테이블 스캔 등과 같은 작업이 있는지 여부를 결정하는 것이다. 실행 계획 검토 템플릿의 검토 항목에 의해 검토된 내용은 일반적으로 SQL 문장과 매치되는 기본 정보로부터 획득된다. 예를 들어, 검토 실행 시간이 미리 설정된 실행 시간보다 긴지 여부를 판단하기 위해서는, 상기 기본 정보로부터 실행 횟수와 전체 실행 시간을 획득하여 평균 값, 즉 실행 시간을 획득할 필요가 있다. 비용이 많이 드는 작업을 검토하려면 기본 정보에서 실행 작업을 획득할 필요가 있다. 각 검토 항목은 고유한 검토 항목 번호를 가진다. 검토가 통과되지 않으면, 통과되지 못한 검토 항목 번호는 기록될 수 있다.
단계(S304)에서, 검토 결과를 획득하기 위해 파싱된 결과는 SQL 문법 검토 템플릿의 검토 항목에 따라 하나씩 문법적으로 분석되고, 파싱된 결과 및/또는 기본 정보는 분석된 결과에 따라 검토된다.
SQL 문법 검토 템플릿은 SQL 문장 자체의 구문과 의미를 검토하도록 구성된다. SQL 문법 검토 템플릿의 검토 항목은 "select *"사용을 금지하는 것, 쿼리 절 반복을 금지하는 것, order by 절을 사용하는 것을 금지하면서 업데이트하는 것, where 절을 반드시 사용하는 동안 업데이트하는 것, select 절의 중첩을 금지하는 것, where 절을 반드시 사용하는 동안 삭제하는 것, order by 절을 금지하는 동안 삭제하는 것, 제한 절 등을 사용하는 것을 금지하는 동안 삭제하는 것을 포함할 수 있다. 쿼리 절 반복을 금지하는 검토 항목은 SQL 문장의 실행 효율성을 향상시킬 수 있다. Order By 절의 사용을 금지하는 동안 업데이트를 검토하는 항목, Order By 절을 금지하는 동안 삭제를 검토하는 항목 및 제한절의 사용을 금지하는 동안 삭제를 검토하는 항목은 DML (Data Manipulation Language) 과정에서 불필요한 순서 지정을 방지할 수 있다. where 절을 반드시 사용하면서 업데이트를 검토하는 항목, where 절을 반드시 사용하면서 삭제를 검토하는 항목은 DML 프로세스에서 전체 테이블 잠금을 방지할 수 있다. SQL 트리 파싱된 결과는 검토 결과를 얻기 위해 SQL 문법 검토 템플릿의 각 검토 항목에 따라 분석되고 검토된다.
미리 설정된 검토 템플릿의 각 검토 항목은 검토된 SQL 문장의 점수를 매기는 다른 검토 값에 대응할 수 있다. 검토 항목이 통과되지 않으면, 통과되지 않은 검토 항목에 대응하는 검토 값은 SQL 문장의 전체 검토 값에서 차감된다. 검토가 완료되면, 최종 검토 값이 획득될 수 있다. SQL 문장을 채점하면 SQL 문장의 성능이 좋은지 또는 나쁜지를 명확하게 알 수 있다. 예를 들어, 실행 계획 검토 템플릿에서 저속 쿼리와 높은 비용 작업에 대응하는 검토 데이터는 각각 1 포인트와 2 포인트이다. SQL 문장의 전체 검토 값은 100 포인트이다. SQL 문장이 저속 쿼리의 검토 항목을 충족시키지 못하면 1 포인트가 차감되고, 최종 검토 값은 99 포인트가 된다.
본 실시예에서, SQL 문장을 파싱하여 얻어진 파싱된 결과 및/또는 SQL 문장과 매치되는 기본 정보는 실행 계획 검토 템플릿 및 SQL 문법 검토 템플릿에 따라 하나씩 검토된다. 불완전한 데이터 사전 정보가 있는 데이터베이스의 SQL는 보다 심도 있게 검토될 수 있으므로, SQL 검토의 대상이 보다 명확해지고 SQL 검토의 정확성이 효과적으로 향상될 수 있다.
도 4를 참조하면, 일 실시예에서, 상기 방법은 검토 결과에 따라 검토 결과 집합을 생성하는 단계(S250) 이후에, 다음 단계를 더 포함한다.
단계(S402)에서, SQL베이스 라인을 구축하기 위해 검토 결과가 통과되지 않은 SQL 문장은 상기 검토 결과 집합에서 추출된다.
SQL베이스 라인은 검토 결과가 통과되지 않은 SQL 문장에 관련된 데이터 및 상태 변경 프로세스를 기록하도록 구성된다. SQL베이스 라인은 SQL 문장 내용, SQL 번호, 데이터베이스 이름, 사용자 이름, 검토 결과가 통과되지 않은 검토 항목 번호, 검토 상태 등을 포함할 수 있다. SQL베이스 라인이 구축되면, 검토 상태는 비-통과 상태일 수 있다. 데이터베이스 관리자가 SQL 문장을 수정하면, 검토 상태를 통과 상태로 수정될 수 있다.
도 5를 참조하면, 일 실시예에서, SQL베이스 라인을 구축하기 위해 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계(S402)는 다음과 단계를 포함한다.
단계(S502)에서, 검토 결과가 통과되지 않은 SQL 문장이 검토 결과 집합에서 추출된다.
단계(S504)에서, 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 통과되지 않은 검토 항목 번호가 획득된다.
서버는 SQL베이스 라인을 구축하기 위해 검토 결과 집합에서 검토 결과가 통과되지 않은 SQL 문장을 추출하고, 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 SQL 문장 내용, 데이터베이스 이름, 사용자 이름, 검토되지 않은 검토 항목 번호 및 기타 정보 등을 획득할 수 있다.
단계(S506)에서, SQL 번호 및 통과되지 않은 검토 항목 번호에 따라 매치되는 SQL 베이스 라인이 존재하는 지 여부가 결정된다. "예(존재하는 경우)"라면, 단계(S508)이 수행되고, "아니오(존재하지 않는 경우)"라면, 단계(S510)이 수행된다.
SQL 문장의 각 통과되지 않은 검토 항목은 고유한 SQL베이스 라인에 대응할 수 있다. 즉, 각 SQL 베이스 라인은 고유한 대응 SQL 번호와 통과되지 않은 검토 항목 번호를 가진다. SQL 문장의 복수의 통과되지 않은 검토 항목이 있는 경우, 복수의 대응하는 SQL 베이스 라인을 구축할 필요가 있다. 서버가 검토 결과 집합에서 검토 결과가 통과되지 않은 SQL 문장을 추출한 후, SQL 번호 및 통과되지 않은 검토 항목 번호를 획득한다. 서버는 상기 SQL 번호에 따라 검토 데이터베이스에 대응하는SQL 베이스 라인이 존재하는 지 여부를 먼저 검색할 수 있다. 존재하는 경우, SQL 번호에 대응하는 SQL 베이스 라인으로부터 검토 항목 번호와 매치되는 SQL 베이스 라인이 존재하는 지 여부를 더 검색한다. 존재하는 경우, SQL베이스 라인을 다시 구축할 필요가 없으며, 매치된 SQL베이스 라인의 검토 상태를 비-통과 상태로 수정하면 된다.
단계(S508)에서, SQL베이스 라인의 상태는 비-통과 상태로 표시된다.
단계(S510)에서, SQL베이스 라인은 SQL 번호 및 통과되지 않은 검토 항목 번호에 따라 구축된다.
상기 SQL 번호와 통과되지 않는 검토 항목 번호와 매칭되는 SQL 베이스 라인이 존재하지 않는 경우, SQL 번호 및 통과되지 않은 검토 항목 번호에 따라 검토 데이터베이스에 SQL 베이스라인이 구축되고, SQL 베이스라인의 검토 상태가 비-통과로 표시된다.
단계(S404)에서, SQL 검토 데이터를 획득하기 위해 SQL베이스 라인이 분석되고, SQL 검토 데이터가 표시된다.
일 실시예에서, 서버는 SQL의 검토 데이터를 획득하기 위해 새로 구축된 SQL베이스 라인을 추출할 수 있다. 또는 서버는 미리 설정된 시간 동안 검토 데이터베이스로부터 사전 설정된 시간 간격, 예를 들어 한 시간 간격, 세시간 간격 등의 간격에서 비-통과로 상태를 표시된 베이스 라인을 추출할 수 있다. SQL 검토 데이터는 SQL 문장 내용, SQL 번호, 데이터베이스 이름, 사용자 이름, 검토 결과가 통과되지 않은 검토 항목 번호 및 기타 내용이 포함될 수 있다. SQL 검토 데이터는 단말에 의해 표시될 수 있다. 데이터베이스 관리자는 표시된 SQL 검토 데이터에 따라 검토 항목을 준수하도록 SQL 문장을 수정할 수 있다. 수정이 완료되면, 수정된 결과에 따라 SQL 베이스 라인의 검토 상태는 조정될 수 있다. 검토 결과가 통과되지 않은 SQL 문장의 검토 항목이 수정된 경우, 수정된 검토 항목 번호와 매치되는 SQL 베이스 라인의 검토 상태는 통과된 것으로 표시될 수 있다. 다른 실시예에서, 베이스 라인 리포트는 시간 주기에 따라 생성될 수 있으며, 예를 들어 베이스 라인 일일 리포트가 생성 및 베이스 라인 월별 리포트가 생성될 수 있다. 새로 생성된 모든 SQL베이스 라인과 검토 상태가 수정된 SQL베이스 라인은 해당 기간 동안 베이스 라인 리포트에 기록되므로, 데이터베이스 관리자는 검토 데이터베이스에서 SQL베이스 라인의 변경 사항을 편리하게 이해할 수 있다.
본 실시예에서, 검토 결과가 통과되지 않은 SQL 문장은 SQL베이스 라인을 구축하기 위해 검토 결과 집합에서 추출되기에, 데이터베이스 관리자는 검토 결과가 데이터베이스에서 통과되지 않은 SQL 문장을 수정하는 것이 편리해진다. 이에 따라 SQL 검토 작업의 효율성이 향상되고 데이터베이스의 데이터 처리 성능이 향상될 수 있다.
도 6을 참조하면, 일 실시예에서, SQL 검토 장치가 제공된다. 상기 장치는 획득 모듈(610), 추출 모듈(620), 파싱 모듈(630), 검토 모듈(640) 및 생성 모듈(650)을 포함한다.
획득 모듈 (610)은 저속 로그 데이터를 획득하도록 구성된다.
서버는 MySQL, Postgres 및 기타 대상 데이터베이스와 같이 불완전한 데이터 사전 정보가 있는 대상 데이터베이스로부터 외부 연결 테이블을 통해 저속 로그 데이터를 얻을 수 있다. 여기서 저속 로그 데이터는 저속 쿼리 로그 데이터를 나타낸다. 데이터베이스에서 지정된 시간을 초과하는 SQL 문장 쿼리를 "저속 쿼리”라고 한다. 저속 로그 데이터는 지정된 시간을 초과하는 SQL 문장을 기록하고, 로그 시간, 저장 위치, 실행 시간, 실행자 번호 등과 같은 SQL 문장이 실행될 때 생성되는 관련 데이터를 기록한다.
추출 모듈(620)은 검토될 SQL 문장과 SQL 문장과 매치되는 기본 정보를 저속 로그 데이터로부터 추출하도록 구성된다.
서버는 검토될 SQL 문장 및 획득된 저속 로그 데이터로부터 SQL 문장을 검토하는 데 필요한 검토될 SQL 문장과 매치되는 기본 정보를 추출할 수 있다. 기본 정보는 미리 설정된 검토 템플릿의 검토 항목에 따라 추출될 수 있다. 기본 정보는 실행 횟수, 총 실행 시간, 실행 동작, 실행 비용 등을 포함할 수 있다. 저속 로그 데이터로부터 검토될 SQL 문장을 추출함으로써, SQL 문장은 필터링된다. 우수한 성능의 SQL 문장은 SQL 문장의 실행 시간에 따라 필터링된다. 지정된 시간을 초과하는 성능 저하 SQL 문장이 검토된다.
도 7을 참조하면, 일 실시예에서, 검출 모듈(620)은 리스트 생성 유닛(622) 및 정보 추출 유닛(624)을 포함한다.
리스트 생성 유닛(622)은 저속 로그 데이터를 미리 설정된 포맷에 따라 분석하고 저속 로그 데이터 리스트를 생성하도록 구성된다.
서버는 저속 로그 데이터를 분석하고 미리 설정된 포맷에 따라 저속 로그 데이터에서 데이터를 추출할 수 있다. 미리 설정된 포맷은 실제 요구 사항에 따라 설정될 수 있다. 예를 들어, 미리 설정된 포맷이 필드 이름, 필드 타입 및 필드 내용을 포함할 수 있는 경우, 필드 이름에 해당하는 각 필드 이름, 필드 타입 및 필드 내용이 저속 로그 데이터에서 추출된다. 저속 로그 데이터 리스트는 미리 설정된 포맷에 따라 저속 로그 데이터로부터 추출된 데이터로부터 생성될 수 있다. 저속 로그 데이터 리스트의 포맷 내용은 미리 설정된 포맷 및 추출된 데이터에 대응한다. 예를 들어, 저속 로그 데이터 리스트는 표 1과 같이 표시 될 수 있다. 여기서, log_time은 로그 시간, user_name은 사용자 이름, database_name은 데이터베이스 이름, userid는 사용자 번호, calls는 실행 번호, total_time은 전체 실행 시간을 나타낸다. 저속 로그 데이터 리스트의 내용 및 포맷은 표 1에 도시된 내용 및 포맷으로 제한되는 것은 아니다.
정보 추출 유닛(624)은 저속 로그 데이터 리스트의 필드 이름에 따라 검토될 SQL 문장과 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터 리스트에서 추출하도록 구성된다.
서버는 저속 로그 데이터 목록에서 필드 이름 "query"를 추출할 수 있다. 즉, 필드 이름은 실행된 문장의 필드 내용에 대해 검토될 SQL 문장으로 사용된다. SQL 문장과 매치되는 해당 기본 정보는 미리 설정된 검토 템플릿의 검토 항목에 따라 저속 로그 데이터 리스트에서 추출된다. 예를 들어, 미리 설정된 검토 템플릿의 검토 항목에 실행 시간이 포함되어 있으면, SQL 문장과 매치되는 기본 정보인 저속 로그 데이터 리스트에서 필드 내용 "total_time" 및 필드 내용 "calls"이 추출된다.
파싱 모듈(630)은 파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하도록 구성된다.
서버는 검토 템플릿에 의해 식별될 수 있는 파싱된 결과를 획득하도록 저속 로그 데이터에서 추출된 SQL 문장을 식별하고 파싱할 수 있다. 실시예에서, SQL 문장을 파싱한 후에 SQL 트리 파싱된 결과가 획득되고, 이는 검토 템플릿의 검토 항목에 따라 파싱된 결과를 검토하는 것을 용이하게 할 수 있다.
검토 모듈(640)은 검토 결과를 획득하기 위해 파싱된 결과 및/또는 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하도록 구성된다.
미리 설정된 검토 템플릿은 실행 계획 검토 템플릿과 SQL 문법 검토 템플릿이 포함될 수 있다. 실행 계획 검토 템플릿은 SQL 문장의 실행 계획을 검토하도록 구성된다. 데이터베이스에서 SQL 문장은 예상되는 데이터를 나타내지만, 예상되는 데이터를 획득하는 방법을 나타내지는 않는다. 예를 들어, SQL 문장에 의해 심천시(Shenzhen City)에 사는 모든 고객은 추출될 수 있다. 서버의 데이터베이스가 이러한 SQL을 수신하면, 계산에 통해 데이터베이스는 데이터를 획득하기 위해 전체 고객 테이블을 읽는 것 또는 색인을 사용하는 것을 선택한다. 최종적으로, 물리적으로 SQL 문장을 실행하는 방법은 실행 계획으로 명칭된다. 실행 계획 검토 템플릿의 검토 항목에는 저속 쿼리, 높은 비용의 작업 등이 포함될 수 있다. SQL 문법 검토 템플릿은 SQL 문장 자체의 구문과 의미를 검토하도록 구성된다. SQL 문법 검토 템플릿의 검토 항목은 쿼리 절을 반복하지 못하게 하는 것, " select *"와 같은 표시를 금지하는 것을 포함할 수 있다. 서버는 검토 결과를 얻기 위해 미리 설정된 검토 템플릿의 검토 항목에 따라 파싱된 결과 및/또는 기본 정보를 하나씩 검토할 수 있다. 검토 템플릿의 검토 항목이 만족스럽지 않으면 검토는 통과되지 않고, 검토 템플릿의 모든 검토 항목이 충족되면 검토가 통과된다.
생성 모듈(650)은 검토 결과에 따라 검토 결과 집합을 생성하도록 구성된다.
서버는 상기 저속 로그 데이터로부터 추출된 각 SQL 문장과 매칭되는 기본 정보 및 복수의 SQL 문장을 검토하고, 상기 검토 결과에 따라 상기 검토 결과 집합을 생성할 수 있다. 상기 검토 결과 집합은 검토된 SQL 문장의 SQL 번호, 데이터베이스 이름, 실행 시간, 명령 유형, 검토 상태, 불법 항목 등을 포함할 수 있다. 상기 검토 결과 세트는 상기 검토 데이터베이스에 저장되고, 상기 검토 상태는 상기 검토 결과를 표시한다. 숫자 "0", "1" 및 기타 숫자 또는 기타 문자, 기호 등은 검토 결과의 통과 여부를 나타낼 수 있다.
상술한 SQL 검토 방법은 검토될 SQL 문장과 SQL 문장과 매치되는 기본 정보를 저속 로그 데이터로부터 추출하고, SQL 문장과 SQL 문장과 매치되는 기본 정보를 파싱하여 획득된 파싱된 결과를 검토한다. 저속 로그 데이터를 마이닝하고, 분석함으로써, SQL 딥 검토에 의해 수행될 수 있는 SQL 문장과 SQL 문장과 매치되는 기본 정보는 불완전한 데이터 사전 정보가 있는 데이터베이스로부터 확장될 수 있고 SQL 검토 대상이 보다 명확해지고 SQL 검토의 정확성이 효율적으로 향상될 수 있다.
일 실시예에서, 검토 모듈(640)은 검토 결과를 획득하기 위해 상기 기본 정보에서 실행 계획 검토 템플릿의 검토 항목과 매치되는 데이터를 상기 검토 항목에 따라 하나씩 추출하고 검토하도록 더 구성된다.
미리 설정된 검토 템플릿에는 실행 계획 검토 템플릿과 SQL 문법 검토 템플릿이 포함될 수 있다. 실행 계획 검토 템플릿은 SQL 문장의 실행 계획을 검토하도록 구성된다. 실행 계획 검토 템플릿의 검토 항목에는 저속 쿼리, 고비용 작업 등과 같은 항목이 포함될 수 있다. 저속 쿼리의 검토 내용은 SQL 문장의 실행 시간이 미리 설정된 실행 시간보다 긴지 여부를 확인, 예를 들어 실행 시간이 1초보다 긴지 여부를 확인하는 것이다. 검토 내용의 고비용 작업은 SQL 문장에 높은 비용 작업이 있는지 여부를 결정하는 것, 예를 들어 Seq 스캔(시퀀스 스캔), 전체 테이블 스캔 등과 같은 작업이 있는지 여부를 결정하는 것이다. 실행 계획 검토 템플릿의 검토 항목에 의해 검토된 내용은 일반적으로 SQL 문장과 매치되는 기본 정보로부터 획득된다. 예를 들어, 검토 실행 시간이 미리 설정된 실행 시간보다 긴지 여부를 판단하기 위해서는, 상기 기본 정보로부터 실행 횟수와 전체 실행 시간을 획득하여 평균 값, 즉 실행 시간을 획득할 필요가 있다. 비용이 많이 드는 작업을 검토하려면 기본 정보에서 실행 작업을 획득할 필요가 있다. 각 검토 항목은 고유한 검토 항목 번호를 가진다. 검토가 통과되지 않으면, 통과되지 못한 검토 항목 번호는 기록될 수 있다.
검토 모듈(640)은 검토 결과를 획득하기 위해 파싱된 결과를 SQL 문법 검토 템플릿의 검토 항목에 따라 하나씩 문법적으로 분석하고, 파싱된 결과 및/또는 기본 정보를 분석된 결과에 따라 검토하도록 구성된다.
SQL 문법 검토 템플릿은 SQL 문장 자체의 구문과 의미를 검토하도록 구성된다. SQL 문법 검토 템플릿의 검토 항목은 "select *"사용을 금지하는 것, 쿼리 절 반복을 금지하는 것, order by 절을 사용하는 것을 금지하면서 업데이트하는 것, where 절을 반드시 사용하는 동안 업데이트하는 것, select 절의 중첩을 금지하는 것, where 절을 반드시 사용하는 동안 삭제하는 것, order by 절을 금지하는 동안 삭제하는 것, 제한 절 등을 사용하는 것을 금지하는 동안 삭제하는 것을 포함할 수 있다. 쿼리 절 반복을 금지하는 검토 항목은 SQL 문장의 실행 효율성을 향상시킬 수 있다. Order By 절의 사용을 금지하는 동안 업데이트를 검토하는 항목, Order By 절을 금지하는 동안 삭제를 검토하는 항목 및 제한절의 사용을 금지하는 동안 삭제를 검토하는 항목은 DML(Data Manipulation Language) 과정에서 불필요한 순서 지정을 방지할 수 있다. where 절을 반드시 사용하는 동안 업데이트를 검토하는 항목, where 절을 반드시 사용하는 동안 삭제를 검토하는 항목은 DML 프로세스에서 전체 테이블 잠금을 방지할 수 있다. SQL 트리 파싱된 결과는 검토 결과를 얻기 위해 SQL 문법 검토 템플릿의 각 검토 항목에 따라 분석되고 검토된다.
미리 설정된 검토 템플릿의 각 검토 항목은 검토된 SQL 문장의 점수를 매기는 다른 검토 값에 대응할 수 있다. 검토 항목이 통과되지 않으면, 통과되지 않은 검토 항목에 대응하는 검토 값은 SQL 문장의 전체 검토 값에서 차감된다. 검토가 완료되면, 최종 검토 값이 획득될 수 있다. SQL 문장을 채점하면 SQL 문장의 성능이 좋은지 또는 나쁜지를 명확하게 알 수 있다. 예를 들어, 실행 계획 검토 템플릿에서 저속 쿼리와 높은 비용 작업에 대응하는 검토 데이터는 각각 1 포인트와 2 포인트이다. SQL 문장의 전체 검토 값은 100 포인트이다. SQL 문장이 저속 쿼리의 검토 항목을 충족시키지 못하면 1 포인트가 차감되고, 최종 검토 값은 99 포인트가 된다.
본 실시예에서, SQL 문장을 파싱하여 얻어진 파싱된 결과 및/또는 SQL 문장과 매치되는 기본 정보는 실행 계획 검토 템플릿 및 SQL 문법 검토 템플릿에 따라 하나씩 검토된다. 불완전한 데이터 사전 정보가 있는 데이터베이스의 SQL는 보다 심도 있게 검토될 수 있으므로, SQL 검토의 대상이 보다 명확해지고 SQL 검토의 정확성이 효과적으로 향상될 수 있다.
도 8을 참조하면, 일 실시예에서, 획득 모듈(610), 추출 모듈(620), 파싱 모듈(630), 검토 모듈(640) 및 생성 모듈(650) 이외에, SQL 검토 장치는 구축 모듈(660) 및 표시 모듈(670)을 더 포함한다.
구축 모듈(660)은 SQL베이스 라인을 구축하기 위해 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하도록 구성된다.
SQL베이스 라인은 검토 결과가 통과되지 않은 SQL 문장에 관련된 데이터 및 상태 변경 프로세스를 기록하도록 구성된다. SQL베이스 라인은 SQL 문장 내용, SQL 번호, 데이터베이스 이름, 사용자 이름, 검토 결과가 통과되지 않은 검토 항목 번호, 검토 상태 등을 포함할 수 있다. SQL베이스 라인이 구축되면, 검토 상태는 비-통과 상태일 수 있다. 데이터베이스 관리자가 SQL 문장을 수정하면, 검토 상태를 통과 상태로 수정될 수 있다.
도 9에 도시된 바와 같이, 일 실시예에서, 구축 모듈(620)은 문장 추출 유닛(662), 획득 유닛(664) 및 결정 유닛(666)을 포함한다.
문장 추출 유닛(662)은 검토 결과 집합에서 검토 결과가 통과되지 않은 SQL 문장을 추출하도록 구성된다.
획득 유닛(664)은 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 통과되지 않은 검토 항목 번호를 획득하도록 구성된다.
서버는 SQL베이스 라인을 구축하기 위해 검토 결과 집합에서 검토 결과가 통과되지 않은 SQL 문장을 추출하고, 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 SQL 문장 내용, 데이터베이스 이름, 사용자 이름, 검토되지 않은 검토 항목 번호 및 기타 정보 등을 획득할 수 있다.
결정 유닛(666)은 SQL 번호 및 통과되지 않은 검토 항목 번호에 따라 매치되는 SQL 베이스 라인이 존재하는 지 여부를 결정한다. "예(존재하는 경우)"라면 SQL 베이스 라인의 상태를 비-통과 상태로 표시한다. "아니오(존재하지 않는 경우)"라면 SQL 번호 및 통과되지 않은 검토 항목 번호에 따라 SQL 베이스 라인을 구축한다.
SQL 문장의 각 통과되지 않은 검토 항목은 고유한 SQL베이스 라인에 대응할 수 있다. 즉, 각 SQL 베이스 라인은 고유한 대응 SQL 번호와 통과되지 않은 검토 항목 번호를 가진다. SQL 문장의 복수의 통과되지 않은 검토 항목이 있는 경우, 복수의 대응하는 SQL 베이스 라인을 구축할 필요가 있다. 서버가 검토 결과 집합에서 검토 결과가 통과되지 않은 SQL 문장을 추출한 후, SQL 번호 및 통과되지 않은 검토 항목 번호를 획득한다. 서버는 상기 SQL 번호에 따라 검토 데이터베이스에 대응하는 SQL 베이스 라인이 존재하는 지 여부를 먼저 검색할 수 있다. 존재하는 경우, SQL 번호에 대응하는 SQL 베이스 라인으로부터 검토 항목 번호와 매치되는 SQL 베이스 라인이 존재하는 지 여부를 더 검색한다. 존재하는 경우, SQL베이스 라인을 다시 구축할 필요가 없으며, 매치된 SQL베이스 라인의 검토 상태를 비-통과 상태로 수정하면 된다.
표시 모듈(670)은 SQL 검토 데이터를 획득하기 위해 SQL베이스 라인을 분석하고, SQL 검토 데이터를 표시하도록 구성된다.
서버는 SQL의 검토 데이터를 획득하기 위해 새로 구축된 SQL베이스 라인을 추출할 수 있다. 또는 서버는 미리 설정된 시간 동안 검토 데이터베이스로부터 사전 설정된 시간 간격, 예를 들어 한 시간 간격, 세시간 간격 등의 간격에서 비-통과로 상태를 표시된 베이스 라인을 추출할 수 있다. SQL 검토 데이터는 SQL 문장 내용, SQL 번호, 데이터베이스 이름, 사용자 이름, 검토 결과가 통과되지 않은 검토 항목 번호 및 기타 내용이 포함될 수 있다. SQL 검토 데이터는 단말에 의해 표시될 수 있다. 데이터베이스 관리자는 표시된 SQL 검토 데이터에 따라 검토 항목을 준수하도록 SQL 문장을 수정할 수 있다. 수정이 완료되면, 수정된 결과에 따라 SQL 베이스 라인의 검토 상태는 조정될 수 있다. 검토 결과가 통과되지 않은 SQL 문장의 검토 항목이 수정된 경우, 수정된 검토 항목 번호와 매치되는 SQL 베이스 라인의 검토 상태는 통과된 것으로 표시될 수 있다. 다른 실시예에서, 베이스 라인 리포트는 시간 주기에 따라 생성될 수 있으며, 예를 들어 베이스 라인 일일 리포트가 생성 및 베이스 라인 월별 리포트가 생성될 수 있다. 새로 생성된 모든 SQL베이스 라인과 검토 상태가 수정된 SQL베이스 라인은 해당 기간 동안 베이스 라인 리포트에 기록되므로, 데이터베이스 관리자는 검토 데이터베이스에서 SQL베이스 라인의 변경 사항을 편리하게 이해할 수 있다.
본 실시예에서, 검토 결과가 통과되지 않은 SQL 문장은 SQL베이스 라인을 구축하기 위해 검토 결과 집합에서 추출되기에, 데이터베이스 관리자는 검토 결과가 데이터베이스에서 통과되지 않은 SQL 문장을 수정하는 것이 편리해진다. 이에 따라 SQL 검토 작업의 효율성이 향상되고 데이터베이스의 데이터 처리 성능이 향상될 수 있다.
SQL을 검토하는 전술한 장치 내의 각각의 모듈은 소프트웨어, 하드웨어 및 이들의 조합에 의해 전체적으로 또는 부분적으로 구현될 수 있다. 예를 들어, 하드웨어 구현 시 디스플레이 모듈(670)은 서버의 네트워크 인터페이스를 통해 단말로 SQL 검토 데이터를 전송할 수 있고, 단말은 SQL 리뷰 데이터를 표시할 수 있다. 검토 모듈 (640)은 미리 설정된 검토 템플릿의 검토 항목에 따라 서버의 프로세서에 의해 하나씩 파싱된 결과 및/또는 기본 정보를 검토할 수 있다. 상기 프로세서는 중앙 처리 장치(CPU), 마이크로 프로세서 등 일 수 있다. 전술한 각 모듈은 하드웨어의 형태로 서버의 프로세서에 내장되거나 독립적일 수 있거나, 또는 소프트웨어의 형태로 서버의 ROM에 저장될 수 있다. 프로세서는 전술한 각 모듈에 의해 수행되는 명령을 호출한다.
컴퓨터 프로그램에 의해 지시된 관련 하드웨어에 의해 전술한 실시예의 방법의 프로세스의 전부 또는 일부가 달성될 수 있음은 당업자에게 이해될 수 있다. 컴퓨터 프로그램은 컴퓨터 판독 가능 저장 장치에 저장될 수 있다. 프로그램이 실행될 때, 전술한 각각의 방법의 실시예 흐름이 포함될 수 있다. 저장 장치는 자기 디스크, 광 디스크, 판독 전용 메모리(ROM)일 수 있다.
상기 실시예의 다른 기술적 특징은 간결성을 목적으로 기술되지 않은 다양한 조합을 가질 수 있다. 그럼에도 불구하고, 상이한 기술적 특징들의 결합이 서로 충돌하지 않는 한, 그러한 모든 조합은 개시의 범위 내에 있는 것으로 간주되어야 한다.
상기 구현예는 본 발명의 특정 실시예일뿐이며, 본 발명의 보호 범위를 제한하려는 것은 아니다. 본 게시물에 개시된 기술적 범위 내에서 당업자에 의해 용이하게 이해되는 임의의 변형 또는 대체는 모두 본 개시 내용의 보호 범위에 속한다는 것을 알아야 한다. 따라서, 본 개시 내용의 보호 범위는 청구 범위의 보호 범위를 따라야 한다.
610: 획득 모듈
620: 추출 모듈
622: 리스트 생성 유닛
624: 정보 추출 유닛
630: 파싱 모듈
640: 검토 모듈
650: 생성 모듈
660: 구축 모듈
662: 문장 추출 유닛
664: 획득 유닛
666: 결정 유닛
670: 표시 모듈

Claims (20)

  1. 적어도 하나의 프로세서를 사용하는 컴퓨터-구현된 SQL 검토 방법으로,
    상기 방법은:
    저속 로그 데이터를 획득하는 단계;
    검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계;
    파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계;
    검토 결과를 획득하기 위해 상기 파싱된 결과 또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계;
    상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계;
    SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계; 및
    SQL 검토 데이터를 획득하기 위해 상기 SQL베이스 라인을 분석하고, 상기 SQL 검토 데이터를 표시하는 단계를 포함하고,
    상기 SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계는,
    상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계;
    상기 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 통과되지 않은 검토 항목 번호를 획득하는 단계; 및
    상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 매치되는 SQL 베이스 라인이 존재하는 지 여부가 결정하는 단계로서, 상기 매치되는 SQL 베이스 라인이 존재하는 경우 SQL베이스 라인의 상태는 비-통과 상태로 표시되고, 상기 매치되는 SQL 베이스 라인이 존재하지 않는 경우 상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 SQL베이스 라인을 구축하는, 결정하는 단계를 포함하는 SQL 검토 방법.
  2. 제1 항에 있어서,
    상기 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계는,
    미리 설정된 포맷에 따라 상기 저속 로그 데이터를 분석하고 저속 로그 데이터 리스트를 생성하는 단계; 및
    상기 저속 로그 데이터 리스트의 필드 이름에 따라 상기 검토될 SQL 문장과 상기 SQL 문장과 매치되는 상기 기본 정보를 상기 저속 로그 데이터 리스트에서 추출하는 단계를 포함하는 SQL 검토 방법.
  3. 제1 항에 있어서,
    상기 미리 설정된 검토 템플릿은 실행 계획 검토 템플릿을 포함하고,
    상기 검토 결과를 획득하기 위해 상기 파싱된 결과 또는 상기 기본 정보를 상기 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계는,
    상기 검토 결과를 획득하기 위해, 상기 기본 정보에서 상기 실행 계획 검토 템플릿의 검토 항목과 매치되는 데이터를 상기 검토 항목에 따라 하나씩 추출하고 검토하는 단계를 포함하는 SQL 검토 방법.
  4. 제1 항 또는 제3 항에 있어서,
    상기 미리 설정된 검토 템플릿은 SQL 문법 검토 템플릿을 포함하고,
    상기 검토 결과를 획득하기 위해 상기 파싱된 결과 또는 상기 기본 정보를 상기 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계는,
    상기 검토 결과를 획득하기 위해, 상기 파싱된 결과를 상기 SQL 문법 검토 템플릿의 검토 항목에 따라 하나씩 문법적으로 분석하고, 상기 파싱된 결과 또는 상기 기본 정보를 상기 분석된 결과에 따라 검토하는 단계를 포함하는 SQL 검토 방법.
  5. 저속 로그 데이터를 획득하도록 구성되는 획득 모듈;
    검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하도록 구성되는 추출 모듈;
    파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하도록 구성되는 파싱 모듈;
    검토 결과를 획득하기 위해 상기 파싱된 결과 또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하도록 구성되는 검토 모듈;
    상기 검토 결과에 따라 검토 결과 집합을 생성하는 생성 모듈;
    SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 구축 모듈; 및
    SQL 검토 데이터를 획득하기 위해 상기 SQL베이스 라인을 분석하고, 상기 SQL 검토 데이터를 표시하는 표시 모듈을 포함하고,
    상기 구축 모듈은:
    상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 문장 추출 유닛;
    상기 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 통과되지 않은 검토 항목 번호를 획득하는 획득 유닛; 및
    상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 매치되는 SQL 베이스 라인이 존재하는 지 여부가 결정하는 결정 유닛으로, 상기 매치되는 SQL 베이스 라인이 존재하는 경우 SQL베이스 라인의 상태는 비-통과 상태로 표시되고, 상기 매치되는 SQL 베이스 라인이 존재하지 않는 경우 상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 SQL베이스 라인을 구축하는, 결정 유닛을 포함하는 SQL 검토 장치.
  6. 프로세서 및 상기 프로세서에 의해 실행될 때 상기 프로세서가 단계들을 수행하게 하는 명령을 저장하는 메모리를 포함하는 서버로서, 상기 단계들은,
    저속 로그 데이터를 획득하는 단계;
    검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계;
    파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계;
    검토 결과를 획득하기 위해 상기 파싱된 결과 또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계;
    상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계;
    SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계; 및
    SQL 검토 데이터를 획득하기 위해 상기 SQL베이스 라인을 분석하고, 상기 SQL 검토 데이터를 표시하는 단계를 포함하고,
    상기 SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계는,
    상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계;
    상기 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 통과되지 않은 검토 항목 번호를 획득하는 단계; 및
    상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 매치되는 SQL 베이스 라인이 존재하는 지 여부가 결정하는 단계로서, 상기 매치되는 SQL 베이스 라인이 존재하는 경우 SQL베이스 라인의 상태는 비-통과 상태로 표시되고, 상기 매치되는 SQL 베이스 라인이 존재하지 않는 경우 상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 SQL베이스 라인을 구축하는, 결정하는 단계를 포함하는 서버.
  7. 제6 항에 있어서,
    상기 검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계는,
    미리 설정된 포맷에 따라 상기 저속 로그 데이터를 분석하고 저속 로그 데이터 리스트를 생성하는 단계; 및
    상기 저속 로그 데이터 리스트의 필드 이름에 따라 상기 검토될 SQL 문장과 상기 SQL 문장과 매치되는 상기 기본 정보를 상기 저속 로그 데이터 리스트에서 추출하는 단계를 포함하는 서버.
  8. 컴퓨터 판독 가능 명령을 저장하는 적어도 하나의 비 일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 단계들을 수행하도록 하며, 상기 단계들은,
    저속 로그 데이터를 획득하는 단계;
    검토될 SQL 문장과 상기 SQL 문장과 매치되는 기본 정보를 상기 저속 로그 데이터로부터 추출하는 단계;
    파싱된 결과를 획득하기 위해 상기 SQL 문장을 식별하고 파싱하는 단계;
    검토 결과를 획득하기 위해 상기 파싱된 결과 또는 상기 기본 정보를 미리 설정된 검토 템플릿의 검토 항목에 따라 하나씩 검토하는 단계;
    상기 검토 결과에 따라 검토 결과 집합을 생성하는 단계;
    SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계; 및
    SQL 검토 데이터를 획득하기 위해 상기 SQL베이스 라인을 분석하고, 상기 SQL 검토 데이터를 표시하는 단계를 포함하고,
    상기 SQL베이스 라인을 구축하기 위해 상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계는,
    상기 검토 결과가 통과되지 않은 SQL 문장을 상기 검토 결과 집합에서 추출하는 단계;
    상기 검토 결과가 통과되지 않은 SQL 문장의 SQL 번호 및 통과되지 않은 검토 항목 번호를 획득하는 단계; 및
    상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 매치되는 SQL 베이스 라인이 존재하는 지 여부가 결정하는 단계로서, 상기 매치되는 SQL 베이스 라인이 존재하는 경우 SQL베이스 라인의 상태는 비-통과 상태로 표시되고, 상기 매치되는 SQL 베이스 라인이 존재하지 않는 경우 상기 SQL 번호 및 상기 통과되지 않은 검토 항목 번호에 따라 SQL베이스 라인을 구축하는, 결정하는 단계를 포함하는 저장 매체.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020187015349A 2016-09-28 2017-05-09 Sql 검토 방법, 장치, 서버 및 저장 매체 KR102230661B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610860550.X 2016-09-28
CN201610860550.XA CN106980637B (zh) 2016-09-28 2016-09-28 Sql审核方法和装置
PCT/CN2017/083645 WO2018058959A1 (zh) 2016-09-28 2017-05-09 Sql审核方法、装置、服务器及存储设备

Publications (2)

Publication Number Publication Date
KR20190060725A KR20190060725A (ko) 2019-06-03
KR102230661B1 true KR102230661B1 (ko) 2021-03-23

Family

ID=59340265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015349A KR102230661B1 (ko) 2016-09-28 2017-05-09 Sql 검토 방법, 장치, 서버 및 저장 매체

Country Status (8)

Country Link
US (1) US10402402B2 (ko)
EP (1) EP3343411A4 (ko)
JP (1) JP2018532171A (ko)
KR (1) KR102230661B1 (ko)
CN (1) CN106980637B (ko)
AU (2) AU2017268630A1 (ko)
TW (1) TWI634449B (ko)
WO (1) WO2018058959A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688626B (zh) * 2017-08-18 2021-01-01 北京小度信息科技有限公司 慢查询日志处理方法、装置及电子设备
CN107766552A (zh) * 2017-11-01 2018-03-06 搜易贷(北京)金融信息服务有限公司 一种mysql自动上线方法
EP3738048A4 (en) * 2018-01-09 2022-03-02 Cleartrail Technologies Private Limited RECOMMENDATION OF VISUAL AND EXECUTION TEMPLATES TO ENABLE AUTOMATION OF CONTROL AND DATA EXPLORATION ACROSS SYSTEMS
CN108415991A (zh) * 2018-02-12 2018-08-17 广州市贝聊信息科技有限公司 一种sql审核方法与系统
CN110716912B (zh) * 2018-07-12 2021-09-28 马上消费金融股份有限公司 一种sql性能检测方法及服务器
CN109408378B (zh) * 2018-09-30 2022-05-24 福建星瑞格软件有限公司 一种在大数据量下快速定位sql解析错误的测试方法及系统
CN109284282A (zh) * 2018-10-22 2019-01-29 北京极数云舟科技有限公司 一种基于MySQL数据库运维方法和系统
CN109710518A (zh) * 2018-12-13 2019-05-03 中国联合网络通信集团有限公司 脚本审核方法及装置
CN110163603A (zh) * 2019-04-18 2019-08-23 平安城市建设科技(深圳)有限公司 信息验证方法、装置、设备及可读存储介质
CN110413516B (zh) * 2019-07-15 2023-08-25 杭州数梦工场科技有限公司 识别慢sql代码的方法及装置和电子设备
CN111259040B (zh) * 2020-02-19 2023-04-11 中国工商银行股份有限公司 Sql语句审核方法和系统
CN113297245A (zh) * 2020-05-29 2021-08-24 阿里巴巴集团控股有限公司 获取执行信息的方法及装置
CN111913937B (zh) * 2020-07-31 2024-03-08 中国工商银行股份有限公司 数据库运维方法和装置
CN113760945A (zh) * 2020-08-11 2021-12-07 北京沃东天骏信息技术有限公司 一种审核sql语句的方法及装置
CN112181840B (zh) * 2020-09-30 2023-09-26 深圳前海微众银行股份有限公司 一种数据库状态的确定方法及装置、设备、存储介质
CN113590647B (zh) * 2021-07-29 2024-02-23 中国联合网络通信集团有限公司 Sql语句优化方法、装置、设备、存储介质及产品
CN114661751B (zh) * 2022-03-22 2023-01-31 医渡云(北京)技术有限公司 基于sql知识库的数据生产方法、装置、系统、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077016A1 (en) * 2007-09-14 2009-03-19 Oracle International Corporation Fully automated sql tuning

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3779431B2 (ja) * 1997-06-13 2006-05-31 富士通株式会社 リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体
JP2002342110A (ja) * 2001-05-17 2002-11-29 Fujitsu Ltd プログラム解析装置及びそのプログラム並びにプログラム記録媒体
KR20030013656A (ko) * 2001-08-08 2003-02-15 한국전자통신연구원 동적 질의어 튜닝 시스템 및 그 방법
JP2003263353A (ja) * 2002-03-08 2003-09-19 Hitachi Information Systems Ltd 障害発生原因分析装置,障害発生原因分析方法,及び障害発生原因分析プログラム
CN101196890B (zh) 2006-12-08 2010-06-16 国际商业机器公司 聚合数据库运行时信息和分析应用性能的方法及装置
JP4295326B2 (ja) * 2007-01-10 2009-07-15 株式会社日立製作所 計算機システム
CN101021874B (zh) 2007-03-21 2010-05-26 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
CN101075256A (zh) * 2007-06-08 2007-11-21 北京神舟航天软件技术有限公司 数据库实时审计分析系统及方法
US20100153431A1 (en) 2008-12-11 2010-06-17 Louis Burger Alert triggered statistics collections
CN102411633A (zh) * 2011-12-27 2012-04-11 北京人大金仓信息技术股份有限公司 基于模板的数据库审计设置方法
US20140189526A1 (en) * 2013-01-02 2014-07-03 International Business Machines Corporation Changing log file content generation
US9705772B2 (en) * 2013-04-26 2017-07-11 Hitachi, Ltd. Identification apparatus, identification method and identification program
CN103488797A (zh) * 2013-10-14 2014-01-01 德讯科技股份有限公司 一种基于mysql数据库的sql信息采集审计系统
CN104679646B (zh) 2013-11-29 2018-02-06 阿里巴巴集团控股有限公司 一种用于检测sql代码缺陷的方法和装置
CN104391995A (zh) * 2014-12-15 2015-03-04 北京趣拿软件科技有限公司 一种sql语句审核的方法、数据库运维的方法及系统
CN104537015A (zh) * 2014-12-19 2015-04-22 电信科学技术第十研究所 一种日志分析的计算机实现的方法、计算机和系统
CN104965861B (zh) 2015-06-03 2018-06-22 上海新炬网络信息技术股份有限公司 一种数据访问监控装置
US9811444B2 (en) * 2015-08-04 2017-11-07 Salesforce.Com, Inc. Testing software enhancements in database applications
CN105243147A (zh) 2015-10-22 2016-01-13 浪潮(北京)电子信息产业有限公司 一种MySQL数据库慢查询日志的管理方法及系统
CN105653607B (zh) * 2015-12-23 2019-05-07 北京奇虎科技有限公司 Sql日志收集分析方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077016A1 (en) * 2007-09-14 2009-03-19 Oracle International Corporation Fully automated sql tuning

Also Published As

Publication number Publication date
KR20190060725A (ko) 2019-06-03
US20190228008A1 (en) 2019-07-25
AU2017268630A1 (en) 2018-04-12
EP3343411A4 (en) 2019-04-17
EP3343411A1 (en) 2018-07-04
TWI634449B (zh) 2018-09-01
WO2018058959A1 (zh) 2018-04-05
CN106980637B (zh) 2019-06-07
AU2017101864A4 (en) 2019-11-14
US10402402B2 (en) 2019-09-03
CN106980637A (zh) 2017-07-25
JP2018532171A (ja) 2018-11-01
TW201814565A (zh) 2018-04-16

Similar Documents

Publication Publication Date Title
KR102230661B1 (ko) Sql 검토 방법, 장치, 서버 및 저장 매체
CN110908997B (zh) 数据血缘构建方法、装置、服务器及可读存储介质
US11321421B2 (en) Method, apparatus and device for generating entity relationship data, and storage medium
KR101083563B1 (ko) 데이터베이스 관리 방법 및 시스템
KR101617696B1 (ko) 데이터 정규표현식의 마이닝 방법 및 장치
AU2018203442B2 (en) Program code comparison and reporting
WO2014093248A2 (en) Query and index over documents
US20200356726A1 (en) Dependency graph based natural language processing
CN115061721A (zh) 一种报表生成方法、装置、计算机设备及存储介质
CN110969517B (zh) 一种招投标生命周期关联方法、系统、存储介质及计算机设备
CN113672628A (zh) 数据血缘分析方法、终端设备及介质
CN109815240A (zh) 用于管理索引的方法、装置、设备和存储介质
CN114676678B (zh) 结构化查询语言数据的解析方法、装置和电子设备
CN108694172B (zh) 信息输出方法和装置
CN110955712A (zh) 基于多数据源的开发api处理方法及装置
CN108614821B (zh) 地质资料互联互查系统
CN115098365A (zh) Sql代码的调试方法、装置、电子设备及可读存储介质
CN113064982A (zh) 一种问答库生成方法及相关设备
CN113485782A (zh) 页面数据获取方法、装置、电子设备及介质
EP4235407A1 (en) Method and system for mapping intermediate representation objects for facilitating incremental analysis
CN117992479A (zh) 一种在openGauss数据库中快速生成执行计划的方法和系统
CN116108054A (zh) 数据库兼容性检测方法、装置、电子设备以及存储介质
CN117472940A (zh) 数据血缘关系构建方法和装置、电子设备及存储介质
US10311057B2 (en) Attribute value information for a data extent
CN114328529A (zh) 一种mybatis拦截器对大数据表分表查询方法和系统

Legal Events

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