Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/executions/limits/ Documentation version: v5.3.2 # 配置资源限制 在 GQL 查询开头添加`SET_VAR`提示,可为当前查询设置内存上限和执行并行度等配置。提示使用`/*+ ... */`语法,仅对当前查询生效,后续查询仍沿用会话中的配置。 常用配置项如下: | 配置项 | 作用 | `memory_limit_bytes` | 查询执行的内存上限,单位为字节。 | `query_concurrency` | 单条查询执行的最大线程数。 | `procedure_minloglevel` | 当前查询中 GQL 过程的最小日志级别。 悦数图数据库开发版的 1 GB 数据量上限限制实例可存储的数据量。`memory_limit_bytes`限制查询执行时使用的内存,调整它不会改变数据量上限。产品限制见[功能与限制](https://dev-docs.yueshu.com.cn/v5.3.2/intro/limitations/)。 ## 示例 以下内存和并行度示例使用[电影示例数据集](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/overview/example-dataset/)中的`movie`图。尚未加载数据时,先按[加载示例数据](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#load)操作。 在悦数图管理的控制台中逐条执行以下语句。使用`ngql`输入多行语句时,首尾各用一行`'''`包围语句,见[多行输入方式](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#ngql)。 下文的`query_concurrency=2`和`memory_limit_bytes=134217728`是演示值,不作为推荐配置。实际使用时,可先沿用默认配置,再根据查询需求和可用的 CPU、内存调整。 ### 配置内存限制 将当前查询的内存上限设为 128 MiB,即`134217728`字节(128 × 1024 × 1024 字节): ```` /*+ SET_VAR(memory_limit_bytes=134217728) */ USE movie MATCH (person:Person) RETURN person LIMIT 100 ```` 超过内存上限时,查询会失败并返回内存超限错误。`LIMIT 100`只限制返回行数,不能据此确定查询所需的内存上限。 ### 配置查询并行度 将当前查询执行的最大线程数设为`2`: ```` /*+ SET_VAR(query_concurrency=2) */ USE movie MATCH (person:Person) RETURN person LIMIT 100 ```` 实际使用的线程数取决于执行计划和可用的 CPU 资源。未指定该提示时,沿用会话中的配置;该配置项的系统默认值为`1`。 ### 配置多个限制 同时将当前查询的最大线程数设为`2`,内存上限设为 128 MiB: ```` /*+ SET_VAR(query_concurrency=2) SET_VAR(memory_limit_bytes=134217728) */ USE movie MATCH (person:Person) RETURN person LIMIT 100 ```` ### 配置最小日志级别 以下示例使用临时图`#movie_temporary_graph`,需先按 [CREATE TEMPORARY GRAPH](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/ddl/graph-projection/create/) 创建该图。 ```` /*+ SET_VAR(procedure_minloglevel="DEBUG") */ USE #movie_temporary_graph { LOG_DEBUG("This is a debug log") LOG_INFO("This is an info log") LOG_WARN("This is a warning log") LOG_ERROR("This is an error log") } ```` 该提示将当前查询中过程日志的最小级别设为`DEBUG`,可输出`DEBUG`及更高级别的日志。