{"meta":{"title":"запросы запуска базы данных","intro":"[Сантехника] Выполните набор запросов вместе.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/reference","title":"Reference"},{"href":"/ru/code-security/reference/code-scanning","title":"Проверка кода"},{"href":"/ru/code-security/reference/code-scanning/codeql","title":"CodeQL"},{"href":"/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual","title":"Руководство по cli CodeQL"},{"href":"/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-run-queries","title":"запросы запуска базы данных"}],"documentType":"article"},"body":"# запросы запуска базы данных\n\n\\[Сантехника] Выполните набор запросов вместе.\n\n> \\[!NOTE]\n> Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье <https://github.com/github/codeql-cli-binaries/releases>.\n>\n> Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с <span style=\"white-space: nowrap;\">`--help`</span> параметром в терминале.\n\n## Synopsis\n\n```shell copy\ncodeql database run-queries [--threads=<num>] [--ram=<MB>] <options>... -- <database> <query|dir|suite|pack>...\n```\n\n## Description\n\n```\n          \\[Сантехника] Выполнение набора запросов вместе.\n```\n\nВыполните один или несколько запросов к базе данных CodeQL, сохраняя результаты в подкаталоге результатов каталога базы данных.\n\nПозже результаты можно преобразовать в доступные для чтения форматы с помощью [базы данных codeql интерпретировать результаты](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-interpret-results) или запроса для запроса с \\[помощью декодирования codeql bqrs или [кодql bqrs интерпретируются](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/bqrs-decode)]\\(/code-security/reference/code-scanning/codeql/codeql-cli-manual/bqrs-interpret).\n\nЕсли запросы создают результаты в форме, которую можно интерпретировать как оповещения исходного кода, можно найти [, что база данных](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-analyze) codeql анализирует более удобный способ их выполнения.\n[Анализ](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-analyze) базы данных codeql объединяет выполнение запросов базы данных codeql с [интерпретируемыми](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-interpret-results) результатами базы данных codeql в одном шаге. В частности, [анализ](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-analyze) базы данных codeql может производить выходные данные в формате SARIF, который можно использовать с различными средствами просмотра оповещений.\n\nКроме того, если у вас есть только один запрос для выполнения[, может потребоваться ](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/query-run)выполнить запрос codeql, который может отображать читаемые пользователем выходные данные для быстрого проверки результатов во время отладки.\n\n## Options\n\n### Основные параметры\n\n#### `<database>`\n\n```\n          \\[Обязательный] Путь к базе данных CodeQL для запроса.\n```\n\n#### `<query|dir|suite|pack>...`\n\nЗапросы для выполнения. Каждый аргумент находится в форме `scope/name@range:path` , в которой:\n\n* ```\n          `scope/name` — это полное имя пакета CodeQL.\n  ```\n* ```\n          `range` — это диапазон semver.\n  ```\n* ```\n          `path` — это путь к файловой системе.\n\n          `scope/name` Если задано значение, `range` оно `path` является необязательным. Отсутствует `range` означает последнюю версию указанного пакета. Отсутствие `path` подразумевает набор запросов по умолчанию указанного пакета.\n  ```\n\nЭто `path` может быть один из файлов запросов, каталог, содержащий один `*.ql` или несколько запросов, или `.qls` файл набора запросов. Если имя пакета не указано, `path` необходимо указать и интерпретироваться относительно текущего рабочего каталога текущего процесса.\n\nЧтобы указать `path` , что содержит литерал `@` или `:`, используйте `path:` в качестве префикса аргумента, как показано ниже `path:directory/with:and@/chars`.\n\n```\n          `scope/name` Если задано и `path` указано, то `path` не может быть абсолютным. Он считается относительным к корню пакета CodeQL.\n```\n\nЕсли запросы не указаны, интерфейс командной строки автоматически определяет подходящий набор запросов для выполнения. В частности, если файл конфигурации сканирования кода был указан во время создания базы данных с помощью `--codescanning-config` этих запросов.\nВ противном случае будут использоваться запросы по умолчанию для анализируемого языка.\n\n#### `--no-rerun`\n\nОпустите оценку запросов, которые уже имеют результат BQRS, хранящийся в выходном расположении.\n\n#### `--no-database-extension-packs`\n\n```\n          \\[Дополнительно] Опустить пакеты расширений, хранящиеся в базе данных во время создания базы данных, из файла конфигурации сканирования кода или из файлов расширений, хранящихся в каталоге расширений проанализированной базы кода.\n```\n\n#### `--no-database-threat-models`\n\n```\n          \\[Дополнительно] Опустить конфигурацию модели угроз, хранящуюся в базе данных во время создания базы данных из файла конфигурации сканирования кода.\n```\n\n### Параметры управления используемыми пакетами модели\n\n####\n\n```\n          `--model-packs=<`\n          <name@range>>...\n```\n\nСписок имен пакетов CodeQL, каждый из которых содержит необязательный диапазон версий, который будет использоваться в качестве пакетов моделей для настройки запросов, которые будут оцениваться.\n\n### Параметры управления моделями угроз для использования\n\n#### `--threat-model=<name>...`\n\nСписок моделей угроз для включения или отключения.\n\nАргументом является имя модели угроз, при необходимости предшествуемой \"!\". Если нет \"!\", именованной модели угроз и всех его потомков включена. Если присутствует \"!\", именованной модели угроз и всех его потомков отключены.\n\nМодель угроз по умолчанию включена, но может быть отключена, указав \"--threat-model !default\".\n\nМодель угроз \"все\" можно использовать для включения или отключения всех моделей угроз.\n\nПараметры модели --threat-обрабатываются по порядку. Например, \"--threat-model local --threat-model !environment\" включает все модели угроз в \"локальной\" группе, за исключением модели угроз \"среда\".\n\nЭтот параметр влияет только на языки, поддерживающие модели угроз.\n\nДоступно с момента `v2.15.3`.\n\n### Параметры управления вычислителем запросов\n\n#### `--[no-]tuple-counting`\n\n```\n          \\[Дополнительно] Отображение счетчиков кортежей для каждого шага оценки в журналах оценщика запросов. Если этот `--evaluator-log` параметр указан, количество кортежей будет включено как в текстовые, так и структурированные журналы JSON, созданные командой. (Это может быть полезно для оптимизации производительности сложного кода QL.\n```\n\n#### `--timeout=<seconds>`\n\n```\n          \\[Дополнительно] Задайте длину времени ожидания для оценки запросов в секундах.\n```\n\nФункция времени ожидания предназначена для перехвата случаев, когда сложный запрос будет принимать \"навсегда\" для оценки. Это не эффективный способ ограничить общее время, которое может занять оценка запроса. Оценка будет продолжаться до тех пор, пока каждая отдельная часть вычисления завершается в течение времени ожидания. В настоящее время эти отдельные части времени являются \"слоями RA\" оптимизированного запроса, но это может измениться в будущем.\n\nЕсли время ожидания не задано или указано как 0, время ожидания не будет задано (за исключением [тестового запуска](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/test-run) codeql, где время ожидания по умолчанию составляет 5 минут).\n\n#### `-j, --threads=<num>`\n\nИспользуйте это множество потоков для оценки запросов.\n\nЗначение по умолчанию — 1. Вы можете передать 0 для использования одного потока на ядро на компьютере или -*N, чтобы оставить *неиспользуемые* ядра N* (за исключением того, что по-прежнему используется хотя бы один поток).\n\n#### `--[no-]save-cache`\n\n```\n          \\[Устаренно] \\[Продвинутый] Этот флаг ничего не делает.\n```\n\n#### `--[no-]expect-discarded-cache`\n\n```\n          \\[Дополнительно] Принятие решений о том, какие предикаты следует оценить, и что нужно записать в кэш диска, исходя из предположения, что кэш будет удален после выполнения запросов.\n```\n\n#### `--[no-]keep-full-cache`\n\n```\n          \\[Дополнительно] Не очищайте кэш диска после завершения оценки.\n```\n\nЭто может сэкономить время, если вы собираетесь выполнить [очистку](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/dataset-cleanup) набора данных codeql или [очистку](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-cleanup) базы данных codeql после этого.\n\n#### `--max-disk-cache=<MB>`\n\nЗадайте максимальное количество места, которое может использовать кэш диска для промежуточных результатов запроса.\n\nЕсли этот размер не настроен явным образом, вычислитель попытается использовать \"разумное\" пространство кэша на основе размера набора данных и сложности запросов. Явно устанавливая более высокий предел, чем это использование по умолчанию, позволит включить дополнительные кэширования, которые могут ускорить последующие запросы.\n\n#### `--min-disk-free=<MB>`\n\n```\n          \\[Дополнительно] Задайте целевой объем свободного места в файловой системе.\n```\n\nЕсли `--max-disk-cache` это не задано, средство оценки попытается ограничить использование кэша дисков, если свободное место в файловой системе снижается ниже этого значения.\n\n#### `--min-disk-free-pct=<pct>`\n\n```\n          \\[Дополнительно] Задайте целевую долю свободного места в файловой системе.\n```\n\nЕсли `--max-disk-cache` это не задано, средство оценки попытается ограничить использование кэша дисков, если свободное место в файловой системе снижается ниже этого процента.\n\n#### `--external=<pred>=<file.csv>`\n\nCSV-файл, содержащий строки для внешнего предиката *\\<pred>*.\nМожно указать несколько `--external` вариантов.\n\n#### `--xterm-progress=<mode>`\n\n```\n          \\[Дополнительно] Определяет, следует ли отображать отслеживание хода выполнения во время оценки QL с помощью последовательностей элементов управления xterm. Возможны следующие значения:\n\n          `no`: никогда не производить фантазийный прогресс; предположим, что глупый терминал.\n\n          `auto`\n          _(по умолчанию)_: автоматическое определение того, выполняется ли команда в соответствующем терминале.\n\n          `yes`: предположим, что терминал может понять последовательности элементов управления xterm. Функция по-прежнему зависит от возможности автоматического набора _размера_ терминала (который не реализован в Windows, к сожалению), а также будет отключен, если `-q` задано.\n\n          `25x80` (или аналогично): Например `yes`, а также явно укажите размер терминала. (В отличие от `yes`этого, это должно работать в Windows.)\n\n          `25x80:/dev/pts/17` (или аналогичный): показать фантазию прогресса в терминале, отличном _от_ stderr. В основном полезно для внутреннего тестирования.\n```\n\n### Параметры управления выходными данными структурированных журналов оценщика\n\n#### `--evaluator-log=<file>`\n\n```\n          \\[Дополнительно] Выходные структурированные журналы о производительности вычислителя в данный файл. Формат этого файла журнала подлежит изменению без уведомления, но будет потоком объектов JSON, разделенных двумя новыми символами (по умолчанию) или одним, если `--evaluator-log-minify` параметр передается. Используйте `codeql generate log-summary <file>` для создания более стабильной сводки по этому файлу и избегайте анализа файла напрямую. Файл будет перезаписан, если он уже существует.\n```\n\n#### `--evaluator-log-minify`\n\n```\n          \\[Дополнительно] Если `--evaluator-log` параметр передается, то этот параметр также свести к минимуму размер создаваемого журнала JSON за счет того, чтобы сделать его гораздо менее удобочитаемым.\n```\n\n### Параметры управления использованием ОЗУ\n\n#### `-M, --ram=<MB>`\n\nСредство оценки запросов попытается сохранить общее количество памяти ниже этого значения. (Однако для больших баз данных возможно, что пороговое значение может быть нарушено картами памяти с поддержкой файлов, которые можно переключить на диск в случае нехватки памяти).\n\nЗначение должно быть не менее 2048 МБ; меньшие значения будут прозрачно округляться вверх.\n\n### Параметры управления компиляцией QL\n\n#### `--warnings=<mode>`\n\nОбработка предупреждений компилятора QL. Одно из:\n\n```\n          `hide`: подавление предупреждений.\n\n          `show`\n          _(по умолчанию)_: вывод предупреждений, но продолжение компиляции.\n\n          `error`: обрабатывает предупреждения как ошибки.\n```\n\n#### `--no-debug-info`\n\nНе указывайте сведения о расположении источника в RA для отладки.\n\n#### `--[no-]fast-compilation`\n\n```\n          \\[Нерекомендуемые] \\[Дополнительно] Опустить особенно медленные шаги оптимизации.\n```\n\n#### `--no-release-compatibility`\n\n```\n          \\[Дополнительно] Используйте новейшие функции компилятора по стоимости переносимости.\n```\n\nВремя от времени новые функции языка QL и оптимизации оценщика будут поддерживаться оценщиком QL несколько выпусков, прежде чем они включены по умолчанию в компиляторе QL. Это помогает гарантировать, что производительность при разработке запросов в новом выпуске CodeQL может соответствовать немного более старым выпускам, которые по-прежнему могут использоваться для интеграции сканирования кода или CI.\n\nЕсли вы не заботитесь о том, что запросы совместимы с другими (более ранними или более поздними) выпусками CodeQL, иногда можно достичь небольшого объема дополнительной производительности с помощью этого флага, чтобы обеспечить последние улучшения в компиляторе раньше.\n\nВ выпусках, где нет последних улучшений для включения, этот параметр автоматически не делает ничего. Таким образом, его можно установить один раз и для всех в глобальном файле конфигурации CodeQL.\n\nДоступно с момента `v2.11.1`.\n\n#### `--[no-]local-checking`\n\nВыполняйте только начальные проверки в части используемого источника QL.\n\n#### `--no-metadata-verification`\n\nНе проверяйте метаданные внедренного запроса в комментариях QLDoc для допустимости.\n\n#### `--compilation-cache-size=<MB>`\n\n```\n          \\[Дополнительно] Переопределите максимальный размер по умолчанию для каталога кэша компиляции.\n```\n\n#### `--fail-on-ambiguous-relation-name`\n\n```\n          \\[Дополнительно] Сбой компиляции, если во время компиляции создается неоднозначное имя отношения.\n```\n\n### Параметры настройки среды компиляции\n\n#### `--search-path=<dir>[:<dir>...]`\n\nСписок каталогов, в которых можно найти пакеты QL. Каждый каталог может быть пакетом QL (или пакетом пакетов, содержащих `.codeqlmanifest.json` файл в корневом каталоге) или непосредственным родительским элементом одного или нескольких таких каталогов.\n\nЕсли путь содержит несколько каталогов, их порядок определяет приоритет между ними: когда имя пакета, которое должно быть разрешено, совпадает с несколькими деревьями каталогов, то один из первых побед.\n\nУказывая это на получение репозитория CodeQL с открытым исходным кодом, должно работать при запросе одного из языков, которые живут там.\n\nЕсли вы проверили репозиторий CodeQL как одноуровневую цепочку инструментов CodeQL, вам не нужно предоставлять этот параметр; Такие каталоги с братом всегда будут искать пакеты QL, которые не удается найти в противном случае. (Если это значение по умолчанию не работает, настоятельно рекомендуется настроить `--search-path` один раз и для всех в файле конфигурации для каждого пользователя).\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n#### `--additional-packs=<dir>[:<dir>...]`\n\nЕсли указан этот список каталогов, они будут искать пакеты до тех, в которых они есть `--search-path`. Порядок между ними не имеет значения; Это ошибка, если имя пакета найдено в двух разных местах в этом списке.\n\nЭто полезно, если вы временно разрабатываете новую версию пакета, который также отображается в пути по умолчанию. С другой стороны, *не рекомендуется* переопределить этот параметр в файле конфигурации. Некоторые внутренние действия будут добавлять этот параметр на лету, переопределяя любое настроенное значение.\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n#### `--library-path=<dir>[:<dir>...]`\n\n```\n          \\[Дополнительно] Необязательный список каталогов, которые будут добавлены в путь поиска необработанных импортов для библиотек QL. Это следует использовать только в том случае, если вы используете библиотеки QL, которые не были упакованы как пакеты QL.\n```\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n#### `--dbscheme=<file>`\n\n```\n          \\[Advanced] Явно определяет, какие запросы dbscheme следует скомпилировать. Это должно быть дано только вызывающими, которые крайне уверены, что они делают.\n```\n\n#### `--compilation-cache=<dir>`\n\n```\n          \\[Дополнительно] Укажите дополнительный каталог для использования в качестве кэша компиляции.\n```\n\n#### `--no-default-compilation-cache`\n\n```\n          \\[Дополнительно] Не используйте кэши компиляции в стандартных расположениях, например в пакете QL, содержашем запрос или в каталоге цепочки инструментов CodeQL.\n```\n\n### Параметры настройки диспетчера пакетов CodeQL\n\n#### `--registries-auth-stdin`\n\nПроверка подлинности в реестрах контейнеров GitHub Enterprise Server путем передачи \\<registry\\_url>=\\<token> разделенного запятыми списка пар.\n\nНапример, можно передать `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2`\nдля проверки подлинности на двух экземплярах GitHub Enterprise Server.\n\nПри этом переопределяются переменные среды маркера токена CODEQL\\_И\\_AUTH и GITHUB\\_. Если вам нужно выполнить проверку подлинности только в реестре контейнеров github.com, можно вместо этого выполнить проверку подлинности с помощью более `--github-auth-stdin` простого параметра.\n\n#### `--github-auth-stdin`\n\nПроверка подлинности в реестре контейнеров github.com путем передачи маркера github.com GitHub Apps или личного маркера доступа через стандартные входные данные.\n\nЧтобы пройти проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передайте `--registries-auth-stdin` или используйте переменную среды AUTH CODEQL\\_REGISTRIES\\_.\n\nЭто переопределяет переменную среды токена GITHUB\\_.\n\n### Распространенные параметры\n\n#### `-h, --help`\n\nОтображение этого текста справки.\n\n#### `-J=<opt>`\n\n```\n          \\[Дополнительно] Укажите параметр JVM, выполняя команду.\n```\n\n(Убедитесь, что параметры, содержащие пробелы, не будут обрабатываться правильно.)\n\n#### `-v, --verbose`\n\nПостепенно увеличьте число отображаемых сообщений о ходе выполнения.\n\n#### `-q, --quiet`\n\nПостепенно уменьшайте количество отображаемых сообщений о ходе выполнения.\n\n#### `--verbosity=<level>`\n\n```\n          \\[Дополнительно] Явным образом задайте уровень детализации на одну из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, хода выполнения+++. Переопределяет `-v` и `-q`.\n```\n\n#### `--logdir=<dir>`\n\n```\n          \\[Дополнительно] Запись подробных журналов в один или несколько файлов в указанном каталоге с созданными именами, включающими метки времени и имя выполняющегося подкоманда.\n```\n\n(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого предоставьте `--log-to-stderr` и перенаправите stderr по мере необходимости.)\n\n#### `--common-caches=<dir>`\n\n```\n          \\[Дополнительно] Управляет расположением кэшированных данных на диске, которые будут сохраняться между несколькими запусками интерфейса командной строки, такими как скачанные пакеты QL и скомпилированные планы запросов. Если этот параметр не задан явным образом, по умолчанию используется каталог с именем `.codeql` в домашнем каталоге пользователя; он будет создан, если он еще не существует.\n```\n\nДоступно с момента `v2.15.2`."}