CMDB 쿼리 작성기 엔진 실행 모드
CMDB 쿼리 작성기 엔진은 두 가지 실행 모드를 사용하여 쿼리를 실행합니다. 기본적으로 시스템은 성능 최적화를 위해 설계된 향상된 모드 V2를 사용하도록 구성됩니다. V2는 대부분의 쿼리에 대해 지원되며 복잡한 쿼리를 훨씬 더 빠르게 실행하고 성능 저하 없이 더 큰 결과 집합을 처리할 수 있습니다.
- V2
-
향상된 성능과 확장성을 위해 설계된 향상된 쿼리 실행 엔진입니다. 이는 기본 실행 엔진입니다. V1 모드에 비해 V2 모드에서 CMDB 쿼리 작성기 엔진은 복잡한 쿼리를 훨씬 더 빠르게 실행하고 성능 저하 없이 더 큰 결과 집합을 처리할 수 있습니다.
그러나 일부 쿼리 구조는 V2 모드에서 지원되지 않으며, 이 경우 이러한 쿼리는 레거시 모드(V1)를 사용하여 자동으로 실행됩니다.
- V1
- 시스템이 V1을 사용하도록 명시적으로 구성된 경우 사용되는 레거시 실행 엔진입니다. 이 모드는 시스템이 V2 모드에서 실행되도록 구성된 경우에도 V2 모드에 대해 지원되지 않는 구조로 쿼리를 실행하는 데 사용됩니다.
'OR' 연산자에 대한 고려 사항
아래의 샘플 쿼리와 같이 'OR' 연산자가 포함된 쿼리의 실행 모드를 설정하려면 몇 가지 특별한 고려 사항이 필요합니다.
'OR' 구조를 사용하여 쿼리를 실행하는 것이 V1보다 V2 모드에서 훨씬 빠를 수 있지만 결과는 V1과 V2 실행 모드 간에 다르게 표시됩니다. 차이점은 'OR' 연산자 노드가 병합된 제품 간 결과 세트를 생성하기 때문입니다. V2 모드에서는 관련 결과가 단일 결과 항목에 병합됩니다. V1에서는 동일한 결과가 별도의 결과 항목으로 표시됩니다.
경우에 따라 기존 조직 보고서를 지원하는 결과의 레거시 형식을 유지하기 위해 V1 엔진 모드를 사용하여 'OR' 구조로 쿼리를 실행하는 것이 중요할 수 있습니다. 아래 설명된 대로 시스템 속성을 사용하여 glide.cmdb.query.or_execution_mode "OR" 구조가 있는 쿼리에 대한 실행 모드를 제어할 수 있습니다.
설정
- 쿼리 수준 설정:
저장된 쿼리 [qb_saved_query] 테이블의 속성은 Query Execution Mode 해당 쿼리의 엔진 모드를 설정합니다. 이 설정에 대한 자세한 내용은 다음 문서를 참조하십시오 쿼리를 실행하기 위한 실행 모드 설정.
쿼리 수준 설정은 시스템 속성 설정보다 우선합니다.
- 전역 설정:
시스템 속성 glide.cmdb.query.execution_mode 은 쿼리 모드가 쿼리 수준에서 설정되지 않은 경우 사용할 시스템 차원의 기본 모드를 설정합니다.
- 전역 설정:
시스템 속성 glide.cmdb.query.or_execution_mode 은 하나 이상의 논리적 OR 조건이 포함된 쿼리에 대해 시스템 차원의 기본 실행 엔진 모드를 설정합니다. 'OR' 구조를 사용하는 쿼리의 결과는 V1과 V2 모드 간에 서로 다르게 서식이 지정되기 때문에 이 속성 설정은 결과에 사용되는 형식에도 영향을 줍니다.
이 속성은 시스템 속성보다 glide.cmdb.query.execution_mode 우선합니다.
엔진 모드 시스템 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 CMDB 쿼리 작성기에 대한 속성 설정.
V2 모드에 대해 지원되지 않는 쿼리 구조
- 관련 목록 조건이 포함된 필터가 있는 쿼리입니다.
-
구성 항목 조건을 포함하는 필터와 결합된 관계 없음: 구성된 관계가 없는 노드와 대상 노드의 필터에 구성 항목 조건이 있습니다.
예: 서버가
라우터에 연결되지 않음 WHERE Router.status = Active. - 관련 에지가 있는 서비스 매핑 쿼리(적용성 플로우, 적용성 플로우가 아님, 속함, 속하지 않음). 서비스 쿼리 속성이 관련 CI 찾기 또는 비관련 CI 찾기로 설정된 서비스 매핑 쿼리 또는 서비스 쿼리 연결 속성이 서비스에 속하지 않음으로 설정된 조합 쿼리입니다.
결정 플로우
시스템은 모든 관련 설정과 쿼리 구조를 검사하는 결정 플로우를 사용하여 쿼리 실행에 사용할 실행 모드를 결정합니다. 먼저 시스템은 쿼리 수준 및 시스템 수준 설정을 확인합니다. 그런 다음, V2를 사용하여 쿼리를 실행하도록 설정이 구성된 경우 시스템은 쿼리 구조를 검사하여 V2 실행 모드가 쿼리 구조를 지원하는지 확인합니다. 쿼리에 V2에서 지원되지 않는 구조가 포함된 경우 설정이 V2 사용을 사용하도록 구성되어 있더라도 실행은 자동으로 V1 모드 사용으로 대체됩니다. 이 자동 폴백 메커니즘은 가능한 경우 성능 이점을 최대화하면서 모든 쿼리의 성공적인 실행을 지원합니다.
기본 설정을 사용하여 V2 실행 모드에서 쿼리 구조가 지원되는 경우 쿼리는 V2 모드를 사용하여 실행됩니다.
- 저장된 쿼리 [qb_saved_query] 테이블의 쿼리 기록에서 속성의 Query Execution Mode 설정을 확인합니다.
- 'V1'인 경우: V1 사용
- ''인 경우V2: #4단계 - V2 지원 확인 수행으로 건너뜁니다.
- "없음"인 경우: 다음 단계의 설명에 따라 시스템 속성을 확인합니다.
- 시스템 속성 glide.cmdb.query.execution_mode검사:
- 설정되지 않은 경우: V2 사용 지원 확인 보류 중
- 'V1'인 경우: V1 사용
- 'V2'인 경우:
- 논리적 OR 조건이 없는 경우: #4단계 - V2 지원 확인 수행으로 건너뜁니다.
- 하나 이상의 논리적 OR 조건인 경우: 다음 단계에 설명된 대로 'OR' 관련 검사를 수행합니다.
- 다음 값 glide.cmdb.query.or_execution_mode확인 :
- 'V1'인 경우: V1 사용
- 'V2'인 경우: #4단계 - V2 지원 확인 수행으로 건너뜁니다.
- 비어 있는 경우: V2 사용
- V2 지원 확인 수행:
- 쿼리에 V2에서 지원되지 않는 구조가 포함된 경우: V1 사용
- V2에서 쿼리 구조가 지원되는 경우: V2 사용
쿼리 상태 [qb_query_status] 테이블의 속성은 Query Execution Mode 각 쿼리에 할당된 실행 모드를 보여줍니다.