Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

query-server 실행

이 문서의 내용

[배관] IDE에서 쿼리 실행을 지원합니다.

GitHub CodeQL은(는) 설치 시 사용자 단위로 라이선스가 부여됩니다. 라이선스 제한에 따라 특정 작업에만 CodeQL을(를) 사용할 수 있습니다. 자세한 내용은 "CodeQL CLI 정보"을 참조하세요.

GitHub Advanced Security 라이선스가 있는 경우 CodeQL를 사용하여 자동화된 분석, 지속적인 통합 및 지속적인 업데이트를 수행할 수 있습니다. 자세한 내용은 "GitHub Advanced Security 정보"을 참조하세요.

이 콘텐츠는 CodeQL CLI의 최신 릴리스에 대해 설명합니다. 이 릴리스에 대한 자세한 내용은 를 참조하세요 https://github.com/github/codeql-cli-binaries/releases.

이전 릴리스에서 이 명령에 사용할 수 있는 옵션에 대한 세부 정보를 보려면 터미널에서 옵션을 사용하여 명령을 --help 실행합니다.

개요

Shell
codeql execute query-server [--threads=<num>] <options>...

Description

[배관] IDE에서 쿼리 실행을 지원합니다.

이 명령은 IDE용 QL 언어 확장 작성자에게만 관련됩니다. 백그라운드에서 IDE 플러그 인에 의해 시작되며 표준 입력 및 출력 스트림에 대한 특수 프로토콜을 통해 통신합니다.

IDE 확장은 쿼리 서버를 시작하기 전에 codeql resolve ram을 사용하여 RAM 제한에 대한 옵션을 생성해야 합니다.

기본 옵션

--[no-]tuple-counting

[고급] 쿼리 계산기 로그의 각 평가 단계에 대한 튜플 수를 표시합니다. --evaluator-log 옵션이 제공되면 명령에서 생성된 텍스트 기반 및 구조화된 JSON 로그 모두에 튜플 수가 포함됩니다. 이는 복잡한 QL 코드의 성능 최적화에 유용할 수 있습니다.

--timeout=<seconds>

[고급] 쿼리 평가의 시간 제한 길이(초)를 설정합니다.

시간 제한 기능은 복잡한 쿼리가 평가하는 데 "영원히" 걸리는 경우를 catch하기 위한 것입니다. 쿼리 평가에 소요되는 총 시간을 제한하는 효과적인 방법은 아닙니다. 계산의 각 별도 시간 제한 부분이 시간 제한 내에 완료되는 한 평가는 계속되도록 허용됩니다. 현재 이러한 별도로 시간 지정된 부분은 최적화된 쿼리의 "RA 계층"이지만 나중에 변경될 수 있습니다.

시간 제한이 지정되지 않거나 0으로 지정된 경우 시간 제한이 설정되지 않습니다( codeql 테스트 실행을 제외하고 기본 시간 제한은 5분임).

-j, --threads=<num>

이 많은 스레드를 사용하여 쿼리를 평가합니다.

기본값은 1입니다. 0을 전달하여 컴퓨터의 코어당 하나의 스레드를 사용하거나 -N 을 전달하여 N 코어를 사용하지 않은 상태로 둘 수 있습니다(하나 이상의 스레드를 계속 사용).

--[no-]save-cache

[고급] 디스크 캐시에 중간 결과를 적극적으로 씁니다. 이렇게 하면 시간이 더 많이 걸리고(훨씬) 더 많은 디스크 공간을 사용하지만 유사한 쿼리의 후속 실행 속도가 빨라질 수 있습니다.

--[no-]expect-discarded-cache

[고급] 쿼리가 실행된 후 캐시가 삭제된다는 가정하에 평가할 조건자와 디스크 캐시에 쓸 대상을 결정합니다.

--[no-]keep-full-cache

[고급] 평가가 완료된 후 디스크 캐시를 클린 않습니다. 나중에 codeql 데이터 세트 정리 또는 codeql 데이터베이스 정리 를 수행하려는 경우 시간이 절약됩니다.

--max-disk-cache=<MB>

중간 쿼리 결과를 위해 디스크 캐시에서 사용할 수 있는 최대 공간을 설정합니다.

