쿼리 플랜 도구를 개발자 콘솔에서 활성화한 후 콘솔의 '쿼리 편집기' 탭에서 도구에 액세스할 수 있습니다.
쿼리 플랜 도구를 사용하려면 간단히 쿼리 편집기에서 쿼리를 입력하고 쿼리 플랜을 눌러 모든 쿼리 작업과 각각의 비용을 제공된 SOQL에 대해 표시합니다.
이 도구는 느리게 실행되는 SOQL 쿼리의 쿼리 플랜을 확인하기 위해 사용합니다. 이 도구를 사용하면 여러 플랜에 대한 통찰력을 얻고 몇몇 필터를 색인하는 경우 전체 테이블 스캔 비용과 비교한 색인 사용 비용을 확인할 수 있습니다.
테이블 스캔 비용이 색인 비용보다 낮고 쿼리 제한 시간이 초과되려고 하는 경우 선택력 개선을 위한 다른 필터 사용에 대해 더 분석하거나, 해당 쿼리에 색인되지 않았지만 색인 가능한 다른 선택적 필터가 있는지 더 분석해야 합니다.
쿼리 플랜 도구는 제공된 쿼리에 대해 Query Optimizer가 사용할 수 있는 가용 플랜의 비용이 오름차순으로 배열된 목록을 표시합니다.
각 플랜마다 카디널리티, 작업 유형, 비용, sObject 유형 등에 대한 정보가 포함됩니다. 각 플랜에는 예를 들어 필드 색인 또는 전체 테이블 스캔 같은 '선행 작업 유형'이 있습니다. 가장 비용이 낮은 플랜이 쿼리 실행에 사용됩니다.
카디널리티 |
필드 |
선행 작업 유형 |
비용 |
sObject 카디널리티 |
sObject 유형 |
|---|---|---|---|---|---|
|
선행 작업 유형에서 반환할 추정 레코드 수.
예: 색인 테이블을 사용하는 경우에 반환되는 레코드 수. | Query Optimizer가 사용하는 색인된 필드. 선행 작업 유형이 색인인 경우, 필드 값은 색인입니다. 그렇지 않으면 필드 값은 null입니다. |
Salesforce가 쿼리를 최적화하기 위해 사용할 기본 작업 유형.
| Force.com Query Optimizer의 선택력 임계값에 비교한 쿼리 비용입니다. 값이 1보다 크면 쿼리가 선택적이지 않음을 의미합니다. |
쿼리된 개체의 대략적인 레코드 개수입니다.
|
쿼리된 개체의 이름입니다.
|
각 플랜마다 비용 값이 있습니다. 비용 값은 테이블 및 값에 대해 마지막으로 수집한 데이터베이스(DB) 통계에서 도출합니다. 비용이 가장 낮은 플랜이 사용됩니다. 비용이 1보다 크면 쿼리가 선택적이지 않음을 의미합니다.
입력한 쿼리의 필터에 색인된 필드가 포함된 경우, 해당 필드에 대해 지원되는 작업을 사용하는 경우에만 플랜이 필드에 대해 표시됩니다.
다음은 지원되지 않는 작업의 목록입니다.
쿼리 플랜 도구는 색인 가능한 필드가 아닌 색인된 필드 통계만 플랜 섹션에 표시합니다. 이 도구는 색인 가능한 필드에 대한 정보를 제공하지 않습니다.
색인 가능한 필드 확인에 대해서는 내 SOQL 쿼리를 선택적인 쿼리로 만드는 방법을 참조하십시오.
다음 예에서는 2개의 색인된 필드인 확인란 하나(InActiveAcc__c)와 선택 목록 하나(Account_Hierarchy__c)를 계정 sObject에 사용합니다.
참고: 이 새로운 개발자 콘솔 도구의 바탕이 된 쿼리 리소스 피드백 매개 변수 파일럿에 대한 원 게시물에서 쿼리의 예를 더 많이 확인할 수 있습니다.
SELECT count() FROM Account WHERE Account_Hierarchy__c = 'Parent'
시나리오: 선택적인 바인딩 변수가 있는 색인된 필드
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c = 'Parent'
시나리오: 색인된 필드 2개, 선택적 필드 1개
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c != 'Parent' **NOTE: Using unsupported operation on index**
시나리오: 색인된 필드 2개, 선택적이지만 지원되지 않는 연산을 사용하는 필드 1개
SELECT count() FROM Account WHERE Account_Hierarchy__c = 'Child'
시나리오: 비선택적인 바인딩 변수를 사용하는 색인된 필드 1개(sObject 행 수의 10% 초과)
000386864

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.