테이블 쿼리 최소화

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 3분
  • 쿼리를 최소화하여 성능을 최대화하는 방법을 알아봅니다.

    쿼리가 많을수록 성능에 더 큰 영향을 미칩니다. 이 문서에서는 가능한 한 빠른 성능을 유지하기 위해 쿼리를 최소화하는 두 가지 방법에 대해 설명합니다.

    구현 규칙

    구성을 만들 때 쿼리를 최소화하기 위해 구현하는 방법을 고려하십시오.

    예를 들어, 다양한 구성요소의 길이, 너비 및 높이 테이블이 있다고 가정해 보겠습니다. 부품 번호를 선택한 후에는 해당 값을 쿼리하여 부피를 계산할 수 있습니다. 해당 정보를 쿼리하는 가장 좋은 방법은 사용 사례 및 쿼리 다운스트림에 값이 필요한 위치에 따라 다릅니다.

    구성에서 전체 볼륨만 사용하는 경우 가장 좋은 방법은 다음과 같은 간단한 코드와 유사하게 볼륨에 대한 고급 결정 규칙에 쿼리를 배치하는 것입니다.

    • 테이블에서 L, W, H 쿼리
    • 변수 볼륨 = L*W*H
    • 반환 볼륨

    총 쿼리: 1.

    그러나 볼륨 규칙을 작성하고 다른 곳에서 length, width 및 height 값을 사용해야 한다는 것을 알고 있는 경우 위의 코드는 적절하지 않습니다. 대신 다음과 같이 결정 규칙을 작성해야 합니다.

    • 변수 볼륨 = L*W*H
    • 반환 볼륨

    결정 규칙에 쿼리가 있어야 합니다. 결정 규칙은 한 번에 하나의 필드만 정의할 수 있으므로 세 개의 결정 규칙(길이, 너비 및 높이에 대해 각각 하나의 규칙)과 세 개의 쿼리가 필요합니다. 이렇게 하면 네 번째 쿼리(각 길이, 너비 및 높이 규칙에 하나씩, 볼륨 결정 규칙에 하나씩)가 실행되지 않습니다.

    쿼리를 줄이는 또 다른 방법은 규칙과 연결된 필드를 인식하는 것입니다. 규칙에 많은 필드를 참조하는 쿼리가 있다고 가정해 보겠습니다. 이 규칙은 해당 규칙과 연결된 필드 중 하나가 변경될 때마다 실행됩니다. 따라서 쿼리는 매번 실행됩니다.

    부피를 계산한 다음 해당 부피에 밀도(사용자가 선택한 재료에 따라 변경될 수 있음)를 곱하여 총 무게를 구해야 한다고 가정해 보겠습니다. 사용자는 다운스트림의 다른 곳에서 볼륨을 사용할 필요가 없습니다. 샘플 스크립트는 다음과 같습니다.

    • 테이블에서 L,W,H 쿼리
    • Var vol= L*W*H
    • Var 질량 = vol * cfg.density
    • 반환 질량

    문제는 밀도가 변경될 때마다 규칙이 실행된 다음 쿼리가 실행된다는 것입니다. 그러나 L, W 및 H의 값은 변경되지 않습니다. 따라서 프로세서는 테이블로 이동하여 L, W 및 H의 값을 찾고 변수 vol 을 이전과 동일한 값으로 재정의해야 합니다. 더 나은 방법은 별도의 규칙이 있는 별도의 필드로 볼륨을 계산하는 것입니다. 그런 다음 다음과 같이 질량 규칙을 작성합니다.

    var mass = cfg.volume * cfg.density;
    return mass;

    질량은 여전히 매번 다시 계산되지만 의도된 것입니다. 불필요한 쿼리를 수행하고 값을 재정의하느라 처리 시간이 낭비되지 않습니다.

    목록 쿼리

    위에서 볼 수 있듯이 L, W 및 H를 사용하여 단일 쿼리로 테이블에서 여러 열을 끌어올 수 있습니다. 다른 경우에는 여러 값에 대해 테이블을 쿼리할 수 있습니다. 예를 들어, 다양한 색상의 다중 선택 선택 목록(필드 이름 selectedColors)이 있다고 가정해 보겠습니다. 또한 비율을 알려주는 빨간색, 파란색 및 녹색 열이 있는 "색조" 테이블이 있습니다.

    다중 선택 선택 목록에서 선택한 모든 옵션에 대해 테이블을 쿼리하려면 두 가지 옵션이 있습니다.

    for (color of cfg.selectedColors){
            var tableResults=lookup(“Select blue, red, green from hues where value := value”, {“value”: color});
            //more code

    for 루프는 쿼리 수가 selectedColors 필드에서 선택한 옵션 수를 기반으로 한다는 것을 의미합니다. 또는 다음 코드는 테이블을 한 번 쿼리합니다.

    var tableResults=lookup(“select blue, red, green from hues where value in (:list)”, {“list”: cfg.selectedColors});

    이 방법이 더 좋습니다.

    쿼리에서 지원되는 항목에 대한 자세한 내용은 다음 문서를 참조하십시오 조회 함수: 명령 및 구문.