이 크기가 명시적으로 구성되지 않은 경우 계산기는 데이터 세트의 크기와 쿼리의 복잡성에 따라 "적절한" 양의 캐시 공간을 사용하려고 시도합니다. 이 기본 사용량보다 높은 제한을 명시적으로 설정하면 추가 캐싱을 사용하도록 설정되므로 이후 쿼리의 속도를 높일 수 있습니다.

--min-disk-free=<MB>

[고급] 파일 시스템에서 사용 가능한 공간의 대상 크기를 설정합니다.

가 지정되지 않은 경우 --max-disk-cache 파일 시스템의 사용 가능한 공간이 이 값 아래로 떨어지면 계산기는 디스크 캐시 사용량을 줄이기 위해 열심히 노력합니다.

--min-disk-free-pct=<pct>

[고급] 파일 시스템에서 사용 가능한 공간의 대상 부분을 설정합니다.

가 지정되지 않은 경우 --max-disk-cache 파일 시스템의 사용 가능한 공간이 이 백분율 아래로 떨어지면 평가기는 디스크 캐시 사용량을 줄이기 위해 열심히 노력합니다.

--external=<pred>=<file.csv>

외부 조건자 에 대한 행을 포함하는 CSV 파일입니다 \. 여러 --external 옵션을 제공할 수 있습니다.

--xterm-progress=<mode>

[고급] xterm 컨트롤 시퀀스를 사용하여 QL 평가 중에 진행률 추적을 표시할지 여부를 제어합니다. 가능한 값은 다음과 같습니다.

no: 멋진 진행 상황을 생성하지 마십시오. 은(는) 어리둥절한 터미널을 가정합니다.

auto(기본값) : 명령이 적절한 터미널에서 실행 중인지 여부를 자동으로 검색합니다.

yes: 터미널이 xterm 컨트롤 시퀀스를 이해할 수 있다고 가정합니다. 이 기능은 여전히 터미널 의 크기를 자동으로 검색할 수 있는 것에 따라 달라지며, 가 지정된 경우에도 -q 사용하지 않도록 설정됩니다.

25x80 (또는 이와 유사): 와 마찬가지로 yes터미널의 크기도 명시적으로 지정합니다.

25x80:/dev/pts/17 (또는 이와 유사): stderr와 다른 터미널에서 멋진 진행률을 표시합니다. 대부분 내부 테스트에 유용합니다.

구조적 계산기 로그의 출력을 제어하는 옵션

--evaluator-log=<file>

[고급] 지정된 파일에 계산기 성능에 대한 구조화된 로그를 출력합니다. 이 로그 파일의 형식은 예고 없이 변경될 수 있지만 옵션이 전달된 경우 두 개의 줄 바꿈 문자(기본적으로) 또는 하나로 구분된 JSON 개체의 --evaluator-log-minify 스트림이 됩니다. 를 사용하여 codeql generate log-summary <file> 이 파일에 대한 보다 안정적인 요약을 생성하고 파일을 직접 구문 분석하지 마세요. 파일이 이미 있는 경우 덮어씁니다.

--evaluator-log-minify

[고급] 옵션이 전달되면 이 옵션을 전달하면 --evaluator-log 생성된 JSON 로그의 크기가 최소화되므로 사람이 읽을 수 있는 상태가 훨씬 줄어듭니다.

일반 옵션

-h, --help

이 도움말 텍스트를 표시합니다.

-J=<opt>

[고급] 명령을 실행하는 JVM에 옵션을 제공합니다.

(공백을 포함하는 옵션이 올바르게 처리되지 않도록 주의하세요.)

-v, --verbose

인쇄된 진행률 메시지 수를 증분 방식으로 늘입니다.

-q, --quiet

인쇄되는 진행률 메시지 수를 증분 방식으로 줄입니다.

--verbosity=<level>

[고급] 세부 정보 수준을 오류, 경고, 진행률, progress+, progress++, progress++, progress++중 하나로 명시적으로 설정합니다. -v-q를 재정의합니다.

--logdir=<dir>

[고급] 타임스탬프와 실행 중인 하위 명령의 이름을 포함하는 생성된 이름을 사용하여 지정된 디렉터리의 하나 이상의 파일에 자세한 로그를 씁니다.

(이름을 가진 로그 파일을 작성하려면 모든 권한을 부여 --log-to-stderr 하고 원하는 대로 stderr를 리디렉션합니다.)