쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Amazon Neptune의 쿼리 계획 캐시

포커스 모드
Amazon Neptune의 쿼리 계획 캐시 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

쿼리가 Neptune에 제출되면 쿼리 문자열이 구문 분석, 최적화 및 쿼리 계획으로 변환된 다음 엔진에서 실행됩니다. 애플리케이션은 종종 서로 다른 값으로 인스턴스화되는 일반적인 쿼리 패턴에 의해 지원됩니다. 쿼리 계획 캐시는 쿼리 계획을 캐싱하여 이러한 반복 패턴에 대한 구문 분석 및 최적화를 방지함으로써 전체 지연 시간을 줄일 수 있습니다.

쿼리 계획 캐시는 파라미터화되지 않았거나 파라미터화된 쿼리인 OpenCypher 쿼리에 사용할 수 있습니다. READ와 HTTP 및 Bolt에 대해 활성화됩니다. OC 변형 쿼리에는 지원되지 않습니다. Gremlin 또는 SPARQL 쿼리에는 지원되지 않습니다.

쿼리 계획 캐시를 강제로 활성화 또는 비활성화하는 방법

쿼리 계획 캐시는 지연 시간이 짧은 파라미터화된 쿼리에 대해 기본적으로 활성화됩니다. 파라미터화된 쿼리에 대한 계획은 지연 시간이 100ms의 임계값보다 낮은 경우에만 캐시됩니다. 이 동작은 쿼리 수준 쿼리 힌트에 의해 쿼리당(파라미터화 여부에 관계없이) 기준으로 재정의될 수 있습니다QUERY:PLANCACHE. USING 절과 함께 사용해야 합니다. 쿼리 힌트는 enabled 또는 disabled를 값으로 허용합니다.

# Forcing plan to be cached or reused % curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" MATCH(n) RETURN n LIMIT 1" % curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" RETURN \$arg" \ -d "parameters={\"arg\": 123}" # Forcing plan to be neither cached nor reused % curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"disabled\" MATCH(n) RETURN n LIMIT 1"

계획이 캐시되는지 여부를 확인하는 방법

HTTP READ의 경우 쿼리가 제출되고 계획이 캐시된 경우 explain는 쿼리 계획 캐시와 관련된 세부 정보를 표시합니다.

% curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" MATCH(n) RETURN n LIMIT 1" \ -d "explain=[static|details]" Query: <QUERY STRING> Plan cached by request: <REQUEST ID OF FIRST TIME EXECUTION> Plan cached at: <TIMESTAMP OF FIRST TIME EXECUTION> Parameters: <PARAMETERS, IF QUERY IS PARAMETERIZED QUERY> Plan cache hits: <NUMBER OF CACHE HITS FOR CACHED PLAN> First query evaluation time: <LATENCY OF FIRST TIME EXECUTION> The query has been executed based on a cached query plan. Detailed explain with operator runtime statistics can be obtained by running the query with plan cache disabled (using HTTP parameter planCache=disabled).

Bolt를 사용하는 경우 설명 기능은 지원되지 않습니다.

제거

쿼리 계획은 캐시 TTL(Time to Live) 또는 캐시된 쿼리 계획의 최대 수에 도달했을 때 제거됩니다. 쿼리 계획에 도달하면 TTL이 새로 고쳐집니다. 기본값은 다음과 같습니다.

  • 1000 - 인스턴스당 캐싱할 수 있는 최대 계획 수입니다.

  • TTL - 300,000밀리초 또는 5분. 캐시 적중은 TTL을 다시 시작하고 다시 5분으로 재설정합니다.

계획이 캐시되지 않는 조건

쿼리 계획 캐시는 다음 조건에서는 사용되지 않습니다.

  1. 쿼리 힌트를 사용하여 쿼리를 제출하는 경우QUERY:PLANCACHE "disabled". 쿼리를 다시 실행하고를 제거하여 쿼리 계획 캐시를 활성화QUERY:PLANCACHE "disabled"할 수 있습니다.

  2. 제출된 쿼리가 파라미터화된 쿼리가 아니고 힌트가 없는 경우QUERY:PLANCACHE "enabled".

  3. 쿼리 평가 시간이 지연 시간 임계값보다 크면 쿼리는 캐시되지 않으며 쿼리 계획 캐시의 이점을 얻지 못하는 장기 실행 쿼리로 간주됩니다.

  4. 쿼리에 결과를 반환하지 않는 패턴이 포함된 경우.

    • 즉, 지정된 레이블이 있는 노드가 없는 MATCH (n:nonexistentLabel) return n 경우입니다.

    • 즉, MATCH (n {name: $param}) return n를 포함하는 노드가 없는 parameters={"param": "abcde"} 경우를 사용합니다name=abcde.

  5. 쿼리 파라미터가 list 또는와 같은 복합 유형인 경우map.

    curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" RETURN \$arg" \ -d "parameters={\"arg\": [1, 2, 3]}" curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" RETURN \$arg" \ -d "parameters={\"arg\": {\"a\": 1}}"
  6. 쿼리 파라미터가 데이터 로드 또는 데이터 삽입 작업의 일부가 아닌 문자열인 경우. 예를 들어를 삽입하기 위해 CREATE (n {name: "X"})를 실행하면 "X"RETURN "X"가 캐싱되지만 "Y"RETURN "Y"가 삽입되지 않았고 데이터베이스에 존재하지 않으므로 캐싱되지 않습니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.